kubernetes - 复制控制器文件中的图像标记
问题描述
我有一个图像被推送到谷歌容器注册表,名为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
这行得通,但是当我删除 commit hash tag 时它不起作用46d49ab
。我不想每次提交时都必须更改标签。
我还在 Google Container Builder 上设置了一个触发器,以在每次提交后拉出我的存储库的主分支,并创建一个图像gcr.io/$(PROJECT_ID)/img-name:$(COMMIT_HASH)
。
如何编辑我的复制控制器文件以获取最新的?人们使用什么工作流程?
解决方案
可以使用latest
标签来确保 Kubernetes 每次运行时都会拉取镜像。每次你创建一个新的镜像标签并将其latest
推送到容器注册表时。但是,我不建议这样做。
您将不知道哪些 pod 正在运行您的代码的哪个版本。我完全按照你在问题中提到的那样做。我发现每次更新映像时更新部署对象会更好。这将确保部署处于您期望的状态,并且在查看图像时故障排除会更加清晰。
推荐阅读
- java - 即使网络是由 android 上的其他设备创建的,如何删除特定网络?
- c++ - 两个 timeval 结构的 tv_sec 怎么可能相同,但减去它们会给我一个非零值
- powerbi - 应用于 DAX 中的虚拟表和计算表时,与 sumx 函数的结果不同
- laravel - 指定冗余 API 端点的优缺点是什么?
- java - 如何将 watermill 中的解组器(Kafka 的 lib)更改为 avro
- java - 当 screenOrientation 固定时获取旋转信息(Android、JAVA)
- python - 推迟变量初始化直到评估
- javascript - 为什么数组长度为零?
- python - 在 Python 中按函数输出压缩列表
- c++ - 为什么不制作 { "hello"s + "world"sv; 在 C++20 中有效吗?