gpt4 book ai didi

docker - 如何更新 Google Container Engine 上的 Kubernetes 部署?

转载 作者:行者123 更新时间:2023-12-02 09:00:32 27 4
gpt4 key购买 nike

我遵循了一些指南,并使用 Google 容器引擎和 Google 容器注册表设置了 CI。问题是我的更新没有应用于部署。

这是我的部署.yml,其中包含 Kubernetes 服务和部署:

apiVersion: v1
kind: Service
metadata:
name: my_app
labels:
app: my_app
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 3000
selector:
app: my_app
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: my_app
spec:
replicas: 1
template:
metadata:
labels:
app: my_app
spec:
containers:
- name: node
image: gcr.io/me/my_app:latest
ports:
- containerPort: 3000
resources:
requests:
memory: 100

- name: phantom
image: docker.io/wernight/phantomjs:2.1.1
command: ["phantomjs", "--webdriver=8910", "--web-security=no", "--load-images=false", "--local-to-remote-url-access=yes"]
ports:
- containerPort: 8910
resources:
requests:
memory: 1000

作为 CI 流程的一部分,我运行一个脚本来更新 google 云注册表中的镜像,然后运行 ​​kubectl apply -f/deploy/deployment.yml。这两项任务均成功,并且我收到部署和服务已更新的通知:

2016-09-28T14:37:26.375Zgoogleclouddeploymentservice "my_app" configured
2016-09-28T14:37:27.370Zgoogleclouddeploymentdeployment "my_app" configured

由于我在图像上添加了 :latest 标签,因此我认为该图像将是 downloaded each time部署已更新。根据docs RollingUpdate 也应该是默认策略。

但是,当我运行更新部署的 CI 脚本时 - 未下载更新的镜像,并且未应用更改。我缺少什么?我假设由于 deployment.yml 中没有任何变化,因此不会应用任何更新。如何让 Kubernetes 下载更新后的镜像并使用 RollingUpdate 来部署它?

最佳答案

您可以通过更改任何字段(例如标签)来强制更新部署。因此,就我而言,我只是将其添加到 CI 脚本的末尾:

kubectl patch deployment fb-video-extraction -p \
"{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"`date +'%s'`\"}}}}}"

关于docker - 如何更新 Google Container Engine 上的 Kubernetes 部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39750991/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com