У нас есть кластер GKE с 4 развертываниями / модулями, которые необходимо обновлять при развертывании нового кода. Я знаю, что лучше всего развертывать образ с последним дайджестом для изображений, которые мы развертываем, но мне интересно, знает ли кто-нибудь о лучшем способе обновления файла yaml с помощью этого дайджеста, отличного от его обновления вручную. Я могу получить full_qualified_digest используя:
gcloud container images describe gcr.io/xxxx/uwsgi
Это действительно отстойно - каждый раз, когда мы внедряем, приходится вручную обновлять файлы yaml с помощью последнего хеша дайджеста. Если кто-то знает лучший способ, я бы с удовольствием это услышал.
Примечание: сейчас 2019 год, и Kubernetes должен иметь возможность получить дайджест-форму хеша / самую последнюю версию без необходимости ее явного определения.
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: {}