【问题标题】:Kubernetes ImagePullPolicy is not workingKubernetes ImagePullPolicy 不起作用
【发布时间】:2020-05-20 17:00:08
【问题描述】:

我的 kubernetes 部署文件和错误如下。我正在尝试在启动 Kubernetes 部署时获取本地计算机中存在的已构建的 docker 映像。当我在底部执行部署文件时,它给了我以下错误。有人可以帮忙吗?

Failed to pull image "shan:v.0.0.1": rpc error: code = Unknown desc = Error response from daemon: pull access denied for shanservice, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: shanservice
  namespace: dev
  labels:
    app: astec
spec:
  replicas: 2
  selector:
    matchLabels:
      name: shanservice
      app: astec
  template:
    metadata:
      name: shanservice
      namespace: dev
      labels:
        name: shanservice
        app: astec
    spec:
      containers:
        - image: shan:v.0.0.1
          name: shanservice
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 8080

【问题讨论】:

  • 您是如何配置 Kubernetes 集群的?如果 minikube 那么镜像是否存在于 minikube 节点上?
  • 没有。通过使用 kubeadm。集群位于单独连接的服务器上。而且是的,我的图像 shan:v.0.0.1 存在于同一服务器中。
  • 尝试使用--image-pull-policy=如果你想使用本地图像,请不要
  • 对于大多数实际设置,您需要将映像推送到某个注册表(Docker Hub,您的云提供商提供的东西,您自己运行的东西)。使用您在此处显示的设置,您需要手动将图像复制到每个(工作)节点,并且每次更新图像时都必须重复此操作;这不是特别实用。

标签: docker kubernetes deployment continuous-integration


【解决方案1】:

我发现了问题所在。我的架构是服务器 A 作为主节点,服务器 B 作为工作节点。因此,当我从服务器 A 启动部署文件时,它会在作为工作节点的服务器 B 中创建 pod,然后这些 pod 仅在工作节点(服务器 B)中搜索必要的图像。所以我所做的是,我在服务器 B 中构建了图像,然后它就可以工作了。非常感谢您的帮助和建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-27
    • 2017-07-09
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 2020-02-25
    相关资源
    最近更新 更多