gpt4 book ai didi

docker - 在 Kubernetes 集群中部署内部 docker 镜像

转载 作者:行者123 更新时间:2023-12-02 12:18:53 25 4
gpt4 key购买 nike

我尝试部署一个我构建的 docker 镜像,它不在公共(public)或私有(private)注册表上。

我使用 imagePullPolicy: IfNotPresent用于 Kubernetes 部署。

我使用 kubeadm v1.12 的错误:

Normal   Scheduled       35s                default-scheduler       Successfully assigned default/test-777dd9bc96-chgc7 to ip-10-0-1-154
Normal SandboxChanged 32s kubelet, ip-10-0-1-154 Pod sandbox changed, it will be killed and re-created.
Normal BackOff 30s (x3 over 31s) kubelet, ip-10-0-1-154 Back-off pulling image "test_kube"
Warning Failed 30s (x3 over 31s) kubelet, ip-10-0-1-154 Error: ImagePullBackOff
Normal Pulling 15s (x2 over 34s) kubelet, ip-10-0-1-154 pulling image "test"
Warning Failed 13s (x2 over 33s) kubelet, ip-10-0-1-154 Failed to pull image "test": rpc error: code = Unknown desc = Error response from daemon: pull access denied for test_kube, repository does not exist or may require 'docker login'
Warning Failed 13s (x2 over 33s) kubelet, ip-10-0-1-154 Error: ErrImagePull

我的部署文件:
apiVersion: apps/v1beta1
kind: Deployment
vmetadata:
name: test-kube
spec:
template:
metadata:
labels:
app: test
spec:
containers:
- name: test
image: test
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3000
env:
- name: SECRET-KUBE
valueFrom:
secretKeyRef:
name: secret-test
key: username

docker images]


REPOSITORY  TAG
test latest
test test

在我尝试的部署文件中

image: test and with image: test:test



同样的错误:

Error: ErrImagePull

最佳答案

  • 基于具有拉/推权限的 docker 注册表用户创建一个 secret
  • 将其用作 imagePullSecret

  • 或者
  • 预拉部署节点上的镜像

  • 创建secret及使用详情:

    Kubernetes 集群使用 docker-registry 类型的 Secret 向容器注册表进行身份验证以提取私有(private)镜像。

    创建此 Secret,将其命名为 regcred:
    kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>

    在哪里:
    <your-registry-server> is your Private Docker Registry FQDN. (https://index.docker.io/v1/ for DockerHub)
    <your-name> is your Docker username.
    <your-pword> is your Docker password.
    <your-email> is your Docker email.

    然后创建一个使用该 key 的 pod:
    apiVersion: v1
    kind: Pod
    metadata:
    name: private-reg
    spec:
    containers:
    - name: private-reg-container
    image: <your-private-image>
    imagePullSecrets:
    - name: regcred

    对于本地镜像用例,请参阅此帖子:

    Pull a local image to run a pod in Kubernetes

    关于docker - 在 Kubernetes 集群中部署内部 docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52973242/

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