您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

kubernetes之基于ServiceAccount拉取私有镜像

时间:2022-09-21 15:35:10  来源:  作者:没有烦恼的河豚

前面可以通过ImagPullPolicy和ImageullSecrets指定下载镜像的策略,ServiceAccount也可以基于spec.imagePullSecret字段附带一个由下载镜像专用的Secret资源组成的列表,用于在容器创建时,从某个私有镜像仓库下载镜像文件之前的服务认证。

1.创建Secrets资源

这里根据自己的实际去定义即可;一定要是对方的地址和认证信息;否则无法pull/push

root@ks-master01-10:~# kubectl create secret Docker-registry 
> aliyun-haitang-registry 
> --docker-server=registry.cn-hangzhou.aliyuncs.com 
> --docker-username=xxxxxxx
> --docker-password=xxxxxx
secret/aliyun-haitang-registry created

1.1查看Secrets

root@ks-master01-10:~#  kubectl describe secret aliyun-haitang
Name:         aliyun-haitang
Namespace:    default
Labels:       <none>
Annotations:  <none>

Type:  kube.NETes.io/dockerconfigjson

Data
====
.dockerconfigjson:  140 bytes

2.创建ServiceAccount

2.1不设置任何策略,测试是否能拉取私有仓库镜像

此处不配置任何镜像拉取策略,测试是否能拉取私有仓库镜像;

root@ks-master01-10:~#  cat pod-serviceaccount-secret.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: stree-serviceaccount
spec:
  containers:
  - name: stree
    image: registry.cn-hangzhou.aliyuncs.com/lengyuye/stress:latest

2.2查看Pod,处于ErrImage

root@ks-master01-10:~# kubectl get pods
NAME                                      READY   STATUS         RESTARTS       AGE
stree-serviceaccount                      0/1     ErrImagePull   0              8s

2.3describe查看Events

可以看到事件,是Docker认证的问题;

root@ks-master01-10:~# kubectl describe pods stree-serviceaccount
Events:
  Type     Reason     Age               From               Message
  ----     ------     ----              ----               -------
  Normal   Scheduled  20s               default-scheduler  Successfully assigned default/stree-serviceaccount to ks-node02-12
  Normal   BackOff    17s               kubelet            Back-off pulling image "registry.cn-hangzhou.aliyuncs.com/lengyuye/stress:latest"
  Warning  Failed     17s               kubelet            Error: ImagePullBackOff
  Normal   Pulling    2s (x2 over 19s)  kubelet            Pulling image "registry.cn-hangzhou.aliyuncs.com/lengyuye/stress:latest"
  Warning  Failed     2s (x2 over 18s)  kubelet            Failed to pull image "registry.cn-hangzhou.aliyuncs.com/lengyuye/stress:latest": rpc error: code = Unknown desc = Error response from daemon: pull access denied for registry.cn-hangzhou.aliyuncs.com/lengyuye/stress, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
  Warning  Failed     2s (x2 over 18s)  kubelet            Error: ErrImagePull

2.4创建ServiceAccount

aliyun-haitang是docker-registry类型的Secrets对象,由用户提前手动创建,它可以通过键值数据提供docker仓库服务器的地址,接入服务器的用户名,密码及用户的电子邮件信息等,认证通过后,引用ServiceAccount的Pod资源即可从指定的镜像仓库下载image。

root@ks-master01-10:~# cat serviceaccount-imagepullsecret.yaml 
apiVersion: v1
kind: ServiceAccount
metadata:
   name: imagepull-aliyun-sa
imagePullSecrets:
- name: aliyun-haitang
root@ks-master01-10:~# kubectl Apply -f serviceaccount-imagepullsecret.yaml 
serviceaccount/imagepull-aliyun-sa created

2.5查看SA

root@ks-master01-10:~# kubectl get sa imagepull-aliyun-sa -o yaml
apiVersion: v1
imagePullSecrets:
- name: aliyun-haitang
kind: ServiceAccount
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","imagePullSecrets":[{"name":"aliyun-haitang"}],"kind":"ServiceAccount","metadata":{"annotations":{},"name":"imagepull-aliyun-sa","namespace":"default"}}
  creationTimestamp: "2022-09-07T02:31:05Z"
  name: imagepull-aliyun-sa
  namespace: default
  resourceVersion: "226300"
  uid: fabc93b1-572c-4703-a2dd-465d4e0915cb
secrets:
- name: imagepull-aliyun-sa-token-vf67z

