首页 > 其他分享 >运行一个pod资源10

运行一个pod资源10

时间:2022-10-27 01:22:28浏览次数:57  
标签:pull 这个 配置文件 10 镜像 pod k8s 运行

运行一个pod资源10

接下来了解k8s的资源单位

k8s里面最小的资源单位就是pod,如果说咱们教室这里有一面墙,这面墙的最小资源单位是什么?是一块砖,在k8s里面有很多的资源,其中最小的资源单位就是pod,在k8s里面所有的资源都可以用yaml文件来创建,讲docker compose也是用yaml文件来声明的,在k8s里面,所有的资源单位都是由yaml文件来声明的,每个yaml文件都有4个主要部分,第一个主要部分,apiversion,api版本,几乎是一行就搞定了;然后资源类型kind也基本是一行就搞定了;接下来是他的属性,metadata,这个属性里面可能会包含资源的名字,标签,还有它的一个namespace,前三个,apiversion,kind,metadate的信息都是比较少的,最后一个spec是它的详细,比如pod里面最终是用来跑容器的,在这个spec详细里面就会详细的介绍,这个pod使用什么镜像,这个容器叫什么名字,用什么镜像,是否需要暴露端口,挂载什么卷,站点镜像的策略是什么,重启的策略是什么,所有一切的信息都在spec详细里面指定。yaml文件有缩进的写法,每个缩进代表一个层级关系,spec里面就用来跑容器,注意containers多了个s,一个pod里面是可以跑多个容器的,至少的跑一个,容器的第一行就声明了名字,容器的名字就叫nginx,用的镜像是nginx1.13,后面会用到nginx1.15实现它的滚动升级,nginx镜像里面的端口就是80,这就是一个yaml文件,如下图所示,

image-20221026201228420

我们把这个yaml文件复制下来,在master节点上去操作,所有k8s的配置文件都建一个目录放下来,进到k8s目录,创建一个pod目录,在这个目录下写配置文件/root/k8s/pod,vim k8s_pod.yaml,见名知义,

image-20221026201910677

image-20221026202017367

image-20221026202204769

image-20221026202315396

然后我们把刚才复制的yaml配置文件粘贴上,这就是我们pod资源的一个配置文件了,大家看到这个镜像是从私有仓库里面去下载的,私有仓库里面有这个镜像?没有,所以我们需要上传,接下来我们在创建这个资源之前,上传到12,13上,在推到仓库里面行不行,可以,随便选一个节点,就选择node2节点,

image-20221026203412240

我们把镜像打开,在这里就有13的镜像,

image-20221026221243781

我们自己本地就有,直接rz上去都行,另外一种方法按我的方法复制链接地址,通过wget下载,

image-20221026221557319

现在镜像有了,先把他docker load -i docker_nginx1.13.tar.gz 导入镜像

image-20221026221841622

导入镜像之后打标签,docker tag docker.io/nginx:1.13 10.0.0.11:5000/nginx:1.13,

image-20221026222138822

接下来把这个镜像推上去,

image-20221026222246290

现在私有仓库有这个镜像了,镜像我已经准备好了,接下来根据这个yaml文件怎么去创建这个pod?去主节点master上,在k8s中,创建任何资源都可以用create命令,现在通过一个配置文件来声明这个资源,所以每次创建资源的时候都可以加一个-f指定配置文件,指定k8s_pod资源的这个配置文件,如下图,创建成功。

image-20221026222834074

创建成功之后get一下pod的列表,就能看到一个pod,如下图所示,

image-20221026223106912

在这里就创建了一个pod,创建完之后你用get就能看到这个pod的状态,快10分钟勒,这个pod还处于容器创建中,一直没处于running运行状态,接下来用k8s里面的一个最常用的排错命令,kubectl describe pod nginx ,可以用这个查看pod资源的状态,describe是描述的意思,describe是动态查看它的状态,所有的命令都是有规律的,get pod是看pod资源的列表,describe可以看所有资源的状态,现在我要看pod,nginx的资源

image-20221026223405559

这个pod叫什么名字,nginx

image-20221026231625954

image-20221026231855112

image-20221026232011308

往下面看事件events的第一条,一创建这个pod,scheduler会给他调度一下,给他调度到10.0.0.13这个节点上勒,紧接着就能远程控制kubelet10.0.0.13的服务。

image-20221026232121254

image-20221026232405489

它看这个好像是要铺pull一个镜像,这个镜像的地址好像是,registry.access.redhat.com/rhel7/pod-infrastructure:latest,如下图所示

image-20221026232933386

要铺pull这个镜像,结果发现这个镜像布置pull不下来,说没有这个证书文件,如下图所示

image-20221026233220174

既然10.0.0.13上面铺pull不下来,我们node3节点10.0.0.13去手动铺一下,如下图所示,没有这个文件和目录。

image-20221026233508135

我们手动都铺pull不下来,让它自动也铺pull不下来,如下图所示

image-20221026233800490

为什么铺pull不下来?可以去百度上查一下这个问题的所在

image-20221026233945176

尤其你买了k8s的权威指南,这个坑它就不会告诉你,还得自己查百度解决,上面有告诉你怎么解决,

image-20221026234429944

image-20221027010515150

装上这个包,再来手动安装一下这个证书,然后就能手动将这个镜像铺pull下来了,咱们现在不需要铺pull,你看人家这个镜像在人家的仓库上面,

