ToB企服应用市场:ToB评测及商务社交产业平台

标题: K8S学习笔记-01 [打印本页]

作者: 海哥    时间: 2023-8-3 11:03
标题: K8S学习笔记-01
原创文档编写不易,未经许可请勿转载。文档中有疑问的可以邮件联系我。 邮箱:yinwanit@163.com
说明

记录k8s中yaml文件编写相关内容。
k8s官网文档库:https://kubernetes.io/docs/home/
kubelet 命令参考:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands
一、书写格式

k8s中yaml文件结尾需以.yml或.yaml结尾。文件放置位置不做限定。
yaml文件中每行都严格遵守层级,同层级资源缩进相同,每个层级间推荐使用两个空格进行缩进,不能使用tab键进行缩进。
yaml文件键值直接使用冒号作为分割线,冒号过后有且只有一个空格。
yaml文件采用驼峰的形式进行书写,冒号左边的第一个单词小写第二个单词开始首字母大写,冒号右边每个单词首字母大写。参考标红字体部分明显可以区分。
  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4.   creationTimestamp: null
  5.   labels:
  6.     run: pod3
  7.   name: pod3
  8. spec:
  9.   containers:
  10.   - image: busybox
  11.     imagePullPolicy: IfNotPresent
  12.     name: pod3
  13.     resources: {}
  14.   dnsPolicy: ClusterFirst
  15.   restartPolicy: Always
  16. status: {}
复制代码
二、apiVersion版本与资源组

yaml文件首行为apiVersion及标注该yaml文件使用的版本。不同资源版本中资源使用方式和配置参数存在一定的差异。
apiVersion格式为:{Group}/{Version},Group代表Kubernetes API资源组的名称,Version代表该组的API版本号。
使用 kubectl  api-versions 命令可以查看当前集群支撑的apiVersion信息。
不同apiVerson资源组中包含的kind资源不一样。确定了要使用的kind过后需要明确知道哪个一个apiVersion中包含该kind资源,在yaml中的apiVersion行键入对应的资源组及版本信息。
 k8s apiversion分为四个类别:稳定版(Stable)、Beta版(Beta)、Alpha版(Alpha)和Deprecated版(Deprecated)。
常见的均可在https://kubernetes.io/zh-cn/docs/reference/kubernetes-api/workload-resources/中查看
仅展示部分apiVersion中的资源组及版本对应的kind资源。
2.1 工作负载资源组:

2.2 Service资源组:

2.3 配置和存储资源组:

2.4 身份认证资源组:

2.5 策略资源组:

2.6 集群资源组:

三、标准模板获取 

k8s环境中为了方便管理员快速的完成资源yaml文件编写,尽快的上线应用。可以有三种方式获取到某一个kind资源的编写模板。
3.1 官网文档中获取

网址:https://kubernetes.io/zh-cn/docs/home/
在官方文档中找到对应的kind中复制出标准的yaml配置文件模板。
3.2 命令生成

参考kubectl工作使用说明:https://kubernetes.io/zh-cn/docs/reference/kubectl/kubectl/
导出一个POD的标准模板,其中--dry-run表示不创建,只是进行语句检查调试,client表示基本的格式、server表示完整的格式,一般情况下采用client生成的文件进行二次编写。
  1. # kubectl run pod01 --image=busybox --image-pull-policy=IfNotPresent --dry-run=client -o yaml  > pod01_c.yaml
  2. # kubectl run pod01 --image=busybox --image-pull-policy=IfNotPresent --dry-run=server -o yaml  > pod01_s.yaml
复制代码
Always:总是去网上拉取镜像
Never:不使用网上的镜像
IfNotPresent:优先使用本地镜像
--dry-run=server/client表示只模拟创建,用作检查语法是否错误。client输出比较简洁的文本,server表示输出比较详细的文本。
3.3 现有资源生成

利用现在已经存在的同kind类型资源导出模板
  1. # kubectl get ds/calico-node -n kube-system -o yaml  > ds01.yaml
复制代码
四、资源创建帮助

在明确了apiVersion和kind,同时有了模板文件过后就可以进行yaml文件的编写了。但对于新手来说或者一些不常用的kind,往往没法记住其使用方法,则可使用命令查看对应apiVersion下kind的配置帮助文件。
查看pod的配置参数。
  1. # kubectl explain  --api-version=v1 pod
复制代码
如果查看的资源还有下级配置则在可接着查看
  1. # kubectl explain  --api-version=v1 pod.metadata
复制代码
其中资源配置中有三种类型:string、Object、integer,同时表示为必填参数,[]表示为可选参数。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4