【k8s】【视频教程70P】(三. K8s资源清单yaml文件讲解)
k8s资源,资源清单,常用字段说明,容器生命周期
k8s 【资源】简介
资源实例化叫对象 集群资源分类(按生效范围):
- 名称空间 < 集群级别
- 元数据型 两者不是一个标准。在两者之间。
名称空间级别:
只在次名称空间有效 kubeadm k8s 是kube-system 默认 -n default 在某个空间下看不到另一个空间的资源。
1. 工作负载型资源
pod、ReplicaSet(通过标签管理pod创建)、Deployment、StatefulSet(有状态服务)、DaemonSet(运行pod主键)、Job(批处理)、CronJob
2. 服务发现及负载均衡资源
SLB,Service,Ingress
3. 配置与存储资源
Volume(存储卷),CSI(容器存储接口,可以扩展第三方存储卷)
4. 特殊类型的存储卷
ConfigMap(当配置中心用),Secret(sfd),DownloadAPI(把外部环境的信息输出给容器)
集群级别:
在集群范围内有效 role 不管在哪个名字空间下,只要是这个集群,全集群可见。
NameSpace,Node,Role,ClusterRole,RoleBingding ,ClusterRoleBinding
元数据级别:
通过指标进行操作 HPA(通过cpu使用率来扩展) PodTemplate,LimitRange
【资源清单】
yaml创建符合期望的pod,这个yaml叫资源清单
yaml的格式:
- 不允许使用Tab,只允许使用空格
- 缩进的空格数不重要,只要相同层级的左侧对齐即可。
- #表示注释
yaml支持的数据结构
- 对象
- 数组
- 纯量:单个不可再分的值
对象:
name: shirx
age: 19
数组:
aniaml
- Cat
- dog
animal: [cat,dog]
复合类型:
language:
- Ruby
- perl
- python
websites:
Yaml: yaml.org
Ruby: ruby-lang.org
纯量:
时间日期,数值
number: 12.30
isSet : true
parent: ~ # null
iso8601:2001-12-14t21:59
e: !!str 123 #强制转换成字符串
str: 这是字符串
str: '这是 字符串'
str: '这是 \n字符串' #不转义
str: "这是 \n字符串" #转义成换行
// 单引号中还有单引号,必须使用两个单引号转义
str: 'shirx''s dog'
// 第二行必须至少有单空格缩进.换行会被转为空格
str:字符串
可以写成
多行
// 也可以用|或> 保留换行
this: |
is
a
story
// |+ 表示保留换行符 |- 表示删除末尾换行符
str: this |-
pod必须存在的属性
pod必须存在的属性
有这些属性就能运行pod了。
pod可选的属性
imagePullPolicy : always 总是拉新镜像 command : 覆盖镜像里原来的指令 args: command的参数 workDir:跟docker的workdir一样
ports ports.name :端口名称 ports.hostPort : 主机上的端口 ports.protocol :
用到的时候就明白了。
//讲上面的具体属性的。
kubectl explain --help
// 例如
kubectl explain pod.apiVersion
kubectl explain pod.spec
kubectl explain pod.metadata
vim pod.yaml
apiVersion: v1
kind: Pod # 必须大写P
metadata:
name: myapp-pod
namespace: default
labels:
app: myapp
version: v1
spec:
containers:
- name: app
image: harbor.ccbjb.com.cn/library/myapp:v1
- name: test
image: harbor.ccbjb.com.cn/library/myapp:v1 # 可能端口被占用
kubectl -f pod.yaml
kubectl get pod
kubectl describe pod mypodName
kubectl log myaap-pod -c test
# log后接pod名字,-c指定容器名字 ,看log
https://www.bilibili.com/video/BV1ME411g7EU?p=17 17:53