Replication Controller 文件中的图像标记
Image tag in Replication Controller file
我将一个镜像推送到 Google Container Registry,名为 gcr.io/$(PROJECT_ID)/img-name:46d49ab
。
在我的复制控制器中我有:
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)
。
如何编辑我的复制控制器文件以获取最新的?人们使用什么工作流程?
It's possible 使用 latest
标签确保 Kubernetes 每次运行时都会拉取镜像。每次你创建一个新的图像时,用 latest
标记它并将它推送到容器注册表。但是,我不推荐这个。
您不会知道哪个 pods 是 运行 您的代码的哪个版本。我完全按照你在问题中提到的那样做。我发现最好在每次映像更新时更新部署对象。这将确保部署处于您期望的状态,并且在查看图像时故障排除将更加清晰。
我将一个镜像推送到 Google Container Registry,名为 gcr.io/$(PROJECT_ID)/img-name:46d49ab
。
在我的复制控制器中我有:
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)
。
如何编辑我的复制控制器文件以获取最新的?人们使用什么工作流程?
It's possible 使用 latest
标签确保 Kubernetes 每次运行时都会拉取镜像。每次你创建一个新的图像时,用 latest
标记它并将它推送到容器注册表。但是,我不推荐这个。
您不会知道哪个 pods 是 运行 您的代码的哪个版本。我完全按照你在问题中提到的那样做。我发现最好在每次映像更新时更新部署对象。这将确保部署处于您期望的状态,并且在查看图像时故障排除将更加清晰。