2.4 认识YAML
YAML 是 JSON 的超集,支持整数、浮点数、布尔、字符串、数组和对象等数据类型。
在K8s里,YAML用来声明API对象的,那么API对象都有哪些?我们之前接触过的pod、deployment、service、node都是,当然还有好多,可以这样查看:
kubectl api-resources
2.5 API资源对象Pod
Pod⾥的所有容器都会调度在同⼀个节点上运⾏,
● Pod中的所有容器会共享同⼀⽹络,它们有⼀个唯⼀的IP,就叫PodIP;
● Pod中还有⼀个特殊的容器叫 Pause ,它会优先启动然后进⾏IP分配,⽽后
将其他容器都link到该容器上,实现⽹络共享
2.6 Pod原理和生命周期
创建nginx.yaml
执行命令创建Pod: kubectl apply -f ngx-pod.yaml
删除pod:
kubectl delete -f ngx-pod.yaml
使用命令生成yaml文件:
kubectl create job job-demo --image=busybox --dry-run=client -o yaml > job-demo.yaml
2.7 Pod资源限制
资源限制是为了确保系统稳定运⾏的⽅法,它通过对 Pod 的资源使⽤(如 CPU 和内存)进⾏约束。当⼀个程序出现异常并占⽤⼤量系统资源时,如果没有对该 Pod 进⾏资源限制,可能会导致其他 Pod 的运⾏受到影响,从⽽降低整个系统的 稳定性。
Kubernetes 通过Requests 和 Limits 字段对 Pod 的资源进⾏限制,这有助于防 ⽌单个 Pod 消耗过多资源并影响其他 Pod 的正常运⾏: Requests:定义了 Pod 启动时所需的最⼩资源量。( Pod在调度的时候 re quests ⽐较重要 ) Limits:限制 Pod 在运⾏过程中能够使⽤的最⼤资源量。( Pod在运⾏时 limits ⽐较重要 )如果 Pod 使⽤的资源超过了这个限制,系统可能会终⽌ 其运⾏中的容器,尤其是在资源紧张的情况下
spec.containers[].resources.request.cpu
spec.containers[].resources.request.memory
spec.containers[].resources.limits.cpu
spec.containers[].resources.limits.memory
1、创建具有⼀个容器的 Pod。限制资源: