kubernetes - 复制 Controller 文件中的图像标记

标签 kubernetes google-kubernetes-engine google-container-registry google-container-builder

我有一张图像推送到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/

相关文章:

docker - 将代码/文件直接注入(inject) Google Cloud Engine 上 Kubernetes 的容器中

google-compute-engine - 是否可以使用 1 个 Kubernetes ingress 对象将流量路由到不同集群中的 k8s 服务?

kubernetes - 每次将图像推送到 GCR 时自动更新 pod

performance - Kubernetes NFS 挂载选项

kubernetes - Terraform:如何使用命名空间在 Google Cloud (GKE) 上创建 Kubernetes 集群?

kubernetes - 为什么具有相同请求和限制的一个容器的 pod 被归类为 Burstable pod?

google-container-registry - Google Container Builder - 镜像版本控制最佳实践

docker - 错误 : (gcloud. 预览)无效选择 : 'docker' . 你是说 'dm-v2' 吗?

python - APScheduler 会跳过作业并在其他时间运行

mongoose - GKE 与远程数据库