kubernetes的组件scheduler可以根据yaml文件中的描述信息,将pod调度到满足要求的node节点中去。
下面以一个示例进行说明:
apiVersion: v1
kind: Pod
metadata:
name: frontend
spec:
containers:
- name: db
images: mysql
env:
- name: MYSQL_ROOT_PASSWORD
resources:
requests: # 满足要求才调度
memory: "64Mi"
cpu: "250m" # 1000m 等于1核,250m就等于0.25核
limits: # Pod使用的资源最大限制
memory: "128Mi"
cpu: "500m"
Pod和Container的资源请求和限制, 从下面的描述也可以看出来yaml文件的内部是如何组织的
spec.containers[].resources.limits.cpu
spec.containers[].resources.limits.memory
spec.containers[].resources.requests.cpu
spec.containers[].resources.requests.memory
apiVersion: v1
kind: Pod
metadata:
name: dns-test
spec:
containers:
- name: busybox
image: busybox:1.28.4
args:
- /bin/sh
- -c
- sleep 36000
restartPolicy: Never
# Always: 当容器终止退出后,总是重启容器,默认策略
# OnFailure: 当容器异常退出(退出状态码非0)时,才重启容器
# Never: 当容器终止退出,从不重启容器