日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

配置eci-profile

為了減少您對業(yè)務(wù)YAML的改動,ECI支持了eci-profile功能。eci-profile可以提供集群維度的ECI資源視圖,支持根據(jù)selector實現(xiàn)Pod編排。本文介紹如何配置eci-profile。

功能介紹

阿里云容器服務(wù)ACK通過VK(部署ack-virtual-node組件)使用ECI時,可能會碰到以下問題:

  • 需要上層業(yè)務(wù)修改YAML才能調(diào)度Pod到ECI

  • 需要上層業(yè)務(wù)修改YAML才能開啟ECI特有的高級特性

這類問題導(dǎo)致了運維管理工作和業(yè)務(wù)管理工作混淆在一起。為解決此類問題,ECI支持了eci-profile。eci-profile可以實現(xiàn)以下三個功能:

  • ECI Scheduler

    在混合使用ECI和普通節(jié)點的場景下,一般可以通過配置Pod Label、配置Namespace Label和配置ECI彈性調(diào)度等方式將Pod調(diào)度到ECI,但這些方式均需要對存量資源做一定的修改,無法做到零侵入。

    對于上述情況,ECI Scheduler基于Mutating Webhook機制實現(xiàn)了一種新的調(diào)度機制。在eci-profile中,您可以自定義selector,selector可以根據(jù)Pod的Label或者Pod所屬Namespace的Label來篩選Pod,滿足selector篩選條件的Pod會自動調(diào)度到ECI。

  • ECI Effect

    對于ECI的一些功能特性,例如指定ECS實例規(guī)格,啟用鏡像緩存,設(shè)置NTP服務(wù)等,需要在Pod中追加Annotation或者Label來實現(xiàn)。更多信息,請參見ECI Pod Annotation

    對于上述情況,ECI Effect實現(xiàn)了自動追加Annotation和Label的功能。在eci-profile中,您可以自定義selector,在selector中同時指定篩選條件和要追加的Annotation和Label,滿足selector篩選條件的Pod會自動調(diào)度到ECI,并自動追加指定的Annotation和Label。

  • 配置熱更新

    eci-profile中包含了Cluster IP、混合云模式、日志采集、交換機等配置,您可以根據(jù)需要進(jìn)行更新。

    • 更新配置時無需重啟VK。

    • 對于新創(chuàng)建的ECI Pod,可以即時生效更新后的配置;對于存量ECI Pod,需要滾動發(fā)布后才能生效更新后的配置。

注意事項

  • 使用該功能時,請確保集群中的VK(ack-virtual-node組件)為最新版本。關(guān)于如何升級組件,請參見管理組件

  • 如果需要使用ECI Scheduler功能,則必須要開啟Webhook。ACK Serverless集群默認(rèn)調(diào)度Pod到ECI,無需使用ECI Scheduler功能。

配置說明

創(chuàng)建Pod時,系統(tǒng)會讀取kube-system命名空間下的eci-profile配置文件(名為eci-profile的ConfigMap),按其data配置來創(chuàng)建Pod。您可以通過kubectl get cm -n kube-system eci-profile -o yaml命令查看eci-profile的YAML。eci-profile的YAML模板如下:

apiVersion: v1
data:
  enableClusterIp: "true"
  enableHybridMode: "false"
  enableLinuxArm64Node: "false" 
  enableLogController: "false"
  enablePVCController: "false"
  enablePrivateZone: "false"
  enableReuseSSLKey: "false"
  featureGates: "WaitForFirstConsumer=false"
  securityGroupId: sg-2zeeyaaxlkq9sppl****
  selectors: ""
  slsMachineGroup: ""
  vSwitchIds: vsw-2ze23nqzig8inprou****,vsw-2ze94pjtfuj9vaymf****
  vpcId: vpc-2zeghwzptn5zii0w7****
kind: ConfigMap
metadata:
  creationTimestamp: "2023-01-11T08:28:14Z"
  name: eci-profile
  namespace: kube-system
  resourceVersion: "356"
  uid: b345fa8c-919e-41fc-a981-57864b1a****

您可以修改eci-profile中的data配置,配置selectors或更新固定配置項。

data中的配置項

說明

詳細(xì)說明及示例

selectors

可自定義增加selector(分為objectSelector和namespaceSelector)和effect,用于實現(xiàn)ECI Scheduler和ECI Effect功能。您可以根據(jù)需要靈活配置selectors。

配置selectors

除selectors外,vpcId、vswitchIds等固定配置項

集群級別配置項,支持熱更新。您可以根據(jù)需要更新配置項取值。

