K8S入门学习笔记第五天,pod资源限制,nodeSelector打标签
创建一个一个pod流程kubernetes基于list-watch机制的控制器架构,实现组件间交互的解耦。kubectlrun ----->apiserver----->etcd ----->scheduler1.kubectl发起一个创建pod请求2.apiserver收到创建pod请求,将请求的配置写道etcd3.sheduler通过list/watch获取到pod配置,根据
·
创建一个一个pod流程
kubernetes基于list-watch机制的控制器架构,实现组件间交互的解耦。
kubectl run ----->apiserver ----->etcd ----->scheduler
1.kubectl发起一个创建pod请求
2.apiserver收到创建pod请求,将请求的配置写道etcd
3.sheduler通过list/watch获取到pod配置,根据pod配置选择一个合适的节点,然后将选择结果返回给apiserver
4.kubelet获取绑定到我节点的pod
5.kubelet 调用容器引擎api创建容器,并将结果反馈给apiserver
controller-manager和kube-proxyme没有应用上
controller-manager负责调度/发布更新/回滚
kube-proxyme是负责service服务具体实现的组件
Pod中详细调度的主要属性
资源限制
kubectl run nginx --image=nginx --dry-run -o yaml > nginx.yaml
vim nginx.yaml
apiVersion: v1
kind: Pod
metadata:
labels:
run: nginx
name: nginx
spec:
containers:
- image: nginx
name: nginx
resources:
requests: #最小限制内存和cpu
memory: "128Mi" #最小内存
cpu: "250m" #最小cpu
limits:
memory: "150Mi" #最大内存
cpu: "300m" #最大cpu,300m相当于一核cpu的百分之30
nodeSelector:用于将pod调度到匹配Label的Node上,如果没有匹配的标签会调度失败。
作用:
完全匹配节点标签
固定Pod到特定节点
给节点打标签
kubectl label nodes [node] key=value
kubectl label nodes k8s-node1 disktype=ssd
nodeSelector给相应节点打标签,让Pod部署到指定的节点上
1.打标签
kubectl label node cka-node disktype=gpu
2.查看标签
kubectl get node --show-labels | grep disktype
说明标签打印成功
3 编写pod.yaml
apiVersion: v1
kind: Pod
metadata:
labels:
run: nginx
name: zf-nginx
spec:
nodeSelector: #将pod部署到指定标签为gpu的服务器上
disktype: "gpu"
containers:
- image: nginx
name: nginx
resources: {}
更多推荐
已为社区贡献16条内容
所有评论(0)