kubernetes(5) ——资源清单配置

1.基本概念理解

什么叫资源?
k8s中所有的内容都抽象为资源,资源实例化之后,叫做对象。

什么是资源清单?

在k8s中,一般使用yaml格式的文件来创建符合我们预期期望的pod,这样的yaml文件我们一般称为资源清单

创建资源的方法:

apiserver 仅接受JSON格式的资源定义;
yaml格式提供配置清单,apiserver 可自动将其转为JSON格式,而后再提交;

2.资源清单的格式

apiVersion: group/apiversion  # 如果没有给定group名称,那么默认为croe,可以使用kubectl api-versions 获取当前k8s版本上所有的apiVersion版本信息(每个版本可能不同)
kind:       #资源类别
metadata:  #资源元数据
   name      #名称
   namespace  #k8s自身的namespace
   lables       #标签
   annotations   #资源注解,主要目的是方便用户阅读查找
spec:期望的状态(disired state),,期望资源应该用于什么特性
status:当前状态(current state),本字段有kubernetes自身维护,用户不能去定义

配置清单主要有五个一级字段,其中status用户不能定义,由k8s自身维护

3.属性

必须属性:
kubernetes(5) ——资源清单配置_第1张图片
主要属性:
kubernetes(5) ——资源清单配置_第2张图片
kubernetes(5) ——资源清单配置_第3张图片
kubernetes(5) ——资源清单配置_第4张图片
kubernetes(5) ——资源清单配置_第5张图片

4.获取资源的apiVersion版本及资源配置的帮助

1)获取apiVersion版本信息
kubernetes(5) ——资源清单配置_第6张图片
2)获取资源的apiVersion版本信息
kubernetes(5) ——资源清单配置_第7张图片
kubernetes(5) ——资源清单配置_第8张图片
可以看的出来,不同的资源可能属于不同的apiVersion版本

由于资源清单采用yaml格式,每次缩进是两个空格,所以我们来配置yaml格式的文件自动缩进:

kubernetes(5) ——资源清单配置_第9张图片
kubernetes(5) ——资源清单配置_第10张图片
kubernetes(5) ——资源清单配置_第11张图片
kubernetes(5) ——资源清单配置_第12张图片
在容器中创建多个pod
kubernetes(5) ——资源清单配置_第13张图片
结果:
kubernetes(5) ——资源清单配置_第14张图片
这里的状态:是由于我们启用的两个镜像使用的是同一个端口,所以会有一个启用失败
查看日志:
kubernetes(5) ——资源清单配置_第15张图片
查看具体的描述
kubernetes(5) ——资源清单配置_第16张图片
kubernetes(5) ——资源清单配置_第17张图片
此时换一个镜像:
kubernetes(5) ——资源清单配置_第18张图片
这里由于busybox有交互式,但是运行时,一直没有连接
kubernetes(5) ——资源清单配置_第19张图片
在这里插入图片描述
为了解决上述的问题:
kubernetes(5) ——资源清单配置_第20张图片
kubernetes(5) ——资源清单配置_第21张图片
测试:
kubernetes(5) ——资源清单配置_第22张图片
kubernetes(5) ——资源清单配置_第23张图片
在这里插入图片描述
kubernetes(5) ——资源清单配置_第24张图片
停止容器,容器会自动重启,这是由于RS副本的影响
kubernetes(5) ——资源清单配置_第25张图片
设置镜像拉取策略(三种)
kubernetes(5) ——资源清单配置_第26张图片
本地有镜像,则不去仓库上去拉取(ifnotpresent)
kubernetes(5) ——资源清单配置_第27张图片
测试:
kubernetes(5) ——资源清单配置_第28张图片
kubernetes(5) ——资源清单配置_第29张图片
kubernetes(5) ——资源清单配置_第30张图片
kubernetes(5) ——资源清单配置_第31张图片
指定容器所在的主机监听的端口
kubernetes(5) ——资源清单配置_第32张图片
测试:
在这里插入图片描述
在这里插入图片描述
使用宿主机的网络,不使用docker网桥
kubernetes(5) ——资源清单配置_第33张图片
kubernetes(5) ——资源清单配置_第34张图片
补充:
(1)可以指定输出为yaml文件
kubernetes(5) ——资源清单配置_第35张图片
kubernetes(5) ——资源清单配置_第36张图片
(2)可以使用-it 来指定交互
kubernetes(5) ——资源清单配置_第37张图片
限制资源(内存和cpu):
查看资源
kubernetes(5) ——资源清单配置_第38张图片
kubernetes(5) ——资源清单配置_第39张图片

测试:
kubernetes(5) ——资源清单配置_第40张图片
kubernetes(5) ——资源清单配置_第41张图片
指定运行该pod的节点

kubernetes(5) ——资源清单配置_第42张图片
kubernetes(5) ——资源清单配置_第43张图片
标签:


$ kubectl get pod --show-labels		//查看标签
NAME   READY   STATUS    RESTARTS   AGE   LABELS
demo   2/2     Running   0          8s    app=demo
$ kubectl get pod -l app			//过滤包含app的标签
NAME   READY   STATUS    RESTARTS   AGE
demo   2/2     Running   0          34s
$ kubectl get pod -L app
NAME   READY   STATUS    RESTARTS   AGE   APP
demo   2/2     Running   0          39s   demo
$ kubectl label pod demo version=v1	//打标签
pod/demo labeled
$ kubectl get pod --show-labels 
NAME   READY   STATUS    RESTARTS   AGE    LABELS
demo   2/2     Running   0          4m1s   app=demo,version=v1
$ kubectl label pod demo app=nginx --overwrite		//更改标签 
pod/demo labeled
$ kubectl get pod --show-labels 
NAME   READY   STATUS    RESTARTS   AGE     LABELS
demo   2/2     Running   0          5m40s   app=nginx,version=v1

kubernetes(5) ——资源清单配置_第44张图片
kubernetes(5) ——资源清单配置_第45张图片

你可能感兴趣的:(kubernetes(5) ——资源清单配置)