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

Kubernetes之Pod的調(diào)度實現(xiàn)方式

 更新時間:2025年09月19日 10:10:40   作者:Hud.  
Kubernetes通過定向調(diào)度(NodeName/NodeSelector)、親和性調(diào)度(NodeAffinity/PodAffinity/PodAntiAffinity)及污點容忍(Taints/Toleration)實現(xiàn)Pod節(jié)點控制,分別用于強制指定節(jié)點、優(yōu)化部署位置和靈活管理節(jié)點準(zhǔn)入,滿足不同場景下的調(diào)度需求

在默認(rèn)情況下,一個pod在哪個Node節(jié)點上運行,是由Scheduler組件采用相應(yīng)的算法計算出來的,這個過程是不受人工控制的。

但是在實際的使用過程當(dāng)中,這并不能滿足需求,因為在很多情況下,我們想控制某些Pod到某些節(jié)點上,那么應(yīng)該怎么做呢?

這就要求了解Kubernetes對于Pod的調(diào)度規(guī)則,Kubernetes提供了四大類的調(diào)度方式 

  • 自動調(diào)度:運行在哪個節(jié)點上完全由Scheduler經(jīng)過一系列的計算得出
  • 定向調(diào)度:NodeName,NodeSelector
  •  親和性調(diào)度:NodeAffinity、PodAffinity、PodAntiAffinity
  • 污點(容忍)調(diào)度:Taints、Toleration

1、定向調(diào)度

定向調(diào)度,指的是利用在pod上聲明NodeName或者nodeSelector,以此將Pod調(diào)度到期望的node節(jié)點上,注意,這里的調(diào)度是強制的,這就意味著即使要調(diào)度的目標(biāo)Node不存在,也會向上面進(jìn)行調(diào)度,只不過pod運行失敗而已。

1.1 NodeName

NodeName用于強制約束將Pod調(diào)度到指定的Name的Node節(jié)點上。這種方式,其實就是直接跳過Scheduler的調(diào)度邏輯,直接寫入PodList列表。

接下來,就這個定向調(diào)度創(chuàng)建一個pod-nodename,yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-nodename
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
  nodeName: k8s-node1   # 指定調(diào)度到node1節(jié)點上去

# 創(chuàng)建Pod
[root@master ~]# vi pod-nodename.yaml
[root@master ~]# kubectl create -f pod-nodename.yaml
pod/pod-nodename created
#修改上面的文件再創(chuàng)建一個pod改到node2節(jié)點上去,看看效果
[root@master ~]# kubectl get pod -n dev -o wide
NAME            READY   STATUS    RESTARTS   AGE     IP               NODE        NOMINATED NODE   READINESS GATES
pod-nodename    1/1     Running   0          2m25s   10.244.36.91     k8s-node1   <none>           <none>
pod-nodename2   1/1     Running   0          5s      10.244.169.163   k8s-node2   <none> 

對了,這里插一句,關(guān)于Node節(jié)點的名稱,你要查看可以使用命令:

[root@master ~]# kubectl get node
NAME        STATUS   ROLES                  AGE   VERSION
k8s-node1   Ready    <none>                 12d   v1.23.5
k8s-node2   Ready    <none>                 12d   v1.23.5
master      Ready    control-plane,master   12d   v1.23.5

如果我在yaml文件中將nodeName改成了k8s-node3,會不會創(chuàng)建成功呢?來試試看:

[root@master ~]# kubectl create -f pod-nodename.yaml
pod/pod-nodename2 created
[root@master ~]# kubectl get pod -n dev
NAME            READY   STATUS    RESTARTS   AGE
pod-nodename2   0/1     Pending   0          14s

1.2 NodeSelector

NodeSelector用于將pod調(diào)度到添加了指定標(biāo)簽的node節(jié)點上,他是通過Kubernetes的label-selector機(jī)制實現(xiàn)的,也就是說在pod創(chuàng)建之前會由scheduler使用MatchNodeSelector調(diào)整策略進(jìn)行l(wèi)abel匹配,找出目標(biāo)node,然后將pod調(diào)度到目標(biāo)節(jié)點,該匹配規(guī)則是強制約束。

