<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      k8s~節點的親和性

      在Kubernetes中,你可以使用節點親和性(Node Affinity)來控制Pod部署在哪些節點上。通過配置節點親和性,你可以指定一些規則,以確保多個服務不會被調度到同一個節點上。

      兩種策略

      • requiredDuringSchedulingIgnoredDuringExecution:通過 requiredDuringSchedulingIgnoredDuringExecution,可以定義在調度期間必須滿足的 Affinity 規則。這意味著規則在調度期間必須滿足,但如果在運行時不滿足,則不會強制執行。

      • preferredDuringSchedulingIgnoredDuringExecution:使用 preferredDuringSchedulingIgnoredDuringExecution,可以定義首選的 Affinity 規則。這意味著規則是首選的,但不是強制的,如果無法滿足則可以繼續調度。

      節點親和性實現

      以下是一些在部署Deployment時避免多個服務部署到同一節點的常用方法:

      1. 使用節點親和性標簽(Node Affinity):你可以給每個服務定義一個獨特的節點親和性標簽,然后通過affinity字段將這些標簽添加到對應的PodSpec中。例如,給服務A定義service=a的標簽,給服務B定義service=b的標簽。然后,在Deployment的PodSpec中使用nodeAffinity字段來指定節點親和性規則,確保兩個服務不會調度到同一個節點上。
      • 使用requiredDuringSchedulingIgnoredDuringExecution強制策略,如果不滿足,你的pod將不能被調度
      • 節點A上添加標簽type=product,service-a將被調度到這個節點
      • 節點B上添加標簽type=order,service-b將被調度到這個節點
      • service-a.yaml
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: service-a
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: service-a
        template:
          metadata:
            labels:
              app: service-a
          spec:
            affinity:
              nodeAffinity:
                requiredDuringSchedulingIgnoredDuringExecution:
                  nodeSelectorTerms:
                  - matchExpressions:
                    - key: type
                      operator: In
                      values:
                      - product
            containers:
            - name: service-a
              image: nginx:stable-alpine
      
      
      • service-b.yaml
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: service-b
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: service-b
        template:
          metadata:
            labels:
              app: service-b
          spec:
            affinity:
              nodeAffinity:
                requiredDuringSchedulingIgnoredDuringExecution:
                  nodeSelectorTerms:
                  - matchExpressions:
                    - key: type
                      operator: In
                      values:
                      - order
            containers:
            - name: service-b
              image: nginx:stable-alpine
      

      上面使用正則表達式matchExpressions來確定目標,也可以使用標簽matchLabels的方式,更簡潔,如下:

           # 親和性
            affinity:
              # Pod親和性規則
              podAffinity:
                # 強制性的調度規則, 但不會影響已在節點上運行的Pod
                requiredDuringSchedulingIgnoredDuringExecution:
                - topologyKey: kubernetes.io/hostname
                  # 標簽選擇器
                  labelSelector:
                    matchLabels:
                      app: service-a
      
      1. 使用非強制策略,配置weight權重一起使用
      apiVersion: apps/v1
      kind: Deployment
      metadata:  
        name: service-a-order
      spec:  
        # Pod副本數量
        replicas: 4
        selector:
          matchLabels:
            app: service-a-order
        # Pod模板
        template:
          metadata:
            # 標簽信息: 應用的后端服務
            labels:
              app: service-a-order
          spec:
          # 親和性
            affinity:
              # Pod親和性規則
              podAntiAffinity:
                # 強制性的調度規則, 但不會影響已在節點上運行的Pod
                preferredDuringSchedulingIgnoredDuringExecution:
                - weight: 100  
                  podAffinityTerm:
                      topologyKey: kubernetes.io/hostname
                      # 標簽選擇器
                      labelSelector:
                        matchExpressions: # 也需要matchLabels
                        - key: app
                          operator: In
                          values:
                          - service-a-order
            # 容器信息
            containers:
            - name: service-a-order
              image: nginx:stable-alpine
      

      擴展閱讀

      app.kubernetes.io/instance Kubernetes的應用標識

      在Kubernetes中,app.kubernetes.io/instance是一個標簽(Label),用于標識應用程序實例的實例ID或名稱。

      標簽是鍵值對的形式,用于為資源對象(如Pod、Deployment、Service等)添加元數據信息。app.kubernetes.io/instance是一個預定義的標簽鍵,用于表示應用程序實例的唯一標識符。

      通常,當您使用Kubernetes部署多個相同類型的應用程序實例時,每個實例都會被分配一個唯一的實例ID或名稱。您可以使用app.kubernetes.io/instance標簽來標識和區分這些應用程序實例。

      例如,假設您使用Kubernetes部署了一個名為"my-app"的應用程序,并在該應用程序的多個副本之間進行了擴展。每個副本都會被分配一個唯一的實例ID或名稱。通過為每個副本設置app.kubernetes.io/instance標簽,您可以區分和識別每個應用程序實例。

      標簽可以通過Kubernetes API或命令行工具(如kubectl)進行管理和查詢。您可以使用kubectl get pods --show-labels命令來查看資源對象的標簽信息,包括app.kubernetes.io/instance標簽和對應的實例ID或名稱值。

      kubernetes.io/hostname 節點的主機名

      在Kubernetes中,kubernetes.io/hostname是一個節點標簽(Node Label),用于標識節點的主機名(Hostname)。

      節點標簽是一種鍵值對的形式,用于為節點添加自定義的元數據信息。通過為節點添加標簽,您可以根據標簽進行節點選擇和調度。kubernetes.io/hostname是一個預定義的標簽鍵,用于表示節點的主機名。

      節點的主機名是節點所在主機的唯一標識符。Kubernetes使用主機名來識別和管理節點,并在集群中唯一標識每個節點。kubernetes.io/hostname標簽的值將設置為節點的實際主機名。

      例如,假設您在Kubernetes集群中有多個節點,并且每個節點都有不同的主機名。通過查看節點的kubernetes.io/hostname標簽,您可以了解到每個節點的實際主機名,并在進行節點選擇或調度時使用這些信息。

      節點標簽可以通過Kubernetes API或命令行工具(如kubectl)進行管理和查詢。您可以使用kubectl get nodes --show-labels命令來查看節點標簽信息,包括kubernetes.io/hostname標簽和對應的主機名值。

      posted @ 2023-07-11 14:18  張占嶺  閱讀(1174)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 九九久久人妻一区精品色| 国色天香中文字幕在线视频 | 亚洲一区二区精品动漫| 成人午夜伦理在线观看| 中文字幕精品av一区二区五区| 精品免费看国产一区二区| 精品久久久久久无码人妻蜜桃| 黑人巨大videos极度另类| 南宫市| 国产精品国三级国产专区| 国产成人精彩在线视频| 日本va欧美va精品发布| 人妻体内射精一区二区三四| 九九热精品在线免费视频| 成人无码午夜在线观看| 婷婷久久综合九色综合88| 国产免费无遮挡吸奶头视频| 国产精品自在线拍国产| 国产情侣激情在线对白| 四虎成人精品无码| 伊人久久精品无码麻豆一区 | 国产久免费热视频在线观看| 久久精品国产亚洲av麻| 99久久国产综合精品成人影院| 亚洲精品日韩精品久久| 久热这里有精品视频播放| 韩国精品久久久久久无码| 国产精品一区二区三区黄| 麻豆精产国品一二三区区| 91久久精品美女高潮不断| 国产成人啪精品午夜网站| 精品人妻伦九区久久69| 8AV国产精品爽爽ⅤA在线观看| 国产免费网站看v片元遮挡| 亚洲国产欧美在线看片一国产| 精品国产一区二区三区麻豆| 日韩精品亚洲专在线电影| 亚洲精品福利一区二区三区蜜桃 | 天堂俺去俺来也www色官网| 99久久精品国产一区二区暴力| 日韩视频一区二区三区视频|