gpt4 book ai didi

image - 如何强制 Kubernetes 重新拉取镜像?

转载 作者:行者123 更新时间:2023-12-03 04:39:01 25 4
gpt4 key购买 nike

我在 GKE 上的 Kubernetes 中有以下复制 Controller :

apiVersion: v1
kind: ReplicationController
metadata:
name: myapp
labels:
app: myapp
spec:
replicas: 2
selector:
app: myapp
deployment: initial
template:
metadata:
labels:
app: myapp
deployment: initial
spec:
containers:
- name: myapp
image: myregistry.com/myapp:5c3dda6b
ports:
- containerPort: 80
imagePullPolicy: Always
imagePullSecrets:
- name: myregistry.com-registry-key

现在,如果我说

kubectl rolling-update myapp --image=us.gcr.io/project-107012/myapp:5c3dda6b

执行滚动更新,但不重新拉取。为什么?

最佳答案

如果出现以下任一情况,Kubernetes 将拉动 Pod 创建(请参阅 updating-images doc ):

  • 使用标记为 :latest 的图像
  • imagePullPolicy: Always已指定

如果你想一直拉动,这非常棒。但是,如果您想按需执行此操作,该怎么办:例如,如果您想使用 some-public-image:latest但只想在您要求时手动获取较新的版本。您当前可以:

  • 设置imagePullPolicyIfNotPresentNeverpre-pull :在每个集群节点上手动拉取镜像,以便缓存最新的镜像,然后执行 kubectl rolling-update或类似于重新启动 Pod(丑陋且容易损坏的黑客!)
  • 暂时更改 imagePullPolicy ,做一个kubectl apply ,重新启动 Pod(例如 kubectl rolling-update ),恢复 imagePullPolicy ,重做kubectl apply (丑陋!)
  • 拉动和插入 some-public-image:latest到您的私有(private)存储库并执行 kubectl rolling-update (重!)

对于按需拉取没有好的解决方案。如果有变化,请发表评论;我会更新这个答案。

关于image - 如何强制 Kubernetes 重新拉取镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33112789/

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