通過一個小案例,熟悉一下操作:

① 首先分別為node節(jié)點添加標(biāo)簽

[root@master ~]# kubectl label nodes k8s-node1 nodeenv=first
node/k8s-node1 labeled
[root@master ~]# kubectl label nodes k8s-node2 nodeenv=second
node/k8s-node2 labeled

② 創(chuàng)建一個pod-nodeselector.yaml文件,使用它來創(chuàng)建pod

apiVersion: v1
kind: Pod
metadata:
  name: pod-nodeselector
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
  nodeSelector:
    nodeenv: first   # 將pod調(diào)度到nodeenv=first的node上去

# 創(chuàng)建容器并查看是否被放在了指定的node節(jié)點上
[root@master ~]# vi pod-nodeselector.yaml
[root@master ~]# kubectl create -f pod-nodeselector.yaml
pod/pod-nodeselector created
[root@master ~]# kubectl get pod -n dev -o wide
NAME               READY   STATUS    RESTARTS   AGE   IP             NODE        NOMINATED NODE   READINESS GATES
pod-nodeselector   1/1     Running   0          19s   10.244.36.92   k8s-node1   <none>           <none>

2、親和性調(diào)度

定向調(diào)度雖然使用起來非常方便但是也有一定的問題,那就是如果沒有滿足條件的node,那么pod就不會運行,即使在集群中還有可用的node列表也不行,這也就限制了這種調(diào)度方式的可用場景。

基于這個問題,Kubernetes還提供了一種親和性調(diào)度(Affinity),他在nodeSelector的基礎(chǔ)上進(jìn)行了擴(kuò)展,可以通過配置的形式,實現(xiàn)優(yōu)先選擇滿足條件的node進(jìn)行調(diào)度,如果沒有,也可以調(diào)度到不滿足條件的節(jié)點上去,使得調(diào)度更加靈活:

Affinity主要分為三類:

  • NodeAffinity(Node親和性):以node為目標(biāo),解決pod可以調(diào)度到哪些node的問題
  • podAffinity(pod親和性):以pod為目標(biāo),解決pod可以和哪些已存在的pod部署在同一個拓?fù)溆蛑?/li>
  • podAntiAffinity(pod反親和性):以pod為目標(biāo),解決pod不能和哪些已存在的pod部署在同一個拓?fù)溆蛑械膯栴}

關(guān)于親和性(反親和性)使用場景的說明:

  • 親和性:如果兩個應(yīng)用頻繁交互,那就有必要利用親和性讓兩個應(yīng)用盡可能的靠近,這樣可以減少因網(wǎng)絡(luò)通信帶來的性能損耗
  • 反親和性:當(dāng)應(yīng)用采用多副本部署時,有必要采用反親和性讓各個應(yīng)用實例打散分布在各個node節(jié)點上,這樣可以提高服務(wù)的高可用性                                  

2.1 NodeAffinity的可選配置項

[root@master ~]# kubectl explain pod.spec.affinity.nodeAffinity
KIND:     Pod
VERSION:  v1
   # 優(yōu)先調(diào)度到滿足指定規(guī)則的node,相當(dāng)于軟限制(傾向)
   preferredDuringSchedulingIgnoredDuringExecution	<[]Object> 
    preference    #一個節(jié)點選擇器項,與相應(yīng)的權(quán)重相關(guān)聯(lián)
    matchFields    #按節(jié)點字段列出的節(jié)點選擇器要求列表
    matchExpression    #按節(jié)點標(biāo)簽列出的節(jié)點選擇器要求列表(推薦)
    key     #鍵
    value    #值
    operator    #關(guān)系符
    weight        #傾向權(quán)重,0~100之間
   #Node節(jié)點必須滿足指定的所有規(guī)則才可以,相當(dāng)于硬限制
   requiredDuringSchedulingIgnoredDuringExecution	<Object>
    nodeSelectorTerms    #節(jié)點選擇列表
    matchFields    #按節(jié)點字段列出的節(jié)點選擇器要求列表
    matchExpression    #按節(jié)點標(biāo)簽列出的節(jié)點選擇器要求列表(推薦)
    key     #鍵
    value    #值
    operator    #關(guān)系符