更新固定配置項

修改eci-profile的方式如下:

  • 通過kubectl edit命令

    kubectl edit configmap eci-profile -n kube-system
  • 通過容器服務(wù)管理控制臺

    1. 登錄容器服務(wù)管理控制臺

    2. 在集群頁面,找到目標(biāo)集群,單擊集群名稱。

    3. 在集群管理頁的左側(cè)導(dǎo)航欄,選擇配置管理>配置項

    4. 選擇命名空間為kube-system

    5. 找到eci-profile,單擊YAML編輯

配置selectors

selectors包含了ECI Scheduler和ECI Effect的配置。創(chuàng)建Pod時,系統(tǒng)會按照selectors去匹配Pod,對于Label能夠匹配上的Pod,會自動調(diào)度到ECI,或者追加Annotation和Label,以便生效ECI的功能特性。

selectors中可以包含多個selector,在每個selector中,您必須聲明selector的name,可以根據(jù)需要聲明以下信息:

  • namespaceSelector:要匹配的Namespace Label。

  • objectSelector:要匹配的Pod Label。

  • effect:要動態(tài)追加的Annotation和Label。

selectors的配置模板如下:

說明

請根據(jù)自身業(yè)務(wù)場景設(shè)計selectors,實際配置時請去除注釋信息。

data:
  selectors: |
    [
      {
        "name": "selector-demo1", #selector名稱,必填,不能為空
        "namespaceSelector": {    #通過NameSpace Label篩選,可選
          "matchLabels": {        #要匹配的NameSpace Label。如果填寫多個,為與關(guān)系
            "eci": "true"
          }
        },
        "objectSelector": {       #通過Pod Label篩選,可選
          "matchLabels": {        #要匹配的Pod Label。如果填寫多個,為與關(guān)系
            "eci": "true"
          }
        },
        "effect": {               #要動態(tài)追加的Annotation和Label,可選
          "annotations": {
            "k8s.aliyun.com/eci-use-specs": "ecs.c6.xlarge"
          },
          "labels": {
            "created-by-eci": "true"
          }
        }
      },
      {
        "name": "selector-demo2",   
        "objectSelector": {      
          "matchLabels": {     
            "eci": "test"
    	  }
        }
      }
    ]

上述模板中,名為selector-demo1的selector可以實現(xiàn)以下功能:

如果Pod所屬命名空間含有eci: true Label,并且Pod本身含有eci: true Label,則該Pod會自動調(diào)度到ECI,并且增加"k8s.aliyun.com/eci-use-specs": "ecs.c6.xlarge"的Annotation,以及created-by-eci: true Label。

重要
  • 在一個selector中,建議您至少配置namespaceSelector和objectSelector中的一個。如果兩者同時配置了,則Pod需要同時匹配兩者;如果兩者均未配置但配置了effect,則effect對所有調(diào)度到ECI的Pod均生效。

  • 如果配置了多個selector,將按照順序匹配selector。匹配成功后,會自動把effect中聲明的Annotation和Label追加到Pod中(只追加,不覆蓋)。對于重復(fù)的Annotation和Label,Pod中原有聲明的值優(yōu)先級最高,其次是順序匹配上的第一個selector中的effect,以此類推。

配置selectors后,您可以通過以下命令確認(rèn)selectors是否生效。如果返回的YAML中已包含配置的selectors,則表示配置成功;如果未包含selectors,請檢查selectors的格式是否有誤。

kubectl get mutatingwebhookconfigurations -o yaml vk-webhook

配置示例一:將特定Pod調(diào)度到ECI

配置namespaceSelector和objectSelector實現(xiàn)以下功能:

如果Pod含有created-by-eci: true Label,且所屬Namespace含有type: eci Label,則該Pod會被調(diào)度到ECI。

data:
  selectors: |
    [
      {
        "name":"eci-selector",
        "namespaceSelector":{
          "matchLabels":{
            "type":"eci"
          }
        },
        "objectSelector":{
          "matchLabels":{
            "created-by-eci":"true"
          }
        }
      }
    ]

配置示例二:將特定Pod調(diào)度到ECI并使用GPU規(guī)格創(chuàng)建

配置namespaceSelector和effect實現(xiàn)以下功能:

如果Pod所屬Namespace含有gpu: true Label,則該Pod會被調(diào)度到ECI,并使用指定的GPU實例規(guī)格ecs.gn6v-c8g1.2xlarge,同時添加gpu: test Label。

