首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubectl kubectl应用不执行任何操作

kubectl kubectl应用不执行任何操作
EN

Stack Overflow用户
提问于 2020-09-17 03:12:47
回答 3查看 246关注 0票数 0

我在k8s中有现有的部署,我想更新容器,我在部署和运行中更新了docker镜像标签(新的唯一id):

代码语言:javascript
复制
kubectl apply -f testdeploy.yml --namespace=myapp

输出为:deployment.apps/fakename configured

但是什么也没发生。

当我运行kubectl get pods --namespace=myapp时,我只能看到一个年老的旧pod。

有时是有效的,有时不是,为什么?

怎么啦?

EN

回答 3

Stack Overflow用户

发布于 2020-09-17 03:45:43

尝试添加ImagePullPolicy: Always,如下所示:

代码语言:javascript
复制
    spec:
      containers:
      - image: <YOUR_IMAGE>:<YOUR_TAG>
        imagePullPolicy: Always
票数 2
EN

Stack Overflow用户

发布于 2020-09-17 14:02:54

尝试描述部署并查看事件

代码语言:javascript
复制
kubectl describe <deployment-name> --namespace=myapp

代码语言:javascript
复制
kubectl get events --namespace=myapp

来理解正在发生的事情。

请尝试检查是否已为更改的部署容器映像创建新副本。

代码语言:javascript
复制
kubectl get rs -n myapp

检查执行kubectl get rs时预期的副本数量示例

代码语言:javascript
复制
NAME                                DESIRED   CURRENT   READY   AGE
<deployment-name>-58ffbb8b76         0         0         0       10s

也许更多的细节将有助于理解为什么当您尝试部署时没有发生任何事情。

kubernetes有很好的文档来检查这一点。

https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application-introspection/

票数 2
EN

Stack Overflow用户

发布于 2020-09-17 07:26:45

你需要删除你的部署更新,然后重新创建,它将获取新的镜像,或者你可以编辑你的部署文件,如下所示,引入kubectl delete -f testdeploy.yml --namespace=myapp kubectl apply -f testdeploy.yml --namespace=myapp,然后当你更新你的镜像时,你可以简单地输入kubectl rollout restart deploy deployment_name_mentioned_in_manifest -n namespace这将提供一个新的pod,而旧的保留并获取新的镜像,一旦完成,旧的pod将被删除,新的pod将具有最新的镜像。

使用下面的清单文件的示例如果我想获取最新的映像,我将输入kubectl rollout restart deploy nginx -n test

代码语言:javascript
复制
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  namespace: test
spec:
  replicas: 1
  selector:
    matchLabels:
      name: nginx
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 1
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
      - name:  nginx
        image: nginx:latest
        imagePullPolicy: Always
        ports:
        - containerPort: 80
          hostPort: 80
        - containerPort: 443
          hostPort: 443
        readinessProbe:
          tcpSocket:
            port: 443
            port: 80
          initialDelaySeconds: 5
          periodSeconds: 5
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63926591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档