關(guān)系符的使用說明:

-matchExpression:
    -key: nodeenv        #匹配存在標(biāo)簽的key為nodeenv的節(jié)點
     operator: Exists
    -key: nodeenv        #匹配標(biāo)簽的key為nodeenv,且value是"xxx"或"yyy"的節(jié)點
     operator: In     
     values:["xxx","yyy"]
    -key:nodeenv         #匹配標(biāo)簽的key為nodeenv且value大于"xxx"的節(jié)點
     operator: Gt
     values: "xxx"

先來演示一下 requiredDuringSchedulingIgnoredDuringExecution,創(chuàng)建pod-nodeaffinity-required.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-nodeaffinity-required
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
  affinity:        # 親和性設(shè)置    
    nodeAffinity:     # 設(shè)置node親和性
      requiredDuringSchedulingIgnoredDuringExecution:   # 硬限制
        nodeSelectorTerms:
        - matchExpressions:   # 匹配env的值在["xxx","yyy"]中的標(biāo)簽
          - key: nodeenv
            operator: In
            values: ["xxx","yyy"]

# 創(chuàng)建容器
[root@master ~]# kubectl create -f pod-nodeaffinity-required.yaml 
pod/pod-affinity-required created
# 先看看node的標(biāo)簽
[root@master ~]# kubectl get node --show-labels
NAME        STATUS   ROLES                  AGE   VERSION   LABELS
k8s-node1   Ready    <none>                 12d   v1.23.5   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node1,kubernetes.io/os=linux,nodeenv=first
k8s-node2   Ready    <none>                 12d   v1.23.5   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node2,kubernetes.io/os=linux,nodeenv=second
master      Ready    control-plane,master   12d   v1.23.5   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=,node.kubernetes.io/exclude-from-external-load-balancers=

現(xiàn)在的節(jié)點中,node1和node2的nodeenv標(biāo)簽不存在xxx或者yyy,那么也就意味著這個pod應(yīng)該是無法運行成功的

[root@master ~]# kubectl get pod -n dev
NAME                    READY   STATUS    RESTARTS   AGE
pod-affinity-required   0/1     Pending   0          5m4s

# 使用describe看看調(diào)度失敗的原因
[root@master ~]# kubectl describe pod pod-nodeaffinity-required -n dev
Events:
  Type     Reason            Age                 From               Message
  ----     ------            ----                ----               -------
  Warning  FailedScheduling  22s (x10 over 10m)  default-scheduler  0/3 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate, 2 node(s) didn't match Pod's node affinity/selector.

現(xiàn)在顯示是失敗,試試xxx改成first重新創(chuàng)建看看

[root@master ~]# vi pod-nodeaffinity-required.yaml 
[root@master ~]# kubectl create -f pod-nodeaffinity-required.yaml 
pod/pod-nodeaffinity-required created
[root@master ~]# kubectl get pod -n dev -o wide
NAME                        READY   STATUS    RESTARTS   AGE     IP             NODE        NOMINATED NODE   READINESS GATES
pod-nodeaffinity-required   1/1     Running   0          12s     10.244.36.93   k8s-node1   <none>           <none>

下面再來看看軟限制(requiredDuringSchedulingIgnoredDuringExecution)

