W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
FEATURE STATE: Kubernetes v1.24 [stable]
本文介紹如何為容器指定擴展資源。
你必須擁有一個 Kubernetes 的集群,同時你的 Kubernetes 集群必須帶有 kubectl 命令行工具。 建議在至少有兩個節(jié)點的集群上運行本教程,且這些節(jié)點不作為控制平面主機。 如果你還沒有集群,你可以通過 Minikube 構(gòu)建一個你自己的集群,或者你可以使用下面任意一個 Kubernetes 工具構(gòu)建:
要檢查版本,請輸入 ?kubectl version
?。
要請求擴展資源,需要在你的容器清單中包括 ?resources:requests
? 字段。 擴展資源可以使用任何完全限定名稱,只是不能使用 ?*.kubernetes.io/
?。 有效的擴展資源名的格式為 ?example.com/foo
?,其中 ?example.com
? 應被替換為 你的組織的域名,而 ?foo
?則是描述性的資源名稱。
下面是包含一個容器的 Pod 配置文件:
apiVersion: v1
kind: Pod
metadata:
name: extended-resource-demo
spec:
containers:
- name: extended-resource-demo-ctr
image: nginx
resources:
requests:
example.com/dongle: 3
limits:
example.com/dongle: 3
在配置文件中,你可以看到容器請求了 3 個 dongles。
創(chuàng)建 Pod:
kubectl apply -f https://k8s.io/examples/pods/resource/extended-resource-pod.yaml
檢查 Pod 是否運行正常:
kubectl get pod extended-resource-demo
描述 Pod:
kubectl describe pod extended-resource-demo
輸出結(jié)果顯示 dongle 請求如下:
Limits:
example.com/dongle: 3
Requests:
example.com/dongle: 3
下面是包含一個容器的 Pod 配置文件,容器請求了 2 個 dongles。
apiVersion: v1
kind: Pod
metadata:
name: extended-resource-demo-2
spec:
containers:
- name: extended-resource-demo-2-ctr
image: nginx
resources:
requests:
example.com/dongle: 2
limits:
example.com/dongle: 2
Kubernetes 將不能滿足 2 個 dongles 的請求,因為第一個 Pod 已經(jīng)使用了 4 個可用 dongles 中的 3 個。
嘗試創(chuàng)建 Pod:
kubectl apply -f https://k8s.io/examples/pods/resource/extended-resource-pod-2.yaml
描述 Pod:
kubectl describe pod extended-resource-demo-2
輸出結(jié)果表明 Pod 不能被調(diào)度,因為沒有一個節(jié)點上存在兩個可用的 dongles。
Conditions:
Type Status
PodScheduled False
...
Events:
...
... Warning FailedScheduling pod (extended-resource-demo-2) failed to fit in any node
fit failure summary on nodes : Insufficient example.com/dongle (1)
查看 Pod 的狀態(tài):
kubectl get pod extended-resource-demo-2
輸出結(jié)果表明 Pod 雖然被創(chuàng)建了,但沒有被調(diào)度到節(jié)點上正常運行。Pod 的狀態(tài)為 Pending:
NAME READY STATUS RESTARTS AGE
extended-resource-demo-2 0/1 Pending 0 6m
刪除本練習中創(chuàng)建的 Pod:
kubectl delete pod extended-resource-demo
kubectl delete pod extended-resource-demo-2
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: