gpt4 book ai didi

docker - 如何在 Kubernetes 中使用本地 docker 镜像?

转载 作者:IT老高 更新时间:2023-10-28 21:37:32 34 4
gpt4 key购买 nike

我有这个基本的 Dockerfile:

FROM nginx
RUN apt-get -y update && apt install -y curl

在我的 Kubernetes 集群的主节点中,我构建了该镜像:

docker build -t cnginx:v1 . 

docker images 说明镜像已经正确生成:

REPOSITORY                                 TAG                 IMAGE ID            CREATED             SIZE
cgninx v1 d3b1b19d069e 39 minutes ago 141MB

我使用这个部署引用这个自定义图像:

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: cnginx
image: cnginx:v1
imagePullPolicy: Never
ports:
- containerPort: 80
nodeSelector:
nodetype: webserver

但是找不到图片:

NAME                                READY     STATUS              RESTARTS   AGE
nginx-deployment-7dd98bd746-lw6tp 0/1 ErrImageNeverPull 0 4s
nginx-deployment-7dd98bd746-szr9n 0/1 ErrImageNeverPull 0 4s

描述 pod 信息:

Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 1m default-scheduler Successfully assigned nginx-deployment-7dd98bd746-szr9n to kubenode2
Normal SuccessfulMountVolume 1m kubelet, kubenode2 MountVolume.SetUp succeeded for volume "default-token-bpbpl"
Warning ErrImageNeverPull 9s (x9 over 1m) kubelet, kubenode2 Container image "cnginx:v1" is not present with pull policy of Never
Warning Failed 9s (x9 over 1m) kubelet, kubenode2 Error: ErrImageNeverPull

我也尝试过使用默认的 imagePullPolicy,以及一些其他的东西,比如用最新的标记图像......

那么,如何让 Kubernetes 使用本地生成的 docker 镜像?

最佳答案

您的 POD 安排在您的工作程序节点上。由于您将 imagePullPolicy 设置为 Never 您需要使您的图像对两个节点都可用。换句话说,您需要像在主节点上一样在两个节点上构建它。

作为旁注,如果您设置自定义 docker 注册表并将图像推送到那里,从长远来看可能会更容易。

关于docker - 如何在 Kubernetes 中使用本地 docker 镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50671576/

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