kubernetes笔记-自定义Node的扩展资源

2019-03-28  本文已影响0人  潘猛_9f76

在本地开启api代理

#kube-proxy

使用curl的方式PATCH Node kube-node1的资源项

curl --header "Content-Type: application/json-patch+json" \

--request PATCH \

--data '[{"op": "add", "path": "/status/capacity/panmeng.com~1diskcount", "value": "4"}]' \

http://localhost:8001/api/v1/nodes/kube-node1/status

使用curl的方式PATCH Node kube-node2的资源项

curl --header "Content-Type: application/json-patch+json" \

--request PATCH \

--data '[{"op": "add", "path": "/status/capacity/panmeng.com~1diskcount", "value": "4"}]' \

http://localhost:8001/api/v1/nodes/kube-node2/status

#kubectl descirbe node kube-node1

添加的扩展资源可以在Node的Allocatable中看到

新建yaml配置extended-resource-pod.yaml

apiVersion: v1

kind: Pod

metadata:

  name: extended-resource-demo

spec:

  containers:

  - name: extended-resource-demo-ctr

    image: nginx

    resources:

      requests:

        panmeng.com/diskcount: 3

      limits:

        panmeng.com/diskcount: 3

应用yaml新建pod,查看pod状态

#kubectl describe  pod extended-resource-demo 

查看各个node上的资源分配情况

#kubectl describe node kube-node1

#kubectl describe node kube-node2

可以看到由于pod调度到了kube-node2上,所以kube-node2已经分配了panmeng.com/discount 3, 如果在新建一个pod extended-resource-demo2,同样请求资源为3,则必然会调度到kube-node1上

再次新建一个pod extended-resource-demo3,同样请求资源为3,则会因为资源不足而无法创建。

#kubectl get pods

kube-node1有一个多余的example.com/dongle的资源项

可以使用类似的方法删除多余的扩展资源项

curl --header "Content-Type: application/json-patch+json" \

--request PATCH \

--data '[{"op": "remove", "path": "/status/capacity/example.com~1dongle"}]' \

http://localhost:8001/api/v1/nodes/kube-node1/status

上一篇下一篇

猜你喜欢

热点阅读