創(chuàng)建pod-nodeaffinity-preferred.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-nodeaffinity-preferred
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
  affinity:        # 親和性設(shè)置
    nodeAffinity:     # 設(shè)置node親和性
      preferredDuringSchedulingIgnoredDuringExecution:   # 軟限制
        - weight: 1
          preference:      # 匹配env的值在["xxx","yyy"]中的標(biāo)簽(當(dāng)前環(huán)境中沒有)
            matchExpressions:
            - key: nodeenv
              operator: In
              values: ["xxx","yyy"]
~ 

# 創(chuàng)建pod并查看
[root@master ~]# kubectl create -f pod-nodeaffinity-preferred.yaml 
pod/pod-nodeaffinity-preferred created
[root@master ~]# kubectl get pod -n dev -o wide
NAME                         READY   STATUS    RESTARTS   AGE    IP               NODE        NOMINATED NODE   READINESS GATES
pod-nodeaffinity-preferred   1/1     Running   0          119s   10.244.169.164   k8s-node2   <none>           <none>                                           

調(diào)度親和性只在調(diào)度過程中生效,調(diào)度完成后即使node的標(biāo)簽發(fā)生了改變,也不理你了。

2.2 PodAffinity的可選配置項

[root@master ~]# kubectl explain pod.spec.affinity.podAffinity
FIELDS:
  # 軟限制 
   requiredDuringSchedulingIgnoredDuringExecution	<[]Object>
    namespace        # 指定參照pod的namespace
    topologyKey      # 指定調(diào)度作用域
    labelSelector    # 標(biāo)簽選擇器
      matchExpressions:
        key    # 鍵
        values    # 值
        operator  # 關(guān)系符
        matchlabels      # 指多個matchExpressions映射的內(nèi)容
  # 軟限制
     preferredDuringSchedulingIgnoredDuringExecution	<[]Object>
        namespace        # 指定參照pod的namespace
        topologyKey      # 指定調(diào)度作用域
        labelSelector    # 標(biāo)簽選擇器
          matchExpressions:
            key    # 鍵
            values    # 值
            operator  # 關(guān)系符
            matchlabels      # 指多個matchExpressions映射的內(nèi)容
          weight     # 權(quán)重

topologyKey用于指定調(diào)度時作用域,例如:

  • 如果指定為Kubernetes.io/hostname,那就是以node節(jié)點為區(qū)分范圍
  • 如果指定為beta.kubernetes.io/os,則以node節(jié)點的操作系統(tǒng)類型來區(qū)分

1)先創(chuàng)建一個參照的pod,pod-podaffinity-target.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-podaffinity-target
  namespace: dev
  labels:        # 設(shè)置標(biāo)簽
    podenv:  target
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
  nodeName: k8s-node1   # 部署到node1上面

#創(chuàng)建并查看pod
[root@master ~]# vi pod-podaffinity-target.yaml
[root@master ~]# kubectl create -f pod-podaffinity-target.yaml 
pod/pod-podaffinity-target created
[root@master ~]# kubectl get pod -n dev
NAME                     READY   STATUS    RESTARTS   AGE
pod-podaffinity-target   1/1     Running   0          9s

 2)創(chuàng)建pod-podaffinity-required.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-nodeaffinity-preferred
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
  affinity:        # 親和性設(shè)置
    podAffinity:     # 設(shè)置pod親和性
      requiredDuringSchedulingIgnoredDuringExecution:   # 硬限制
        - labelSelector:
            matchExpressions:      # 匹配env的值在["xxx","yyy"]中的標(biāo)簽
            - key: nodeenv
              operator: In
              values: ["xxx","yyy"]
           topologyKey: kubernetes.io/hostname  # 如果找不到,調(diào)度到目標(biāo)pod同一個節(jié)點上

