k8s中imagePullSecrets

news/2024/10/22 17:22:17/

在k8s集群的使用过程中,初学者可能会碰到这样的(怪异)问题:
在一个k8s集群里,部署服务(用的私有镜像仓库,如harbor)的时候,只有个别node的服务是部署成功的,其他都是部署失败的,错误的原因就是镜像拉取失败,如下:

kubectl get pods -A -owide |grep jenkins-demo
devlopment     jenkins-demo-67d4f9d666-2fh8k            1/1     Running            0          27m     10.244.2.40     local-k8s-nd02   <none>           <none>
devlopment     jenkins-demo-dbc9f5b6b-h78tx             0/1     ImagePullBackOff   0          6m4s    10.244.6.93     local-k8s-nd03   <none>           <none>
production     jenkins-demo-dbc9f5b6b-tnkfs             1/1     Running            0          5m47s   10.244.2.44     local-k8s-nd02   <none>           <none>
qatest         jenkins-demo-67d4f9d666-hb22t            1/1     Running            0          27m     10.244.2.41     local-k8s-nd02   <none>           <none>
qatest         jenkins-demo-dbc9f5b6b-d6txr             0/1     ImagePullBackOff   0          6m      10.244.6.94     local-k8s-nd03   <none>           <none>

查看失败详情

# kubectl describe pods -n qatest jenkins-demo-6cbfb64844-79n8l
..........
Events:Type     Reason     Age                From               Message----     ------     ----               ----               -------Normal   Scheduled  78s                default-scheduler  Successfully assigned qatest/jenkins-demo-6cbfb64844-79n8l to local-k8s-nd03Normal   Pulling    37s (x3 over 78s)  kubelet            Pulling image "dev-hub.jiatuiyun.net/zeng/my-demo:429d9c1"Warning  Failed     36s (x3 over 77s)  kubelet            Failed to pull image "dev-hub.jiatuiyun.net/zeng/my-demo:429d9c1": rpc error: code = Unknown desc = Error response from daemon: pull access denied for dev-hub.jiatuiyun.net/zeng/my-demo, repository does not exist or may require 'docker login': denied: requested access to the resource is deniedWarning  Failed     36s (x3 over 77s)  kubelet            Error: ErrImagePullNormal   BackOff    6s (x5 over 77s)   kubelet            Back-off pulling image "dev-hub.jiatuiyun.net/zeng/my-demo:429d9c1"Warning  Failed     6s (x5 over 77s)   kubelet            Error: ImagePullBackOff

然后我们去镜像拉取失败的机器上,直接用命令拉取,竟然是ok的

 # docker pull dev-hub.jiatuiyun.net/zeng/my-demo:eb7ec1d
eb7ec1d: Pulling from zeng/my-demo
4fe2ade4980c: Already exists 
2e793f0ebe8a: Already exists 
77995fba1918: Already exists 
4495499e856d: Already exists 
0ff8f8e34aa6: Already exists 
6c24ea7b9085: Pull complete 
c07b8e5ec47b: Pull complete 
Digest: sha256:95077089b59358820c4c763ae8bc390e470c62ac3d212abfe38292ff6389c7bb
Status: Downloaded newer image for dev-hub.jiatuiyun.net/zeng/my-demo:eb7ec1d
dev-hub.jiatuiyun.net/zeng/my-demo:eb7ec1d

同一个集群,同一个镜像仓库的同一个镜像,只是node不同而已,个别node拉取镜像ok,其余node拉取镜像失败,为何?

其实这个问题的原因就处在,服务的部署文件里边没有配置拉取镜像用的secret,在服务配置文件中的名字是 imagePullSecrets 如下:

.....spec:imagePullSecrets:- name: registry-pull-secretcontainers:- image: dev-hub.xxxxx.net/zeng/my-demo:<BUILD_TAG>imagePullPolicy: IfNotPresentname: jenkins-demo
.....

注意:如果服务分布在多个不同的namespace下,那在这些namespace下都要创建secret

至于secret如何创建就不在此赘述了,网上很多可以参考的资料。


http://www.ppmy.cn/news/174857.html

相关文章

编程实现一个子网划分的工具

1&#xff1a;标题 编程实现一个子网划分的工具&#xff0c;语言不限&#xff0c;具体要求如下&#xff1a; &#xff08;1&#xff09;能够根据用户输入的网络地址&#xff0c;判断出用户输入地址的合法性及网络的类别&#xff08;A、B、C地址&#xff09;&#xff1b; &am…

Kubernetes详细笔记

文章目录 Kubernetes一、Kubernetes介绍1.1、应用部署方式演变1.2、kubernetes简介1.3、kubernetes组件1.4、kubernetes概念 二、集群环境搭建2.1、环境规划2.1.1、集群类型2.1.2、安装方式2.1.3、主机规划 2.2、环境搭建2.2.1、主机安装2.2.2、环境初始化2.2.3、安装docker2.2…

k8s之所有resources类型

以下组件基于1.19版本 可以使用kubectl api-resource nameshort nameAPI groupnamespacekindbingdstruebingcomponentStatusescsfalseComponetStatusconfigMapscmtrueConfigMapendpointseptrueEndpointseventsevtrueEventlimitrangeslimitstrueLimitRangenamepspacesnsfalseNa…

【K8S】K8S 1.18.2安装dashboard(基于kubernetes-dashboard 2.0.0版本)

写在前面 K8S集群部署成功了&#xff0c;如何对集群进行可视化管理呢&#xff1f;别着急&#xff0c;接下来&#xff0c;我们一起搭建kubernetes-dashboard来解决这个问题。 有关K8S集群的安装可以参考《【K8S】基于单Master节点安装K8S集群》 有关Metrics-Service的安装可以参…

RL策略梯度方法之(八): Distributed Distributional DDPG (D4PG)

本专栏按照 https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html 顺序进行总结 。 文章目录 原理解析主要 trick与 DDPG的异同 算法实现总体流程代码实现 D 4 P G \color{red}D4PG D4PG &#xff1a;[ paper | code ] 原理解析 主要 trick D4P…

K8S使用ceph-csi持久化存储之cephfs部署验证快照

一、集群和组件版本 K8S集群&#xff1a;1.19.4 Ceph集群&#xff1a;ceph version 15.2.13 (c44bc49e7a57a87d84dfff2a077a2058aa2172e2) octopus (stable) Ceph-CSI&#xff1a;release-v3.3 (csi版本要对应不然创建pvc要报错) Linue kernel&#xff1a;5.13.12-1.el7.elrep…

k8s 初体验

1.使用kubeadm工具快速安装Kubernetes集群 准备工作 关掉selinux vi /etc/selinux/config disabled 关掉firewalld,iptables systemctl disable firewalld systemctl stop firewalld systemctl disable iptables systemctl stop iptables 编辑生成kubernetes的yum源 [roo…

Kubernetes - 从Docker 镜像到K8s Pod操作示例

上一篇有写到怎样将一个普通的springboot的jar包&#xff0c;制作成docker镜像&#xff0c;并push到镜像仓库&#xff0c; Docker - 创建并运行一个docker&#xff08;springboot&#xff09;容器 启动这个docker容器&#xff0c;并对外提供服务等等&#xff1b; 这里我们…