k8s pod调度
容器资源限制:
resources.limits.cpu 最多
resources.limits.memory
容器使用的最小资源需求,作为容器调度时资源分配的依据
resources.requests.cpu
resources.requests.memory 最少
节点选择器
nodeSelector:用于将pod调度匹配label的node上,如果没有匹配标签会调度失败
作用:
约束Pod到到指定的节点运行
完全匹配节点标签
应用场景:
专用节点:根据业务线将node分组管理(根据不同的业务打上不同的标签)
匹配特殊硬件:部分node配有ssd硬盘,GPU
给node1节点打标签
[root@master ~]# kubectl label nodes node1.example.com disktype=ssd
node/node1.example.com labeled
#查看所有的节点
[root@master ~]# kubectl get nodes --show-labels
NAME STATUS ROLES AGE VERSION LABELS
master.example.com Ready control-plane,master 4d23h v1.20.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master.example.com,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=
node1.example.com Ready <none> 4d22h v1.20.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,disktype=ssd,kubernetes.io/arch=amd64,kubernetes.io/hostname=node1.example.com,kubernetes.io/os=linux #以打打上disktype=ssd(磁盘标签)
node2.example.com Ready <none> 4d22h v1.20.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node2.example.com,kubernetes.io/os=linux
#查看单独节点 (一定要是全名)
[root@master ~]# kubectl get nodes node1.example.com --show-labels
NAME STATUS ROLES AGE VERSION LABELS
node1.example.com Ready <none> 4d22h v1.20.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,disktype=ssd,kubernetes.io/arch=amd64,kubernetes.io/hostname=node1.example.com,kubernetes.io/os=linux
创建pod
[root@master manifest]# cat test1.yaml
---
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
containers:
- image: sktystwd/apache:v0.2
imagePullP