# 創(chuàng)建并查看
[root@master ~]# kubectl create -f pod-podaffinity-required.yaml 
pod/pod-podaffinity-required created
[root@master ~]# kubectl get pod -n dev -o wide
NAME                       READY   STATUS    RESTARTS   AGE   IP             NODE        NOMINATED NODE   READINESS GATES
pod-podaffinity-required   0/1     Pending   0          8s    <none>         <none>      <none>           <none>
pod-podaffinity-target     1/1     Running   0          14m   10.244.36.94   k8s-node1   <none>           <none>
[root@master ~]# kubectl describe pod pod-podaffinity-required -n dev
Events:
  Type     Reason            Age                 From               Message
  ----     ------            ----                ----               -------
  Warning  FailedScheduling  13s (x2 over 101s)  default-scheduler  0/3 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate, 2 node(s) didn't match pod affinity rules.

有一個節(jié)點上有污點(taint)---主節(jié)點

2.3 podAntiAffinity 反親和性案例

還是將剛才設(shè)置的target作為參照,反親和這個pod那應(yīng)該被調(diào)度到node2上

apiVersion: v1
kind: Pod
metadata:
  name: pod-podantiaffinity-required
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
  affinity:        # 親和性設(shè)置
    podAntiAffinity:     # 設(shè)置pod反親和性
      requiredDuringSchedulingIgnoredDuringExecution:   # 硬限制
        - labelSelector:
            matchExpressions:      # 匹配podenv的值在["target"]中的標(biāo)簽
            - key: podenv
              operator: In
              values: ["target"]
          topologyKey: kubernetes.io/hostname  # 如果找不到,調(diào)度到目標(biāo)pod同一個節(jié)點上

# 創(chuàng)建并查看pod
[root@master ~]# kubectl create -f pod-podantiaffinity-required.yaml 
pod/pod-podantiaffinity-required created
[root@master ~]# kubectl get pod -n dev -o wide  
NAME                           READY   STATUS    RESTARTS   AGE   IP               NODE        NOMINATED NODE   READINESS GATES
pod-podaffinity-required       1/1     Running   0          10m   10.244.36.95     k8s-node1   <none>           <none>
pod-podaffinity-target         1/1     Running   0          28m   10.244.36.94     k8s-node1   <none>           <none>
pod-podantiaffinity-required   1/1     Running   0          43s   10.244.169.165   k8s-node2   <none>           <none>

3、 污點調(diào)度--站在Node的角度

3.1 污點(Taints)

前面的調(diào)度方式都是站在pod的角度上,通過在Pod上添加屬性,來確定Pod是否需要調(diào)度到指定的Node上,其實我們也可以站在Node的角度上面,通過在Node上添加污點屬性,來決定是否允許Pod調(diào)度過來。

Node被設(shè)置上污點之后就和Pod之間存在了一種相斥的關(guān)系,進(jìn)而拒絕Pod調(diào)度進(jìn)來,設(shè)置可以將已經(jīng)調(diào)度進(jìn)來的Pod驅(qū)逐出去。

污點的格式為:key=value:effect,key和value是污點的標(biāo)簽,effect描述污點的作用,支持如下的三個選項:

  • PreferNoScheduler:Kubernetes盡量避免把Pod調(diào)度到具有該污點的Node上,除非沒有其他節(jié)點可調(diào)度
  • NoScheduler:Kubernetes將不會把Pod調(diào)度到具有該污點的Node上,但不影響當(dāng)前node上已經(jīng)存在的pod
  • NoExecute:Kubernetes將不會把Pod調(diào)度到具有該污點的Node上,同時也會講Node上已存在的pod驅(qū)離
# 設(shè)置污點
kubectl taint nodes k8s-node1 key=value:effect

# 去除污點
kubectl taint nodes k8s-node1 key:effect-

# 去除所有污點
kubectl taint nodes k8s-node1 key-

接下來,演示一下污點的效果:

  • 1、準(zhǔn)備節(jié)點node1(暫時停止node2節(jié)點)
  • 2、為node1設(shè)置一個污點:tag=qty:PreferNoSchedule;然后創(chuàng)建pod1(可以)
  • 3、修改為node1節(jié)點設(shè)置一個污點:tag=qty:NoSchedule;然后創(chuàng)建pod2(pod1正常 pod2失敗)
  • 4、修改為node1節(jié)點設(shè)置一個污點:tag=qty:noExecute;創(chuàng)建pod3,全失敗
