将fully_qualified_digest转换为yaml以进行部署

问题描述 投票:0回答:1

我们有一个GKE集群,有4个部署/ pod,在部署新代码时需要更新。我知道最好的做法是为我们正在部署的图像部署带有最新摘要的图像,但我想知道是否有人知道使用该摘要更新yaml文件的更好方法,而不是手动更新它。我可以使用以下方法获取fully_qualified_digest:

gcloud container images describe gcr.io/xxxx/uwsgi

每次部署时,必须使用最新的摘要哈希手动更新yaml文件真的很糟糕。如果有人知道更好的方式我会喜欢听到它。

旁注:它是2019年,Kubernetes应该能够获取摘要哈希表单/ latest,而无需明确定义它。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    io.kompose.service: uwsgi
  name: uwsgi
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  minReadySeconds: 5
  template:
    metadata:
      labels:
        io.kompose.service: uwsgi
    spec:
      containers:
      - env:
        - name: GOOGLE_APPLICATION_CREDENTIALS
          value: certs/gcp.json
        - name: ENV
          value: prod
        image: gcr.io/xxxx/uwsgi:latest <------ needs to be fully_qualified_digest
        name: uwsgi
        ports:
        - containerPort: 9040
        readinessProbe:
          httpGet:
            path: /health/
            port: 9040
          initialDelaySeconds: 5
          timeoutSeconds: 1
          periodSeconds: 15
        livenessProbe:
          httpGet:
            path: /health/
            port: 9040
          initialDelaySeconds: 60
          timeoutSeconds: 1
          periodSeconds: 15
        resources:
          requests:
            memory: "1000Mi"
            cpu: "1800m"
          limits:
            memory: "1200Mi"
            cpu: "2000m"
      hostname: uwsgi
      restartPolicy: Always
      terminationGracePeriodSeconds: 60
status: {}
kubernetes yaml google-kubernetes-engine digest
1个回答
2
投票

有许多工具可以监视您的Docker存储库,并在新图像可用时更新内容。最常用的可能是https://github.com/weaveworks/flux/。 Kubernetes本身不提供此功能,因为它可能是非收敛的。

也就是说,你可以在pod规范中使用:latest就好了。避免它的原因是Kubernetes不会知道在图像更改时重新启动pod(也是缓存问题但你可以避免那些在规范中带有图像拉取策略的人)。如果您实际上不想自动部署新图像,那么您拥有的就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.