kubernetes之资源调度的方式

1. 容器资源的限制

表示最多使用多少cpu和内存资源

  • resources.limits.cpu
  • resources.limits.memory
    表示最少使用的CPU和内存资源
  • resources.requests.cpu
  • resources.requests.memory
[root@master ~]# kubectl describe nodes node1.example.com  //节点的信息
省略N行
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests   Limits
  --------           --------   ------
  cpu                100m (5%)  100m (5%)  //cpu使用率
  memory             50Mi (1%)  50Mi (1%)  //内存使用情况
  ephemeral-storage  0 (0%)     0 (0%)
  hugepages-1Gi      0 (0%)     0 (0%)
  hugepages-2Mi      0 (0%)     0 (0%)


[root@master test]# cat test.yml 
apiVersion: v1
kind: Pod
metadata:
  name: test
spec:
  containers:
  - name: b1
    image: busybox
    command: ["/bin/sh","-c","sleep 9000"]
    resources:
      requests:
        memory: 100Mi
        cpu: 0.01
    env:
    - name: HN
      valueFrom:
        fieldRef:
          fieldPath: status.podIPs

[root@master test]# kubectl apply -f test.yml  //创建一个pod进行测试
pod/test created

[root@master test]# kubectl get pod -o wide  //运行再node1上
NAME   READY   STATUS    RESTARTS   AGE   IP            NODE                NOMINATED NODE   READINESS GATES
test   1/1     Running   0          57s   10.244.1.60   node1.example.com   <none>           <none>

[root@master haproxy]# kubectl describe nodes node1.example.com
  Resource           Requests    Limits
  --------           --------    ------
  cpu                110m (5%)   100m (5%)  //cpu变成了110,这是再原来的基础上增加的,原来是100,而我们设置requests为0.01就是增加十,因为默认100才能让node1运行,所以设置最少0.01就是在此基础上加10
  memory             150Mi (5%)  50Mi (1%)// 内存变为150,同理
  ephemeral-storage  0 (0%)      0 (0%)
  hugepages-1Gi      0 (0%)      0 (0%)
  hugepages-2Mi      0 (0%)      0 (0%)


[root@master test]# cat test.yml 
---
apiVersion: v1
kind: Pod
metadata:
  name: test
spec:
  containers:
  - name: b1
    image: busybox
    command: ["/bin/sh","-c","sleep 9000"]
    resources:
      requests:
        memory: 30Mi
        cpu: 0.001
      limits:
        memory: 40Mi
        cpu: 0.01
    env:
    - name: HN
      valueFrom:
        fieldRef:
          fieldPath: status.podIPs

2. nodeSelector节点选择器

nodeSelector:用于将Pod调度到匹配Label的Node上,如果没有匹配的标签会调度失败。

作用:

  • 约束Pod到特定的节点运行
  • 完全匹配节点标签
  • 应用场景:
  • 专用节点:根据业务线将Node分组管理
  • 配备特殊硬件:部分Node配有SSD硬盘、GPU
// 查看所有节点的标签
[root@master test]# kubectl get nodes --show-labels
NAME                 STATUS   ROLES                  AGE    VERSION   LABELS
master.example.com   Ready    control-plane,master   6d3h   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>                 6d2h   v1.20.0   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node1.example.com,kubernet
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值