[root@master ~]# kubectl get node
NAME        STATUS     ROLES                  AGE   VERSION
k8s-node1   Ready      <none>                 13d   v1.23.5
k8s-node2   NotReady   <none>                 13d   v1.23.5
master      Ready      control-plane,master   13d   v1.23.5
# 為node1設(shè)置污點
[root@master ~]# kubectl taint nodes k8s-node1 tag=qty:PreferNoSchedule
node/k8s-node1 tainted
# 創(chuàng)建pod1
[root@master ~]# kubectl run taint1 --image=naginx:1.17.1 -n dev
pod/taint1 created
[root@master ~]# kubectl get pod -n dev
NAME                           READY   STATUS        RESTARTS   AGE
taint1                         1/1     Running       0          53s
# 為node1設(shè)置污點,改為NoScheduler
[root@master ~]# kubectl taint nodes k8s-node1 tag:PreferNoSchedule-
node/k8s-node1 untainted
[root@master ~]# kubectl taint nodes k8s-node1 tag=qty:NoSchedule
node/k8s-node1 tainted

# 創(chuàng)建pod2
[root@master ~]# kubectl run taint2 --image=nginx -n dev
pod/taint2 created
[root@master ~]# kubectl get pod -n dev
NAME                           READY   STATUS        RESTARTS   AGE
taint1                         1/1     Running       0          7m14s
taint2                         0/1     Pending       0          11s

# 為node1設(shè)置污點
[root@master ~]# kubectl taint nodes k8s-node1 tag:NoSchedule-
node/k8s-node1 untainted
[root@master ~]# kubectl taint nodes k8s-node1 tag=qty:NoExecute
node/k8s-node1 tainted

# 創(chuàng)建pod3
[root@master ~]# kubectl run taint3 --image=nginx -n dev
pod/taint3 created
[root@master ~]# kubectl get pod -n dev
NAME                           READY   STATUS        RESTARTS   AGE
taint3                         0/1     Pending       0          4s

# 刪除所有污點
[root@master ~]# kubectl taint nodes k8s-node1 tag-
node/k8s-node1 untainted

3.2 容忍(Toleration)

污點就是拒絕,容忍就是忽略,Node通過污點拒絕pod調(diào)度上去,pod通過容忍忽略拒絕

創(chuàng)建pod-toleration.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-toleration
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
  tolerations:        # 添加容忍
  - key: "tag"         # 要容忍的污點的key
    operator: "Equal"   # 操作符
    value: "qty"        # 容忍的污點的value
    effect: "NoExecute"    # 添加容忍的規(guī)則,要和污點的規(guī)則相同