2.6Pod引用ServiceAccount

root@ks-master01-10:~# cat pod-serviceaccount-secret.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: stree-serviceaccount   
spec:
  serviceAccount: imagepull-aliyun-sa   # 这里则是创建的sa的名称
  containers:
  - name: stree
    image: registry.cn-hangzhou.aliyuncs.com/lengyuye/stress:latest
root@ks-master01-10:~/rbac# kubectl apply -f pod-serviceaccount-secret.yaml 
pod/stree-serviceaccount created

3.创建Pod测试;

3.1查看Pod

root@ks-master01-10:~# kubectl get pods
NAME                                      READY   STATUS    RESTARTS       AGE
stree-serviceaccount                      1/1     Running   0              8s

3.2describe查看事件

root@ks-master01-10:~# kubectl describe pods stree-serviceaccount
Events:
  Type    Reason     Age    From               Message
  ----    ------     ----   ----               -------
  Normal  Scheduled  3m36s  default-scheduler  Successfully assigned default/stree-serviceaccount to ks-node02-12
  Normal  Pulling    3m35s  kubelet            Pulling image "registry.cn-hangzhou.aliyuncs.com/lengyuye/stress:latest"
  Normal  Pulled     3m33s  kubelet            Successfully pulled image "registry.cn-hangzhou.aliyuncs.com/lengyuye/stress:latest" in 1.729555429s
  Normal  Created    3m33s  kubelet            Created container stree
  Normal  Started    3m33s  kubelet            Started container stree

3.3查看详细信息

root@ks-master01-10:~# kubectl get pods stree-serviceaccount -o yaml
  imagePullSecrets:
  - name: aliyun-haitang
  nodeName: ks-node02-12
  preemptionPolicy: PreemptLowerPriority
  priority: 0
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}
  serviceAccount: imagepull-aliyun-sa
  serviceAccountName: imagepull-aliyun-sa


