我有一张图像推送到Google Container Registry,名为gcr.io/$(PROJECT_ID)/img-name:46d49ab
。
在我的复制 Controller 中,我有:
apiVersion: v1
kind: ReplicationController
metadata:
name: go-server-rc
spec:
replicas: 3
selector:
name: go-server
version: v8
template:
metadata:
labels:
name: go-server
version: v8
spec:
containers:
- name: go-server
image: gcr.io/$(PROJECT_ID)/img-name:46d49ab
ports:
- containerPort: 5000
这有效,但是当我删除提交哈希标记
46d49ab
时,它不起作用。我不想每次提交时都必须更改标签。我还在Google Container Builder上设置了一个触发器,以在每次提交后提取存储库的master分支,并创建一个图像
gcr.io/$(PROJECT_ID)/img-name:$(COMMIT_HASH)
。如何编辑复制 Controller 文件以获取最新的文件?人们使用什么工作流程?
最佳答案
It's possible使用latest
标记来确保Kubernetes每次运行时都拉动图像。每次您创建一个新图像标签时,都使用latest
将其推送到容器注册表。但是,我不建议这样做。
您将不知道哪个Pod正在运行哪个版本的代码。我完全按照您在问题中提到的来做。我发现最好在每次镜像更新时更新部署对象。这将确保部署处于您期望的状态,并且在查看镜像时故障排除将更加清晰。
关于kubernetes - 复制 Controller 文件中的图像标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51119478/