K8S入门学习笔记第五天,pod资源限制,nodeSelector打标签

创建一个一个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: {}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值