K8s Taint污點(diǎn)與Toleration容忍詳解
提示:kubernetes官網(wǎng)Taint與Toleration污點(diǎn)和容忍文檔說明 https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
Taint與Toleration污點(diǎn)和容忍是一種設(shè)計(jì)理念,Taint在K8s集群上任意節(jié)點(diǎn)打上污點(diǎn),讓不能容忍這個(gè)污點(diǎn)的Pod不能部署在打了污點(diǎn)的K8s集群節(jié)點(diǎn)上。
Toleration是讓Pod容忍節(jié)點(diǎn)能部署到具有污點(diǎn)的K8s集群節(jié)點(diǎn)上,可以讓一些需要特殊配置的Pod能夠部署到具有污點(diǎn)的K8s集群節(jié)點(diǎn)。

一、Taint參數(shù)說明(節(jié)點(diǎn)配置)
創(chuàng)建一個(gè)污點(diǎn)(一個(gè)節(jié)點(diǎn)可以創(chuàng)建多個(gè)污點(diǎn))
語法: kubectl taint nodes NODE_NAME TAINT_KEY=TAINT_VALUE:EFFECT (TAINT_KEY自定義名稱,TAINT_VALUE自定義值,EFFECT是指定的三種污點(diǎn)類型NoSchedule、NoExecute、PreferNoSchedule)
kubectl taint k8s-master01 ssd=true:PreferNoSchedule kubectl taint k8s-master01 k8s-master02 k8s-master03 ssd=true:PreferNoSchedule ### Taint參數(shù)說明 NoSchedule # 禁止調(diào)度到該節(jié)點(diǎn),已經(jīng)在該節(jié)點(diǎn)上的Pod不受影響 NoExecute # 禁止調(diào)度到該節(jié)點(diǎn),已經(jīng)部署在該節(jié)點(diǎn)上的Pod,如果不符合這個(gè)污點(diǎn),Pod立刻會(huì)被該節(jié)點(diǎn)驅(qū)逐出去或過一段時(shí)間以后再被驅(qū)逐出去 PreferNoSchedule # 盡量避免將Pod調(diào)度到指定的節(jié)點(diǎn)上,如果沒有更合適的節(jié)點(diǎn),可以部署到該節(jié)點(diǎn)
二、Toleration參數(shù)說明(Pod配置)
1、方式一:完全匹配
tolerations: - key: "TAINT_KEY" operator: "Equal" value: "TAINT_VALUE" effect: "NoSchedule"
2、方式二:不完全匹配
tolerations: - key: "TAINT_KEY" operator: "Exists" effect: "NoSchedule" # 或者 tolerations: - key: "TAINT_KEY" operator: "Equal" value: "TAINT_VALUE"
3、方式三:大范圍匹配(不推薦key配置成K8s集群的內(nèi)置Taint污點(diǎn))
tolerations: - key: "TAINT_KEY" operator: "Exists" # 或者 tolerations: - effect: "NoSchedule" operator: "Exists"
4、方式四:匹配所有(不推薦)
tolerations: - operator: "Exists"
5、方式五:Toleration配置了NoExectue類型并且設(shè)置了tolerationSeconds參數(shù)代表Pod在規(guī)定時(shí)間內(nèi)自動(dòng)退出具有該污點(diǎn)的節(jié)點(diǎn)
- 應(yīng)用場景一:k8s集群如果某節(jié)點(diǎn)出現(xiàn)故障,Pod默認(rèn)是300秒后退出該節(jié)點(diǎn),可以利用tolerationSeconds參數(shù)讓Pod快速退出故障節(jié)點(diǎn)
- 應(yīng)用場景二:k8s集群如果出現(xiàn)網(wǎng)絡(luò)抖動(dòng)比較嚴(yán)重,可以延長容忍時(shí)長,默認(rèn)300秒
tolerations: - key: "TAINT_KEY" operator: "Equal" value: "TAINT_VALUE" effect: "NoExectue" tolerationSeconds: 3600
三、Taint 常用命令
### 創(chuàng)建Taint污點(diǎn),ssd=true自定義 kubectl taint nodes k8s-node01 ssd=true:NoExecute ### 查看節(jié)點(diǎn)Taint污點(diǎn) kubectl describe node k8s-node01 | grep -A 3 Taints kubectl get nodes -o=custom-columns=NAME:.metadata.name,TAINTS:.spec.taints ### 基于key刪除節(jié)點(diǎn)污點(diǎn) kubectl taint nodes k8s-node01 ssd- ### 基于key + Effect刪除節(jié)點(diǎn)污點(diǎn) kubectl taint nodes k8s-node01 ssd:NoExecute- ### 基于key + value + Effect刪除節(jié)點(diǎn)污點(diǎn) kubectl taint nodes k8s-node01 ssd=true:NoExecute- ### 修改節(jié)點(diǎn)污點(diǎn)(只能修改value值) kubectl taint nodes k8s-node01 ssd=false:NoExecute --overwrite
四、Taint與Toleration案例
1、節(jié)點(diǎn)設(shè)置Taint污點(diǎn)NoSchedule類型(已部署在該節(jié)點(diǎn)上的Pod不會(huì)被驅(qū)逐)
### 查看k8s-node01節(jié)點(diǎn)已運(yùn)行的Pod
kubectl get pods -A -owide | grep k8s-node01
### 在k8s-node01節(jié)點(diǎn)打上一個(gè)類型NoSchedule的污點(diǎn)
kubectl taint nodes k8s-node01 system=node:NoSchedule
### 查看k8s-node01和k8s-node02節(jié)點(diǎn)污點(diǎn)
kubectl describe node k8s-node01 k8s-node02 | grep -A 3 Taints
kubectl get nodes -o=custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
### 過300秒后再查看k8s-node01節(jié)點(diǎn)已運(yùn)行的Pod是否會(huì)被驅(qū)逐,NoSchedule參數(shù)默認(rèn)不驅(qū)逐已部署在該節(jié)點(diǎn)的Pod
kubectl get pods -A -owide | grep k8s-node01
### 創(chuàng)建Deployment(設(shè)置toleration容忍完全匹配taint污點(diǎn)健值對)
mkdir -p /data/yaml/taint
cat > /data/yaml/taint/nginx-deploy-noschedule.yaml << 'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx-deploy
name: nginx-deploy
namespace: default
spec:
replicas: 6
selector:
matchLabels:
app: nginx-pod
template:
metadata:
labels:
app: nginx-pod
spec:
containers:
- image: registry.cn-shenzhen.aliyuncs.com/dockerghost/nginx:1.26
name: nginx
tolerations:
- key: "system"
operator: "Equal"
value: "node"
effect: "NoSchedule"
EOF
kubectl create -f /data/yaml/taint/nginx-deploy-noschedule.yaml
### 查看此時(shí)Pod節(jié)點(diǎn)可以部署到k8s-node01節(jié)點(diǎn)上
kubectl get pods -n default -owide
### 刪除污點(diǎn)
kubectl taint nodes k8s-node01 system=node:NoSchedule-
kubectl get nodes -o=custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
2、節(jié)點(diǎn)設(shè)置Taint污點(diǎn)NoExecute類型(此時(shí)會(huì)驅(qū)逐沒有容忍該污點(diǎn)的Pod)
提示:如果calico-node沒有被驅(qū)逐出去,說明calico-node的Pod設(shè)置了tolerations容忍了類型NoExecute的污點(diǎn),可以通過kubectl get pods calico-node-rzj4b -n kube-system -oyaml | egrep "effect|operator"查看calico-node容器是否設(shè)置了tolerations參數(shù)容忍
### 查看k8s-node02節(jié)點(diǎn)已運(yùn)行的Pod
kubectl get pods -A -owide | grep k8s-node02
### 在 k8s-node02節(jié)點(diǎn)打上一個(gè)類型的NoExecute污點(diǎn)
kubectl taint nodes k8s-node02 disk=ssd:NoExecute
### 查看k8s-node02節(jié)點(diǎn)污點(diǎn)
kubectl describe node k8s-node02 | grep -A 3 Taints
kubectl get nodes -o=custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
### 過300秒后再查看 k8s-node02節(jié)點(diǎn)已運(yùn)行的Pod是否被驅(qū)逐出去
kubectl get pods -A -owide | grep k8s-node02
### 創(chuàng)建Deployment(設(shè)置toleration容忍匹配所有taint污點(diǎn)NoExecute類型)
mkdir -p /data/yaml/taint
cat > /data/yaml/taint/nginx-deploy-noexecute.yaml << 'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx-deploy
name: nginx-deploy
namespace: default
spec:
replicas: 6
selector:
matchLabels:
app: nginx-pod
template:
metadata:
labels:
app: nginx-pod
spec:
containers:
- image: registry.cn-shenzhen.aliyuncs.com/dockerghost/nginx:1.26
name: nginx
tolerations:
- effect: "NoExecute"
operator: "Exists"
EOF
kubectl create -f /data/yaml/taint/nginx-deploy-noexecute.yaml
### 查看此時(shí)Pod節(jié)點(diǎn)可以部署到k8s-node02節(jié)點(diǎn)上
kubectl get pods -n default -owide
### 刪除節(jié)點(diǎn)污點(diǎn)
kubectl taint nodes k8s-node02 disk=ssd:NoExecute-
kubectl get nodes -o=custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
3、節(jié)點(diǎn)設(shè)置Taint污點(diǎn)NoSchedule類型并打標(biāo),Pod同時(shí)設(shè)置nodeSelector參數(shù)與tolerations參數(shù)
注意:如果Pod同時(shí)配置nodeSelector和tolerations參數(shù),nodeSelector參數(shù)優(yōu)先級大于tolerations參數(shù);如果tolerations容忍完全不匹配taint污點(diǎn)健值對,但又設(shè)置了nodeSelector參數(shù),此時(shí)Pod會(huì)因參數(shù)沖突導(dǎo)致Pod無法部署在nodeSelector參數(shù)指定的節(jié)點(diǎn)上
### 在k8s-node01和k8s-node02節(jié)點(diǎn)打上一個(gè)類型NoSchedule污點(diǎn)
kubectl taint nodes k8s-node01 k8s-node02 ssd=true:NoSchedule
### 查看k8s-node01和k8s-node02節(jié)點(diǎn)污點(diǎn)
kubectl describe node k8s-node01 k8s-node02 | grep -A 3 Taints
kubectl get nodes -o=custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
### 在k8s-node01、k8s-node02、k8s-node03節(jié)點(diǎn)打上一個(gè)標(biāo)簽(disktype=ssd自定義)
kubectl label node k8s-node01 k8s-node02 k8s-node03 disktype=ssd
### 查看k8s集群節(jié)點(diǎn)標(biāo)簽
kubectl get nodes --show-labels | grep disktype=ssd
kubectl get nodes --show-labels -l disktype=ssd
### 創(chuàng)建Deployment(Pod配置nodeSelector參數(shù)和tolerations參數(shù),使tolerations容忍完全匹配taint污點(diǎn)健值對)
mkdir -p /data/yaml/taint
cat > /data/yaml/taint/nginx-deploy-podnoschedule.yaml << 'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx-deploy
name: nginx-deploy
spec:
replicas: 6
selector:
matchLabels:
app: nginx-pod
template:
metadata:
labels:
app: nginx-pod
spec:
containers:
- image: registry.cn-shenzhen.aliyuncs.com/dockerghost/nginx:1.26
name: nginx
nodeSelector:
disktype: "ssd"
tolerations:
- key: "ssd"
operator: "Equal"
value: "true"
effect: "NoSchedule"
EOF
kubectl create -f /data/yaml/taint/nginx-deploy-podnoschedule.yaml
### 查看此時(shí)Pod節(jié)點(diǎn)可以部署到k8s-node01 k8s-node02、k8s-node03節(jié)點(diǎn)上
kubectl get pods -n default -owide
### 刪除節(jié)點(diǎn)污點(diǎn)
kubectl taint nodes k8s-node01 k8s-node02 ssd=true:NoSchedule-
kubectl get nodes -o=custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
### 刪除節(jié)點(diǎn)標(biāo)簽
kubectl label nodes k8s-node01 k8s-node02 k8s-node03 disktype-
kubectl get nodes --show-labels -l disktype=ssd
4、節(jié)點(diǎn)設(shè)置NoExecute污點(diǎn)并打標(biāo),Pod同時(shí)設(shè)置nodeSelector參數(shù)與tolerations參數(shù)
注意:如果Pod同時(shí)配置nodeSelector和tolerations參數(shù),nodeSelector參數(shù)優(yōu)先級大于tolerations參數(shù);如果tolerations容忍完全不匹配taint污點(diǎn)健值對,但又設(shè)置了nodeSelector參數(shù),此時(shí)Pod會(huì)因參數(shù)沖突導(dǎo)致Pod無法部署在nodeSelector參數(shù)指定的節(jié)點(diǎn)上
### 在k8s-node01和k8s-node02節(jié)點(diǎn)打上一個(gè)類型NoExecute污點(diǎn)
kubectl taint nodes k8s-node01 k8s-node02 ssd=true:NoExecute
### 查看k8s-node01和k8s-node02節(jié)點(diǎn)污點(diǎn)
kubectl describe node k8s-node01 k8s-node02 | grep -A 3 Taints
kubectl get nodes -o=custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
### 在k8s-node01、k8s-node02、k8s-node03節(jié)點(diǎn)打上一個(gè)標(biāo)簽(disktype=ssd自定義)
kubectl label node k8s-node01 k8s-node02 k8s-node03 disktype=ssd
### 查看k8s集群節(jié)點(diǎn)標(biāo)簽
kubectl get nodes --show-labels | grep disktype=ssd
kubectl get nodes --show-labels -l disktype=ssd
### 創(chuàng)建Deployment的yaml文件,配置nodeSelector參數(shù)和tolerations參數(shù)
cat > /data/yaml/nginx-deploy.yaml << 'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx-deploy
name: nginx-deploy
spec:
replicas: 6
selector:
matchLabels:
app: nginx-deploy
template:
metadata:
labels:
app: nginx-deploy
spec:
containers:
- image: registry.cn-shenzhen.aliyuncs.com/dockerghost/nginx:1.26
name: nginx
nodeSelector:
disktype: "ssd"
tolerations:
- key: "ssd"
operator: "Equal"
value: "true"
effect: "NoExecute"
EOF
### 創(chuàng)建Deployment(Pod配置nodeSelector參數(shù)和tolerations參數(shù),使tolerations容忍完全匹配taint污點(diǎn)健值對)
mkdir -p /data/yaml/taint
cat > /data/yaml/taint/nginx-deploy-podnoexecute.yaml << 'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx-deploy
name: nginx-deploy
spec:
replicas: 6
selector:
matchLabels:
app: nginx-pod
template:
metadata:
labels:
app: nginx-pod
spec:
containers:
- image: registry.cn-shenzhen.aliyuncs.com/dockerghost/nginx:1.26
name: nginx
nodeSelector:
disktype: "ssd"
tolerations:
- key: "ssd"
operator: "Equal"
value: "true"
effect: "NoExecute"
EOF
kubectl create -f /data/yaml/taint/nginx-deploy-podnoexecute.yaml
### 查看此時(shí)Pod節(jié)點(diǎn)可以部署到k8s-node01 k8s-node02、k8s-node03節(jié)點(diǎn)上
kubectl get pods -n default -owide
### 刪除節(jié)點(diǎn)污點(diǎn)
kubectl taint nodes k8s-node01 k8s-node02 ssd=true:NoSchedule-
kubectl get nodes -o=custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
### 刪除節(jié)點(diǎn)標(biāo)簽
kubectl label nodes k8s-node01 k8s-node02 k8s-node03 disktype-
kubectl get nodes --show-labels -l disktype=ssd
五、K8s集群內(nèi)置Taint和Pod默認(rèn)Ttoleration策略
1、k8s集群內(nèi)置Taint污點(diǎn)
node.kubernetes.io/not-ready # 節(jié)點(diǎn)未準(zhǔn)備好,相當(dāng)于節(jié)點(diǎn)狀態(tài)Ready的值為False node.kubernetes.io/unreachable # Node Controller訪問不到節(jié)點(diǎn),相當(dāng)于節(jié)點(diǎn)狀態(tài)Ready值變?yōu)閁nknown值 node.kubernetes.io/out-of-disk # 節(jié)點(diǎn)磁盤耗盡 node.kubernetes.io/memory-pressure # 節(jié)點(diǎn)存在內(nèi)存壓力 node.kubernetes.io/disk-pressure # 節(jié)點(diǎn)存在薇盤壓力 node.kubernetes.io/network-unavailable # 節(jié)點(diǎn)網(wǎng)終不可達(dá) node.kubernetes.io/unschedulable # 節(jié)點(diǎn)不可調(diào)度 node.cloudprovider.kubernetes.io/uninitialized # 如果Kubelet啟動(dòng)時(shí)指定了一個(gè)外部的cloudprovider,它將給當(dāng)前節(jié)點(diǎn)添加一個(gè)Taint將其標(biāo)記為不可用。在coud-controller-manager的一個(gè)controller初始化這個(gè)節(jié)點(diǎn)后,Kubelet將刪除這個(gè)Taint
2、創(chuàng)建Pod默認(rèn)的Ttoleration容忍策略
### 創(chuàng)建Deployment
kubectl create deploy nginx-deploy --image=registry.cn-shenzhen.aliyuncs.com/dockerghost/nginx:1.26 -n default
### 查看Deployment和Pod
kubectl get deploy -n default
kubectl get pods -n default
### 查看Pod默認(rèn)的Toleration容忍策略
kubectl get pods nginx-deploy-6988f8548f-swkfv -n default -oyaml
..............................
tolerations:
- effect: NoExecute
key: node.kubernetes.io/not-ready # 節(jié)點(diǎn)未準(zhǔn)備好,相當(dāng)于節(jié)點(diǎn)狀態(tài)Ready的值為False
operator: Exists
tolerationSeconds: 300 # 默認(rèn)5分鐘后強(qiáng)制驅(qū)逐已存在的Pod
- effect: NoExecute
key: node.kubernetes.io/unreachable # Node Controller訪問不到節(jié)點(diǎn),相當(dāng)于節(jié)點(diǎn)狀態(tài)Ready值變?yōu)閁nknown值
operator: Exists
tolerationSeconds: 300 # 默認(rèn)5分鐘后強(qiáng)制驅(qū)逐已存在的Pod
..............................
六、模擬K8s集群節(jié)點(diǎn)宕機(jī)快速遷移Pod
### 節(jié)點(diǎn)宕機(jī)由狀態(tài)Ready值變?yōu)閁nknown(False)值中間是由kube-controller-manager服務(wù)--node-monitor-grace-period參數(shù)設(shè)置檢查時(shí)長
[root@k8s-master01 ~]# cat /usr/lib/systemd/system/kube-controller-manager.service | grep "node-monitor-grace-period"
--node-monitor-grace-period=40s \
### 在k8s-node01和k8s-node02節(jié)點(diǎn)打上一個(gè)類型NoExecute污點(diǎn)和一個(gè)標(biāo)簽
kubectl taint nodes k8s-node01 k8s-node02 ssd=true:NoExecute
kubectl label nodes k8s-node01 k8s-node02 disktype=ssd
### 查看k8s-node01和k8s-node02節(jié)點(diǎn)污點(diǎn)和標(biāo)簽
kubectl get nodes -o=custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
kubectl get nodes --show-labels -l disktype=ssd
### 創(chuàng)建Deployment(Nginx容器配置當(dāng)k8s-node02節(jié)點(diǎn)宕機(jī)toleration容忍10秒后自動(dòng)遷移到別的節(jié)點(diǎn))
mkdir -p /data/yaml/taint
cat > /data/yaml/taint/nginx-deploy.yaml << 'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx-deploy
name: nginx-deploy
spec:
replicas: 1
selector:
matchLabels:
app: nginx-pod
template:
metadata:
labels:
app: nginx-pod
spec:
containers:
- image: registry.cn-shenzhen.aliyuncs.com/dockerghost/nginx:1.26
name: nginx
nodeSelector:
disktype: "ssd"
tolerations:
- key: "ssd"
operator: "Equal"
value: "true"
effect: "NoExecute"
- effect: NoExecute
key: node.kubernetes.io/not-ready
operator: Exists
tolerationSeconds: 10
- effect: NoExecute
key: node.kubernetes.io/unreachable
operator: Exists
tolerationSeconds: 10
EOF
kubectl create -f /data/yaml/taint/nginx-deploy.yaml
kubectl get pods -owide -n default
### 創(chuàng)建Deployment(redis容器配置toleration容忍,但使用內(nèi)置的容忍時(shí)間,默認(rèn)300秒)
cat > /data/yaml/taint/redis-deploy.yaml << 'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: redis-deploy
name: redis-deploy
spec:
replicas: 1
selector:
matchLabels:
app: redis-pod
template:
metadata:
labels:
app: redis-pod
spec:
containers:
- image: registry.cn-shenzhen.aliyuncs.com/dockerghost/redis:latest
name: redis
nodeSelector:
disktype: "ssd"
tolerations:
- key: "ssd"
operator: "Equal"
value: "true"
effect: "NoExecute"
EOF
kubectl create -f /data/yaml/taint/redis-deploy.yaml
kubectl get pods -owide -n default
### 此時(shí)nginx容器和redis容器正好都部署在k8s-node02節(jié)點(diǎn)上
[root@k8s-master01 ~]# kubectl get pods -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-deploy-67745bdcf8-jfsst 1/1 Running 0 2m31s 172.30.58.244 k8s-node02 <none> <none>
redis-deploy-6d549cd6bd-xdb5x 1/1 Running 0 50s 172.30.58.245 k8s-node02 <none> <none>
### 登錄k8s-node02節(jié)點(diǎn)關(guān)機(jī)模擬異常宕機(jī)
init 0
### 登錄master管理節(jié)點(diǎn)查看節(jié)點(diǎn)狀態(tài),此時(shí)k8s-node02節(jié)點(diǎn)狀態(tài)變成了NotReady
[root@k8s-master01 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master01 Ready <none> 14d v1.28.15
k8s-master02 Ready <none> 14d v1.28.15
k8s-master03 Ready <none> 14d v1.28.15
k8s-node01 Ready <none> 14d v1.28.15
k8s-node02 NotReady <none> 14d v1.28.15
### 登錄master管理節(jié)點(diǎn)查看Pod狀態(tài),因?yàn)閞edis容器比nginx容器容忍時(shí)長,所以nginx容器遷移到k8s-node02節(jié)點(diǎn),而redis容器還在等待容忍時(shí)長
[root@k8s-master01 ~]# kubectl get pods -owide -n default
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-deploy-67745bdcf8-jfsst 1/1 Terminating 0 4m20s 172.30.58.244 k8s-node02 <none> <none>
nginx-deploy-67745bdcf8-np7hl 1/1 Running 0 19s 172.30.85.203 k8s-node01 <none> <none>
redis-deploy-6d549cd6bd-xdb5x 1/1 Running 0 2m39s 172.30.58.245 k8s-node02 <none> <none>
### 刪除節(jié)點(diǎn)污點(diǎn)
kubectl taint nodes k8s-node01 k8s-node02 ssd=true:NoExecute-
kubectl get nodes -o=custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
### 刪除節(jié)點(diǎn)標(biāo)簽
kubectl label nodes k8s-node01 k8s-node02 disktype-
kubectl get nodes --show-labels -l disktype=ssd
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
k8s編排之StatefulSet知識(shí)點(diǎn)詳解二
這篇文章主要為大家介紹了k8s編排之StatefulSet知識(shí)點(diǎn)的部分詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
Kubernetes Event Exporter和Prometheus的K8s事件告警詳解
本文介紹了通過KubernetesEventExporter將Kubernetes事件轉(zhuǎn)換為Prometheus指標(biāo),并結(jié)合Prometheus告警規(guī)則和Alertmanager進(jìn)行告警通知的方案,該方案通過監(jiān)聽Kubernetes API、抓取指標(biāo)、評估告警規(guī)則并發(fā)送通知,建立了高效可靠的事件驅(qū)動(dòng)監(jiān)控體系2026-02-02
Rancher通過界面管理K8s平臺(tái)的圖文步驟詳解
這篇文章主要為大家介紹了Rancher通過界面管理K8s平臺(tái)通過詳細(xì)的圖文進(jìn)行步驟講解,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
Rainbond網(wǎng)絡(luò)治理插件ServiceMesh官方文檔說明
這篇文章主要為大家介紹了Rainbond網(wǎng)絡(luò)治理插件ServiceMesh官方文檔說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
Rainbond云原生部署SpringCloud應(yīng)用架構(gòu)實(shí)踐
這篇文章主要為大家介紹了Rainbond云原生部署SpringCloud應(yīng)用架構(gòu)實(shí)踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
安裝ingress-nginx遇到的一些坑實(shí)戰(zhàn)記錄
ingress是kubernetes集群對外暴露服務(wù)的一種方式,下面這篇文章主要給大家介紹了關(guān)于安裝ingress-nginx遇到的一些坑,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09

