如何配置Mutagen实现Kubernetes集群中本地源码与容器Docker卷的同步
操作步骤与配置示例
1. 修改K8S Deployment配置
将原来的hostPath类型卷替换为emptyDir(临时存储)或PVC(持久化存储)即可,无需配置宿主机路径,Mutagen会负责将本地内容同步到该卷中,参考配置如下:
kind: Deployment spec: volumes: - name: "myapp-src" # 替换原hostPath配置,按需选择emptyDir或PVC emptyDir: {} ... containers: - name: myapp volumeMounts: - name: "myapp-src" mountPath: "/app/"
2. 调整Mutagen同步配置
将原有docker类型的beta同步目标替换为Kubernetes类型目标,支持直接通过Pod名称或标签选择器匹配集群内的Pod,参考配置如下:
sync: defaults: symlink: mode: ignore permissions: defaultFileMode: 0664 defaultDirectoryMode: 0775 myapp-src: alpha: "../../" # 两种配置方式二选一即可: # 方式1:指定Pod名称(默认命名空间可省略命名空间字段) beta: "kubernetes://default/myapp-7f98d7c6b4-2xqzk/app" # 方式2:通过标签自动匹配Pod,无需手动更新Pod名 # beta: "kubernetes:///myapp/app?selector=app=myapp" mode: "two-way-safe"
3. 启动同步
- 先执行
kubectl apply部署修改后的Deployment,等待Pod正常运行 - 若使用Pod名称配置方式,先通过
kubectl get pods查询实际运行的Pod名,替换上述配置中的占位Pod名 - 执行
mutagen project start -f path/to/mutagen.yml启动同步即可
内容的提问来源于stack exchange,提问作者Kamafeather
相关产品推荐
相关产品推荐