image-20221026234928944

我们如果铺下来之后,这是调度到10.0.0.13node节点上需要铺pull这个镜像,回头调度到10.0.0.12node节点上,又得铺pull镜像,这里面只要是镜像我们就让它走私有仓库,怎么让这个镜像地址从私有仓库布置pull?为什么它从这个地址布置pull勒?

image-20221026235613881

我们来看一下这个配置文件vim /etc/kubernetes/kubelet

image-20221026235814939

image-20221026235934554

这里面写了一个pod的基础容器,给了基础容器的镜像地址,从红帽官方库

image-20221027000212478

在这里我们不需要它从红帽官方库,我们资料包里面有这个镜像,回头我们把这个地址改成私有仓库地址,它就从私有仓库地址布置pull了,

image-20221027000437171

自己把这个镜像传上去,

image-20221027000656648

找到图上这个资料包,把这个包传上来,这里包200多M,建议用xftp上传,不建议rz,如下图

image-20221027001044713

image-20221027001446627

image-20221027001417387

又要把这个包传到哪儿去勒?把这个包传到私有仓库,之后需要拉取的话直接从私有仓库下载拉取。

传包第一步,先导入进去,

image-20221027001748252

image-20221027001951235

第二步,打标签

因为我们布置pull不下来,你用docker search 也能搜索到这个镜像,别人传到这上面,我们就可以布置下来

image-20221027002307228

image-20221027002438467

接下来不管从哪儿布pull的,怎么把它打标签?

打标签

image-20221027002817106

推上去

image-20221027002922819

image-20221027003530814

最终私有仓库地址就是这个,如下图

image-20221027003007163

然后再把它改到哪儿去,让它生效勒?改它的配置文件,接下来改配置文件,vim /etc/kubernetes/kubelet

image-20221027003700664

image-20221027003941638

image-20221027004050457

传上去之后保存了之后生效了?需要重启kubelet服务,如下图所示

image-20221027004224394

再回到master节点上面,再看一下这个pod状态

image-20221027004556648

刚才还报错,两秒之后就可以pull拉了,有个警告没关系。

image-20221027004807907

这个容器搞定了之后,会去pull我们的nginx的镜像,再下一步,镜像本地已经有了,

image-20221027005138131

因为之前在10.0.0.13node2节点上我已经打过标签了,所以提示有,就不用从私有仓库pull了

image-20221027005424472

再来get一下pod状态,就变成了running

image-20221027005554900

标签:pull,这个,配置文件,10,镜像,pod,k8s,运行
From: https://www.cnblogs.com/ypyyds/p/16830691.html

相关文章

  • AIR32F103(二) Linux LibOpenCM3开发环境
    目录AIR32F103(一)合宙AIR32F103CBT6开发板上手报告AIR32F103(二)LinuxLibOpenCM3开发环境Linux开发环境在Linux下和STM32F1xx的开发环境是一样的,可以使用gcc......
  • AcWing 1022. 宠物小精灵之收服
    宠物小精灵之收服(二维费用背包问题)原题链接:https://www.acwing.com/problem/content/1024/思路先做一个阅读理解每一个小精灵只能收一次->01背包接下来去考虑体积、......
  • 10.26
    数组不要开在局部!!!!!注意清空!!!!A比较简单,考虑到每一次会变成自己的子集,最多只会操作log次,于是预处理初每次操作的位置即可。B首先,连通性不会变。然后,同一连通块内,两点距离......
  • 模板整理(2022.10)
    模板整理(2022.10)1.线性筛素数boolis_prime[100000005];//是否为素数intprime[100005],cnt;//素数数组,cnt:素数个数voidget_prime(intmaxn){ memset(is_prime,1......
  • 洛谷P1021题解
    原题P1021[NOIP1999提高组]邮票面值设计思路概述题意分析给定两个整数\(N,K(N+K≤15)\),设计\(K\)种邮票面值\(\{a_1,a_2\dotsa_K\}\),并用共\(N\)张上述邮票......
  • 2022.10.26
    没有联考,明天的考试大概是最后一次了。把所有字符串的板子打了一遍,还算比较熟练。写了一道300+行的大模拟,非常恶心磨人,码力还是需要加强,写+调用了5h。300行代码静态差错......
  • 【2022.10.26】Vue基础学习(3)
    内容概要1.表单控制2.购物车案例3.v-model进阶4.vue生命周期1表单控制#input:checkbox(单选,多选),radio(单选)<!DOCTYPEhtml><htmllang="en"><head><meta......
  • 【2022-10-26】前端Vue框架(三)
    一、表单控制#表单控制可以用一个input框来实现数据绑定:主要参数有checkbox(单选,多选),radio(单选),示例如下:1.1单选<!DOCTYPEhtml><htmllang="en"><head><meta......
  • 洛谷P1064题解
    原题P1064[NOIP2006提高组]金明的预算方案思路概述题意分析给定一个体积为\(n\)的背包和\(m\)个物品。每个物品通过\((\text{价值},\text{体积})\)的形式表......
  • 【闲话】2022.10.26
    今天属实他妈破防离谱死了傻逼吧整个人晚上心情就没好过酒店网是什么寄吧啊啊?我问你,啊?这也就罢了怎么有网的时候我的一直卡,隔壁Sakura那么快这合理吗?最后他妈的......