data:
  selectors: |
    [
      {
        "name":"gpu-namespace-selector",
        "namespaceSelector":{
          "matchLabels":{
            "gpu":"true"
          }
        },
        "effect": {
          "annotations": {
            "k8s.aliyun.com/eci-use-specs":"ecs.gn6v-c8g1.2xlarge"
          },        
          "labels":{
            "gpu":"test"
          }
        }
      }
    ]

配置示例三:將特定Pod調(diào)度到ECI并開啟自動匹配鏡像緩存

配置objectSelector和effect實現(xiàn)以下功能:

如果Pod含有imc: auto Label,則該Pod會被調(diào)度到ECI,并使用自動匹配鏡像緩存功能。

data:
  selectors: |
    [
      {
        "name":"autoimc-object-selector",
        "objectSelector":{
          "matchLabels":{
            "imc":"auto"
          }
        },
        "effect": {
          "annotations": {
            "k8s.aliyun.com/eci-auto-imc": "true"
          }
        }
      }
    ]

更新固定配置項

data中包含的vpcId、vswitchIds等固定配置項對應(yīng)VPC、交換機等信息,您可以根據(jù)需要進(jìn)行更新,更新后的配置可以即時生效(無需重啟VK)。支持更新的配置項如下:

說明

以下配置項均為集群級別的配置項,即在創(chuàng)建ECI Pod時,如果沒有額外配置,會采用eci-profile中的配置。

配置項

示例值

說明

enableClusterIp

"true"

是否支持Cluster IP。

enableLinuxArm64Node

"false"

是否開啟ARM節(jié)點。更多信息,請參見調(diào)度Pod到ARM架構(gòu)的虛擬節(jié)點

enableLogController

"false"

是否開啟SLS CRD日志采集功能。如果配置為true,還需配置

slsMachineGroup。

enablePVCController

"false"

是否開啟云盤在線擴(kuò)容功能。如果配置為true,則允許對綁定了云盤的PVC進(jìn)行在線擴(kuò)容。

enablePrivateZone

"false"

是否使用PrivateZone進(jìn)行域名解析。

enableReuseSSLKey

"false"

是否開啟SSL Key復(fù)用。如果配置為true,則在創(chuàng)建ECI Pod時,會復(fù)用SSL Key來提升創(chuàng)建效率。

重要

默認(rèn)情況下,創(chuàng)建ECI Pod時,VK會給每個ECI Pod下發(fā)不同的SSL證書,這在大批量創(chuàng)建時會影響效率。開啟SSL Key復(fù)用后,VK會給每個ECI Pod下發(fā)同一個SSL證書,這在安全性上會有所降低。

featureGates

"WaitForFirstConsumer=false"

featureGates表示灰度特性,您可以按需配置,目前僅支持配置WaitForFirstConsumer。

配置WaitForFirstConsumer=true時,表示VK+ECI模式下,StorageClass默認(rèn)使用WaitForFirstConsumer模式。

  • 啟用該配置前,需確保csi-provisioner組件已升級到最新release版本,

  • 啟用該配置后,當(dāng)PVC被Pod使用時,需要Pod完成調(diào)度后,才觸發(fā)PV和后端存儲的創(chuàng)建,同時完成PVC和PV的綁定。此時,StorageClass中的Zone和Region將不再生效,而是使用Pod調(diào)度所在節(jié)點的Zone和Region創(chuàng)建存儲資源,以保證計算資源調(diào)度優(yōu)先。

更多信息,請參見Volume Binding Mode

securityGroupId

sg-2ze0b9o8pjjzts4h****

ECI Pod所屬安全組。

slsMachineGroup

"test-mg"

ECI Pod所屬機器組。當(dāng)enableLogController配置為true時,需配置該項。

vSwitchIds

vsw-2zeet2ksvw7f14ryz****

ECI Pod所屬交換機。可配置多個,用半角逗號間隔。

vpcId

vpc-2zeghwzptn5zii0w7****

ECI Pod所屬VPC。

配置示例如下:

data:
  enableClusterIp: "true"
  enableHybridMode: "false"
  enableLinuxArm64Node: "false" 
  enableLogController: "false"
  enablePVCController: "false"
  enablePrivateZone: "false"
  enableReuseSSLKey: "false"
  featureGates: "WaitForFirstConsumer=false"
  securityGroupId: sg-2zeeyaaxlkq9sppl****
  selectors: ""
  slsMachineGroup: ""
  vSwitchIds: vsw-2ze23nqzig8inprou****,vsw-2ze94pjtfuj9vaymf****
  vpcId: vpc-2zeghwzptn5zii0w7****