#創(chuàng)建pod查看
[root@master ~]# kubectl create -f pod-toleration.yaml 
pod/pod-toleration created
[root@master ~]# kubectl get pod -n dev
NAME                           READY   STATUS        RESTARTS   AGE
pod-toleration                 1/1     Running       0          39s

                                                                         

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Jenkins打包、發(fā)布、部署完整驟記錄

    Jenkins打包、發(fā)布、部署完整驟記錄

    這篇文章主要介紹了Jenkins的基本概念,服務(wù)器環(huán)境檢查,以及如何安裝和配置Jenkins,包括安裝FTP服務(wù)、Maven、Git和Jenkins本身,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • Kubernetes集群調(diào)度詳解(節(jié)點親和性、Pod親和性、Taint與Toleration)

    Kubernetes集群調(diào)度詳解(節(jié)點親和性、Pod親和性、Taint與Toleration)

    Kubernetes調(diào)度器負(fù)責(zé)將Pod分配到節(jié)點,兼顧資源合理分配、調(diào)度效率及用戶策略,通過預(yù)選、優(yōu)選、選擇三階段決策,支持自定義調(diào)度器、節(jié)點親和性(軟硬策略)、Taint/Toleration機(jī)制及直接指定節(jié)點,實現(xiàn)靈活調(diào)度與容錯
    2025-09-09
  • k8s中kubeconfig的配置以及使用詳解

    k8s中kubeconfig的配置以及使用詳解

    每當(dāng)與集群交互的時候少不了的是身份認(rèn)證,使用kubeconfig(即證書)和token兩種認(rèn)證方式是最簡單也最通用的認(rèn)證方式,下面這篇文章主要給大家介紹了關(guān)于k8s中kubeconfig的配置以及使用的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • 詳解K8S apiVersion對照表

    詳解K8S apiVersion對照表

    k8s更新迭代比較快,apiVersion也在不斷變化中,每個版本的對應(yīng)的apiVersion略有不同,這篇文章主要介紹了K8S apiVersion對照表,需要的朋友可以參考下
    2022-07-07
  • k8s容器反復(fù)重啟問題及解決

    k8s容器反復(fù)重啟問題及解決

    這篇文章主要介紹了k8s容器反復(fù)重啟問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • 非root用戶管理k8s和docker容器詳解

    非root用戶管理k8s和docker容器詳解

    文章介紹了如何通過創(chuàng)建非root用戶(如ops用戶)并配置kubectl權(quán)限,結(jié)合RBAC限制訪問范圍,實現(xiàn)安全管理K8s集群;同時通過將用戶加入docker組,無需root權(quán)限即可操作Docker容器
    2025-09-09
  • 通過kubernetes部署nginx+php網(wǎng)站環(huán)境過程

    通過kubernetes部署nginx+php網(wǎng)站環(huán)境過程

    本文詳細(xì)介紹了如何在Kubernetes中部署Nginx+PHP網(wǎng)站環(huán)境,包括環(huán)境準(zhǔn)備、部署步驟、Service、ConfigMap、Ingress等配置,并提供了具體的YAML文件示例和命令,通過這些步驟,可以實現(xiàn)高可用、可擴(kuò)展的Web服務(wù)
    2026-01-01
  • Kubernetes(K8S)中強制刪除命名空間的實現(xiàn)方式

    Kubernetes(K8S)中強制刪除命名空間的實現(xiàn)方式

    本文介紹了在Kubernetes中刪除處于Terminating狀態(tài)的命名空間mysql-operator的步驟,包括檢查并清理殘留資源、強制刪除命名空間等方法
    2026-01-01
  • 超詳細(xì)的Kubernetes?(k8s)常用命令整理

    超詳細(xì)的Kubernetes?(k8s)常用命令整理

    這篇文章主要介紹了Kubernetes?(k8s)常用命令整理的相關(guān)資料,講解了Kubernetes集群管理、節(jié)點資源查看、Pod管理、部署管理、命名空間管理、服務(wù)負(fù)載均衡、調(diào)試排錯以及備份恢復(fù)等操作的命令,需要的朋友可以參考下
    2025-03-03
  • 詳解Rainbond云原生平臺簡化Kubernetes業(yè)務(wù)問題排查

    詳解Rainbond云原生平臺簡化Kubernetes業(yè)務(wù)問題排查

    這篇文章主要介紹了詳解Rainbond云原生平臺簡化Kubernetes業(yè)務(wù)問題排查,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03

最新評論

运城市| 开平市| 寿阳县| 临漳县| 凯里市| 宜昌市| 南汇区| 绥阳县| 天镇县| 海安县| 浏阳市| 扎鲁特旗| 阿瓦提县| 清流县| 庆元县| 合山市| 五大连池市| 施秉县| 尼勒克县| 榕江县| 交城县| 绍兴市| 邹城市| 唐山市| 博野县| 尚义县| 德惠市| 玉屏| 叙永县| 汶川县| 平顶山市| 墨玉县| 固安县| 桃园县| 海伦市| 星座| 新巴尔虎右旗| 南陵县| 都兰县| 慈利县| 呼和浩特市|