最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

K8s Taint污點(diǎn)與Toleration容忍詳解

 更新時(shí)間:2025年08月14日 15:49:41   作者:大新屋  
Kubernetes通過Taint與Toleration控制Pod調(diào)度與驅(qū)逐,Taint類型包括NoSchedule、NoExecute、PreferNoSchedule,Toleration可配置匹配規(guī)則及容忍時(shí)間,用于應(yīng)對節(jié)點(diǎn)故障、網(wǎng)絡(luò)抖動(dòng)等場景,同時(shí)需注意參數(shù)優(yōu)先級和內(nèi)置策略

提示: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強(qiáng)制刪除Terminating資源方式

    K8s強(qiáng)制刪除Terminating資源方式

    文章總結(jié):通過設(shè)置Pod等待時(shí)間為0、刪除Namespace導(dǎo)出Terminating.json、開啟調(diào)試模式、新開窗口執(zhí)行請求并修改相關(guān)文件名、端口和命名空間,實(shí)現(xiàn)了一個(gè)高效的腳本操作流程
    2026-01-01
  • k8s編排之StatefulSet知識(shí)點(diǎn)詳解二

    k8s編排之StatefulSet知識(shí)點(diǎn)詳解二

    這篇文章主要為大家介紹了k8s編排之StatefulSet知識(shí)點(diǎn)的部分詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Kubernetes Event Exporter和Prometheus的K8s事件告警詳解

    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
  • k8s容器放開鎖內(nèi)存限制問題

    k8s容器放開鎖內(nèi)存限制問題

    nccl-test容器運(yùn)行mpirun時(shí)因NCCL_BUFFSIZE過大導(dǎo)致OOM,需通過修改docker服務(wù)配置文件,將LimitMEMLOCK設(shè)為infinity并重啟docker,以解除內(nèi)存鎖定限制
    2025-09-09
  • k8s集群部署過程

    k8s集群部署過程

    本文詳細(xì)介紹了如何部署Kubernetes集群,包括安裝Docker、配置阿里云YUM軟件源、安裝kubeadm、kubelet和kubectl,以及部署Kubernetes、安裝Pod網(wǎng)絡(luò)插件和將節(jié)點(diǎn)加入集群的過程,感興趣的朋友一起看看吧
    2025-03-03
  • Rancher通過界面管理K8s平臺(tái)的圖文步驟詳解

    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官方文檔說明

    這篇文章主要為大家介紹了Rainbond網(wǎng)絡(luò)治理插件ServiceMesh官方文檔說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • kubernetes token過期生成永久過程

    kubernetes token過期生成永久過程

    本文介紹了如何生成、查看和更新JWT(JSON Web Token),包括生成帶有過期時(shí)間的token,以及如何更新token以重新加入node
    2025-12-12
  • Rainbond云原生部署SpringCloud應(yīng)用架構(gòu)實(shí)踐

    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-nginx遇到的一些坑實(shí)戰(zhàn)記錄

    ingress是kubernetes集群對外暴露服務(wù)的一種方式,下面這篇文章主要給大家介紹了關(guān)于安裝ingress-nginx遇到的一些坑,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09

最新評論

绥中县| 叙永县| 张掖市| 潞西市| 双柏县| 汝南县| 乌什县| 徐汇区| 宁乡县| 纳雍县| 四川省| 资阳市| 兴国县| 大洼县| 共和县| 汝州市| 兖州市| 永昌县| 延津县| 敦化市| 卓尼县| 杂多县| 汝州市| 拜城县| 新泰市| 吴忠市| 大姚县| 丰城市| 洛扎县| 雅江县| 内江市| 邻水| 新巴尔虎左旗| 长岭县| 大埔县| 九江市| 城固县| 普宁市| 安溪县| 佛山市| 兴化市|