相关疑难解决方法(0)

如何强制Kubernetes重新拉出图像?

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

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
Run Code Online (Sandbox Code Playgroud)

现在,如果我说

kubectl rolling-update myapp --image=us.gcr.io/project-107012/myapp:5c3dda6b
Run Code Online (Sandbox Code Playgroud)

执行滚动更新,但没有重新拉动.为什么?

pull image kubernetes

112
推荐指数
14
解决办法
8万
查看次数

如何在 AKS 中使用来自 ACR 的更新的 docker 映像

我有一个已推送到私有 Azure 容器注册表的本地 docker 映像。然后在 Azure Kubernetes 服务中,我有一个使用此映像的集群 - 来自 ACR。

现在我想更新图像(意识到我需要安装 zip 和解压缩)。我启动了一个本地容器,进行了更改,提交了它们并将新映像推送到了 ACR。不幸的是,这还不够。我的 pod 仍在使用之前版本的镜像,没有 zip。

更多细节和我尝试过的:

  • 在掌舵图中,我使用了“最新”标签;

  • 比较我本地“最新”图像的摘要 sha 和我在 ACR 中的图像 - 它们是相同的;

  • 在本地启动“最新”容器 ( docker run -it --rm -p 8080:80 My-REPO.azurecr.io/MY-IMAGE:latest) - 它安装了 zip

  • 删除了 kubernetes 中现有的 pod;新创建的仍然缺少 zip

  • 删除发布并重新创建它 - 仍然没有。

  • 我正在使用 ACR docker push MY-REPO.azurecr.io/MY-IMAGE:latest

所以我的问题是 - 我错过了什么?如何正确更新此设置?

docker kubernetes-helm azure-aks azure-acr

3
推荐指数
1
解决办法
1890
查看次数

如果文件没有更改,如何重新部署(滚动更新)kubernetes 部署

假设我们在deployment.yml中有这个

containers:
  - name: my_container
    imagePullPolicy: Always
    image: my_image:latest
Run Code Online (Sandbox Code Playgroud)

因此,重新部署可能采取以下形式:

kubectl set image deployment/my-deployment my_container=my_image
Run Code Online (Sandbox Code Playgroud)

我从这里偷来的:

/sf/answers/2825796431/

我的问题是 - 这是进行滚动更新的正确方法吗?上述内容是否始终可以确保部署获得新映像?我的deployment.yml可能永远不会改变——它可能my_image:latest永远不变,那么如何进行滚动更新呢?

kubernetes kubectl amazon-eks

1
推荐指数
1
解决办法
1706
查看次数