【问题标题】:kubernetes k8 unable to pull latest imagekubernetes k8 无法拉取最新镜像
【发布时间】:2023-02-03 13:09:29
【问题描述】:

您好,我在 Kubernetes 工作。下面是我用于部署的 k8。

apiVersion: apps/v1
kind: Deployment 
metadata: #Dictionary
  name: webapp
spec: # Dictionary
  replicas: 1
  strategy:
    type: RollingUpdate
    rollingUpdate:
      # maxUnavailable will set up how many pods we can add at a time
      maxUnavailable: 50%
      # maxSurge define how many pods can be unavailable during the rolling update
      maxSurge: 1
  selector:
    matchLabels:
      app: webapp
      instance: app
  template:  
    metadata: # Dictionary
      name: webapplication
      labels: # Dictionary
        app: webapp  # Key value paids
        instance: app
      annotations:
        vault.security.banzaicloud.io/vault-role: al-dev
    spec:
      serviceAccountName: default
      terminationGracePeriodSeconds: 30
      containers: # List
        - name: al-webapp-container
          image: ghcr.io/my-org/al.web:latest
          imagePullPolicy: Always
          ports: 
            - containerPort: 3000
          resources:
            requests:
              memory: "1Gi"
              cpu: "900m"     
            limits:
              memory: "1Gi"
              cpu: "1000m"
      imagePullSecrets:
        - name: githubpackagesecret    

每当我将它部署到 kubernetes 中时,它都不会从 github 包中选择最新的图像。我应该怎么做才能拉取最新图像并使用最新图像更新当前运行的 pod?有人可以帮我解决这个问题。任何帮助,将不胜感激。谢谢

【问题讨论】:

  • 您的 Pod 正在重新启动和更新?你什么时候部署?标签已设置并且部署没有变化 k8s 不会更新部署并且它将保持不变。
  • 当我部署 k8 时,我看到旧图像正在部署
  • 这事有进一步更新吗 ?如果发现以下答案有帮助,请随时更新问题的状态

标签: kubernetes docker-container kubernetes-deployment


【解决方案1】:

如果您使用相同的方式进行部署,可能会有机会最新的标签部署可能不会像以前一样得到更新图片标签.

需要重新启动 Pod,这样它每次都会下载新图像,如果仍然相同,则说明构建有问题缓存图像。

您现在可以做什么来尝试

kubectl rollout restart deploy <deployment-name> -n <namespace>

这将重启 Pod,它将为所有 POD 获取新图像并检查最新代码是否正在运行。

【讨论】:

  • kubectl rollout restart 只会导致现有的 Pod 被删除并重新创建。如果一个节点仍然有一个标记为 latest 的旧图像,则该命令本身不会导致图像被重新拉取。
  • 大卫,你是对的,但是图像拉取策略设置为always,所以认为它每次都会获取图像。
【解决方案2】:

因为你有 imagePullPolicy: Always 设置它应该总是拉图像。您可以在 pod 启动时对 pod 执行 kubectl describe 以便我们可以播种日志吗?

【讨论】:

  • 我已经推送了带有最新标签的图像,但是当我描述时,我看到很久以前就开始了。
猜你喜欢
  • 2016-08-20
  • 2018-11-16
  • 2022-08-09
  • 1970-01-01
  • 2022-10-31
  • 1970-01-01
  • 2019-08-23
  • 2022-11-11
  • 2015-06-28
相关资源
最近更新 更多