Tags:kubernetes   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
导读:在 Kubernetes 中运行无服务器函数时,实现更快的启动速度和更小的内存占用。本文字数:5814,阅读时长大约: 7分钟由于运行上千个应用程序容器荚(Pod)所耗费的资源多,令它实现...【详细内容】
2022-10-26  Tags: kubernetes  点击:(9)  评论:(0)  加入收藏
导读:微服务遵循领域驱动设计(DDD),与开发平台无关。Python 微服务也不例外。Python3 的面向对象特性使得按照 DDD 对服务进行建模变得更加容易。本文字数:12786,阅读时长大约: 15...【详细内容】
2022-10-20  Tags: kubernetes  点击:(18)  评论:(0)  加入收藏
Kubernetes下载K8S官网下载最新版本即可Kubernetes前期准备工作关闭防火墙systemctl disable --now firewalld关闭selinux和开机自启动setenforce 0# vi /etc/sysconfig/sel...【详细内容】
2022-10-07  Tags: kubernetes  点击:(16)  评论:(0)  加入收藏
开始使用 Kubernetes 并不容易。本文将帮助您了解 Kubernetes 的一些最重要的概念。每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注...【详细内容】
2022-10-06  Tags: kubernetes  点击:(31)  评论:(0)  加入收藏
前面可以通过ImagPullPolicy和ImageullSecrets指定下载镜像的策略,ServiceAccount也可以基于spec.imagePullSecret字段附带一个由下载镜像专用的Secret资源组成的列表,用于在...【详细内容】
2022-09-21  Tags: kubernetes  点击:(59)  评论:(0)  加入收藏
了解有关 Kubernetes 可扩展性的更多信息。 Kubernetes 提供了很多好处:拥有大量参与者、自我修复能力等的巨大生态系统。不过,没有免费的午餐。它也有缺点,其中最主要的是它的...【详细内容】
2022-09-21  Tags: kubernetes  点击:(38)  评论:(0)  加入收藏
Traefik 是一个出色的 Kubernetes 集群入口控制器,允许您拥有一个 L7 入口路由引擎来将入口流量路由到您的 Kubernetes 托管服务。在本教程中,我们将研究 Traefik 的 安装和配...【详细内容】
2022-08-31  Tags: kubernetes  点击:(108)  评论:(0)  加入收藏
借助 Kubernetes,开发团队可以快速验证、推出和部署对物联网服务的更改。 Kubernetes 是一种用于部署云原生应用程序的服务。由于云应用程序与我们的物联网设备和产品相关联,...【详细内容】
2022-08-25  Tags: kubernetes  点击:(50)  评论:(0)  加入收藏
什么是微服务? 什么是微服务?你应该使用微服务吗?微服务与容器和 Kubernetes 有什么关系?如果这些事情在您的日常生活中不断出现,并且您需要在 10 分钟内进行概述,那么这篇博文适...【详细内容】
2022-07-07  Tags: kubernetes  点击:(41)  评论:(0)  加入收藏
1. 容器编排技术容器编排是指对多个容器的部署,管理和监控。之所以有容器编排技术,其实是和业务量与系统复杂度与日俱增推动服务部署的演进方式息息相关的,下图是服务部署方式...【详细内容】
2022-07-06  Tags: kubernetes  点击:(72)  评论:(0)  加入收藏
▌简易百科推荐
嵌入式开发,离不开 C 语言,C语言中有很多语法会直接或间接影响你代码的质量,下面就来讲讲__attribute__ 关键字的用法。1. 什么是 __attribute__GNU C 编译器增加了一个 __attr...【详细内容】
2022-11-03  嵌入式胖胖  今日头条  Tags:嵌入式   点击:(5)  评论:(0)  加入收藏
前两天,有读者私信发我一篇文章,说里面提到的 Intellij IDEA 插件真心不错,基本上可以一站式开发了,希望能分享给更多的小伙伴,我在本地装了体验了一下,觉得确实值得推荐,希望小伙...【详细内容】
2022-11-03  会写代码的猴子  今日头条  Tags:IDEA   点击:(1)  评论:(0)  加入收藏
一、查看 github 热门趋势 查看全类:https://github.com/trending JAVA类:https://github.com/trending/java点击右上角切换,查看每天、每周、每月热点项目。 二、查看 gith...【详细内容】
2022-11-01  JEECG  今日头条  Tags:github   点击:(5)  评论:(0)  加入收藏
作为一个天天都在CRUD的程序员,你有没有想过,数据库是如何工作的?我猜,你曾经无数次的翻开讲数据库的书籍和文章,但总是看着看着就被劝退,太多的专业术语把人头都搞大了。等等,看这...【详细内容】
2022-11-01  小小怪下士的架构攻略    Tags:Github   点击:(6)  评论:(0)  加入收藏
时隔一年多终于又冒泡了,哎,随着工作越来越忙,自己踏实坐下来写点东西真是越来越费劲,这篇文章也是准备了好久好久才打算发表出来(不瞒大家,东西做完好久了,文章憋了一年了,当真“高...【详细内容】
2022-10-31  jicheng0622  电子技术应用  Tags:LittleVgl   点击:(10)  评论:(0)  加入收藏
大家都知道tp5的数据库配置在config/database.php中,如果这个数据库配置正式服的数据,要再配置一个测试服的数据就需要在config中再创建一个database_test.php的配置文件。但...【详细内容】
2022-10-31  莣夢忧醒  今日头条  Tags:数据库   点击:(7)  评论:(0)  加入收藏
本文主要介绍Qt中线程类QThread的用法在这篇文章中,将写一个获取热点新闻的程序,每隔2秒发送一个关键字,从服务器获得与该关键字相关的一条热点新闻。我们的目标是实现以下几个...【详细内容】
2022-10-31  音视频开发老舅    Tags:Qt开发   点击:(7)  评论:(0)  加入收藏
一、分区存储Git分区存储 存储区 描述 工作区 (workspace) 我们的开发代码目录 暂存区 (Index) .git目录下的index文件 ...【详细内容】
2022-10-30  全栈旅行  今日头条  Tags:Git   点击:(6)  评论:(0)  加入收藏
大家好,我是皮皮。一、前言前几天在Python最强王者交流群【WYM】问了一个pandas处理的问题,提问截图如下:原始数据如下图所示:后来还提供了一个小文件。二、实现过程这里【郑煜...【详细内容】
2022-10-25  Python学习交流     Tags:json   点击:(11)  评论:(0)  加入收藏
机器之心报道编辑:杜伟 想要了解自己的 PyTorch 项目在哪些地方分配 GPU 内存以及为什么用完吗?不妨试试这个可视化工具。 近日,PyTorch 核心开发者和 FAIR 研究者 Zachary DeV...【详细内容】
2022-10-24  机器之心Pro   网易号  Tags:PyTorch   点击:(12)  评论:(0)  加入收藏
站内最新
站内热门
站内头条