使用 ytt 的舊版叢集組態

本主題說明如何使用 ytt 覆疊來設定由 Tanzu Kubernetes Grid (TKG) 部署的舊版 TKC 和以計劃為基礎的工作負載叢集,以設定無法由叢集組態檔中的組態變數設定的叢集和基礎物件內容,如使用組態檔設定主管部署的叢集 (適用於 TKC 叢集) 或組態檔變數參考 (適用於以計劃為基礎的叢集) 所列。

有關如何下載和安裝 ytt 的資訊,請參見安裝 Carvel 工具

以類別為基礎的叢集不需要也不支援 ytt 覆疊,因為可設定內容都可在簡化的 Cluster 物件本身的高階模式下設定。當 Tanzu CLI 針對以類別為基礎的叢集執行 ytt 時,如果在您的機器上偵測到 tanzu cluster create,則會輸出 It seems like you have done some customizations to the template overlays. 錯誤

概觀

對於 TKC 和以計劃為基礎的工作負載叢集的進階組態,若要設定的物件內容無法以叢集組態變數來設定,您可以在任何啟動機器的本機 ~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere 目錄中,自訂 TKC、以計劃為基礎的叢集和叢集計劃組態檔。

您可以直接新增或修改組態檔或使用 ytt 覆疊,來自訂這些組態。

直接自訂組態檔更簡單,但如果熟悉 ytt 覆疊,它們允許您在不同的範圍內自訂組態並管理多個模組化組態檔,而不需對上游和繼承的組態值進行破壞性編輯。ytt 覆疊僅適用於使用 Tanzu CLI 建立的新 TKC 和以計劃為基礎的工作負載叢集。

如需各種叢集組態的運作原理和優先順序的詳細資訊,請參閱〈關於 Tanzu Kubernetes Grid〉中的關於舊版 TKC 和以計劃為基礎的叢集組態

ytt 行為和慣例

ytt 處理程序的行為和慣例包括:

優先順序ytt 會依檔案名稱的字母順序,以深度優先方式周遊目錄,並在進行期間覆寫重複的設定。當存在重複的定義時,則 ytt 最後處理的定義將優先採用。

覆疊類型:不同的 ytt 覆疊類型會變更或設定不同的內容:

  • 資料值檔案設定或修改組態值,而不修改物件的結構。其中包括用料表清單 (BoM) 檔案,以及 (依慣例) 檔案名稱中包含 data 的檔案。

  • 覆疊檔案變更物件結構定義。依慣例,這些檔案的檔案名稱中會有 overlay

如需 ytt (包括覆疊範例和互動式驗證器工具) 的詳細資訊,請參閱:

叢集和叢集計劃

對於 TKC 和以計劃為基礎的叢集,啟動機器的 ~/.config/tanzu/tkg/providers/ 目錄包括 ytt 目錄和不同層級的 overlay.yaml 檔案,允許您確定每個層級的組態設定範圍。

  • 提供者和版本特定的 ytt 目錄。例如,~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere/v1.1.0
    • 提供者 API 版本的特定組態。
    • base-template.yaml 檔案包含全大寫的預留位置 (如 "${CLUSTER_NAME}"),且不應進行編輯。
    • overlay.yaml 檔案已經過調整,以將值覆疊到 base-template.yaml 中。
  • 提供者範圍的 ytt 目錄。例如,~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere/ytt
    • 適用於所有版本的提供者範圍的組態。
  • 頂層 ytt 目錄,~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere/ytt
    • 跨提供者組態。
    • 組織到編號目錄中,並依編號順序來處理。
    • 您可以為優先順序高於編號較低的任何 ytt 子目錄的組態,建立 /04_user_customizations 子目錄。

ytt 覆疊

本節包含用於自訂由獨立管理叢集部署的以計劃為基礎的工作負載叢集以及建立新叢集計劃的覆疊。

限制:

  • 您只能使用 ytt 覆疊修改工作負載叢集。不支援使用 ytt 覆疊修改獨立管理叢集。
  • 工作負載叢集覆疊僅在建立叢集時才會套用,而不修改現有叢集。如需如何修改現有叢集的相關資訊,請參閱修改現有叢集中的資源

以下範例說明如何使用組態覆疊檔,來自訂工作負載叢集和建立新的叢集計劃。

對於在叢集中自訂受信任憑證的覆疊,請參閱管理叢集秘密金鑰和憑證主題中的設定具有多個受信任登錄的叢集

vSphere 上的名稱伺服器

此範例是將一或多個自訂名稱伺服器,新增到 vSphere 上舊版 Tanzu Kubernetes Grid 叢集中的工作節點和控制平面節點。它會停用從 DHCP 進行 DNS 解析,以便優先使用自訂名稱伺服器。

若要在以類別為基礎的叢集中設定自訂名稱伺服器,請使用組態變數 CONTROL_PLANE_NODE_NAMESERVERSWORKER_NODE_NAMESERVERS

其中兩個覆疊檔案適用於控制平面節點,另兩個則適用於工作節點。您可以將這四個檔案全新增到 ~/.config/tanzu/tkg/providers/infrastructure-vsphere/ytt/ 目錄。

覆疊檔案會因節點是以 Ubuntu 或 Photon 機器映像為基礎而異,而且 Ubuntu 不需要 DHCP 覆疊檔案。

每個 overlay-dns 檔案中的一行都會設定名稱伺服器位址。以下程式碼顯示單一名稱伺服器,但您可以將多個名稱伺服器指定成清單,例如 nameservers: ["1.2.3.4","5.6.7.8"]

vsphere-overlay-dns-control-plane.yaml 檔案:

  • Ubuntu

    #@ load("@ytt:overlay", "overlay")
    #@ load("@ytt:data", "data")
    
    #@overlay/match by=overlay.subset({"kind":"VSphereMachineTemplate", "metadata": {"name": data.values.CLUSTER_NAME+"-control-plane"}})
    ---
    spec:
      template:
        spec:
          network:
            devices:
            #@overlay/match by=overlay.all, expects="1+"
            -
              #@overlay/match missing_ok=True
              nameservers: ["8.8.8.8"]
              #@overlay/match missing_ok=True
              dhcp4Overrides:
                useDNS: false
    
  • Photon

    #@ load("@ytt:overlay", "overlay")
    #@ load("@ytt:data", "data")
    
    #@overlay/match by=overlay.subset({"kind":"VSphereMachineTemplate", "metadata": {"name": data.values.CLUSTER_NAME+"-control-plane"}})
    ---
    spec:
      template:
        spec:
          network:
            devices:
            #@overlay/match by=overlay.all, expects="1+"
            -
              #@overlay/match missing_ok=True
              nameservers: ["8.8.8.8"]
    

vsphere-overlay-dns-workers.yaml 檔案:

  • Ubuntu

    #@ load("@ytt:overlay", "overlay")
    #@ load("@ytt:data", "data")
    
    #@overlay/match by=overlay.subset({"kind":"VSphereMachineTemplate", "metadata": {"name": data.values.CLUSTER_NAME+"-worker"}})
    ---
    spec:
      template:
        spec:
          network:
            devices:
            #@overlay/match by=overlay.all, expects="1+"
            -
              #@overlay/match missing_ok=True
              nameservers: ["8.8.8.8"]
              #@overlay/match missing_ok=True
              dhcp4Overrides:
                useDNS: false
    
  • Photon

    #@ load("@ytt:overlay", "overlay")
    #@ load("@ytt:data", "data")
    
    #@overlay/match by=overlay.subset({"kind":"VSphereMachineTemplate", "metadata": {"name": data.values.CLUSTER_NAME+"-worker"}})
    ---
    spec:
      template:
        spec:
          network:
            devices:
            #@overlay/match by=overlay.all, expects="1+"
            -
              #@overlay/match missing_ok=True
              nameservers: ["8.8.8.8"]
    

vsphere-overlay-dhcp-control-plane.yaml 檔案 (僅限 Photon):

#@ load("@ytt:overlay", "overlay")
#@ load("@ytt:data", "data")

#@overlay/match by=overlay.subset({"kind":"KubeadmControlPlane"})
---
spec:
  kubeadmConfigSpec:
    preKubeadmCommands:
    #! disable dns from being emitted by dhcp client
    #@overlay/append
    - echo '[DHCPv4]' >> /etc/systemd/network/10-cloud-init-eth0.network
    #@overlay/append
    - echo 'UseDNS=false' >> /etc/systemd/network/10-cloud-init-eth0.network
    #@overlay/append
    - '/usr/bin/systemctl restart systemd-networkd 2>/dev/null'

vsphere-overlay-dhcp-workers.yaml 檔案 (僅限 Photon):

#@ load("@ytt:overlay", "overlay")
#@ load("@ytt:data", "data")

#@overlay/match by=overlay.subset({"kind":"KubeadmConfigTemplate"}),expects="1+"
---
spec:
  template:
    spec:
      #@overlay/match missing_ok=True
      preKubeadmCommands:
      #! disable dns from being emitted by dhcp client
      #@overlay/append
      - echo '[DHCPv4]' >> /etc/systemd/network/10-cloud-init-eth0.network
      #@overlay/append
      - echo 'UseDNS=false' >> /etc/systemd/network/10-cloud-init-eth0.network
      #@overlay/append
      - '/usr/bin/systemctl restart systemd-networkd 2>/dev/null'

使用 NSX ALB 的 FQDN 控制平面端點

若要在 vSphere with NSX Advanced Load Balancer 上建立工作負載叢集,並將 VSPHERE_CONTROL_PLANE_ENDPOINT 設定為 FQDN 而非 IP 位址,請在 .config/tanzu/tkg/providers/infrastructure-vsphere/ytt/ 目錄 (如 fqdn-cert-api.yaml) 中建立覆疊檔案,其內容如下:

#@ load("@ytt:overlay", "overlay")
#@ load("@ytt:data", "data")
#@overlay/match by=overlay.subset({"kind":"KubeadmControlPlane"}), expects="1+"
#@overlay/match-child-defaults missing_ok=True
---

apiVersion: controlplane.cluster.x-k8s.io/v1beta1
kind: KubeadmControlPlane
metadata:
  name: #@ "{}-control-plane".format(data.values.CLUSTER_NAME)
spec:
  kubeadmConfigSpec:
    clusterConfiguration:
      apiServer:
        certSANs:
        - CONTROLPLANE-FQDN

其中,CONTROLPLANE-FQDN 是工作負載叢集控制平面的 FQDN。

在覆疊就位後建立叢集。

建立叢集後,請按照設定節點 DHCP 預留和端點 DNS 記錄 (僅限 vSphere) 中所述的程序來建立 DNS 記錄。

在建立具有 FQDN 端點的其他每個叢集之前,請視需要在覆疊中修改 CONTROLPLANE-FQDN 設定。

解析 .local 網域

在現代 Linux 系統中,如果嘗試解析的主機名稱,其網域尾碼的結尾是 .local,則可能會解析失敗。發生此問題的原因是,systemd-networkd (大多數 Linux 發行版中的 DNS 解析程式) 會嘗試透過多點傳播 DNS (mDNS) 來解析 .local 網域,而不是透過標準 DNS 伺服器來解析。

若要在以類別為基礎的叢集中設定 .local 網域解析,請使用組態變數 CONTROL_PLANE_NODE_SEARCH_DOMAINSWORKER_NODE_SEARCH_DOMAINS

若要在舊版叢集中解決這個已知問題,請在 vsphere-overlay-dns-control-plane.yaml 尾端,新增帶有本機網域尾碼的 searchDomains 字行,以及在 ~/.config/tanzu/tkg/providers/infrastructure-vsphere/ytt/ 目錄中新增 vsphere-overlay-dns-workers.yaml 檔案。

vsphere-overlay-dns-control-plane.yaml 檔案的範例:

#@ load("@ytt:overlay", "overlay")
#@ load("@ytt:data", "data")

#@overlay/match by=overlay.subset({"kind":"VSphereMachineTemplate", "metadata": {"name": data.values.CLUSTER_NAME+"-control-plane"}})
---
spec:
  template:
    spec:
      network:
        devices:
        #@overlay/match by=overlay.all, expects="1+"
        -
          #@overlay/match missing_ok=True
          nameservers: ["8.8.8.8"]
          searchDomains: ["corp.local"]

vsphere-overlay-dns-workers.yaml 檔案的範例:

#@ load("@ytt:overlay", "overlay")
#@ load("@ytt:data", "data")

#@overlay/match by=overlay.subset({"kind":"VSphereMachineTemplate", "metadata": {"name": data.values.CLUSTER_NAME+"-worker"}})
---
spec:
  template:
    spec:
      network:
        devices:
        #@overlay/match by=overlay.all, expects="1+"
        -
          #@overlay/match missing_ok=True
          nameservers: ["8.8.8.8"]
          searchDomains: ["corp.local"]

在沒有 DHCP 選項 42 的情況下設定 NTP (vSphere)

在 Tanzu Kubernetes Grid 叢集內進行 TLS 驗證時,需要精確的時間同步。在大多數以 DHCP 為基礎的環境中,您可以使用 DHCP 選項 42 來設定同步。

如果您要在沒有 DHCP 選項 42 的 vSphere 環境中部署舊版叢集,請依如下所示使用覆疊程式碼,以便讓 Tanzu Kubernetes Grid 使用維持同步的 NTP 伺服器來建立叢集

若要在以類別為基礎的叢集中設定 NTP,請使用組態變數 NTP_SERVERS

  • ~/.config/tanzu/tkg/providers/infrastructure-vsphere/ytt/ 目錄中,建立一個新的 .yaml 檔案,或使用以下程式碼來擴展現有覆疊檔,以便將 time.google.com 範例變更為您要的 NTP 伺服器:

    #@ load("@ytt:overlay", "overlay")
    #@ load("@ytt:data", "data")
    
    #@overlay/match by=overlay.subset({"kind":"KubeadmControlPlane"})
    ---
    spec:
      kubeadmConfigSpec:
        #@overlay/match missing_ok=True
        ntp:
          #@overlay/match missing_ok=True
          enabled: true
          #@overlay/match missing_ok=True
          servers:
            - time.google.com
    
    #@overlay/match by=overlay.subset({"kind":"KubeadmConfigTemplate"}),expects="1+"
    ---
    spec:
      template:
        spec:
          #@overlay/match missing_ok=True
          ntp:
            #@overlay/match missing_ok=True
            enabled: true
            #@overlay/match missing_ok=True
            servers:
              - time.google.com
    

自訂節點標籤

建立舊版叢集時,此覆疊會將持續性標籤指派給叢集節點。這非常有用,因為透過 kubectl 手動套用的標籤,不會因節點取代而持續存在。

請參閱 ytt 覆疊中的額外變數

若要在以類別為基礎的叢集中,為控制平面節點設定自訂節點標籤,請使用組態變數 CONTROL_PLANE_NODE_LABELS

  1. ~/.config/tanzu/tkg/providers/infrastructure-vsphere/ytt/ 目錄中,建立新的 .yaml 檔案,或使用以下程式碼來擴展現有的覆疊檔。

    對於控制平面節點標籤,請設定 initConfigurationjoinConfiguration 區段,以便將標籤套用至所建立的第一個節點以及在以下命令後所加入的所有節點:

    #@ load("@ytt:overlay", "overlay")
    #@ load("@ytt:data", "data")
    
    #@overlay/match by=overlay.subset({"kind":"KubeadmControlPlane"})
    ---
    spec:
      kubeadmConfigSpec:
        initConfiguration:
          nodeRegistration:
            kubeletExtraArgs:
              #@overlay/match missing_ok=True
              node-labels: NODE-LABELS
        joinConfiguration:
          nodeRegistration:
            kubeletExtraArgs:
              #@overlay/match missing_ok=True
              node-labels: NODE-LABELS
    

    其中,NODE-LABELS 是一個以逗號分隔的標籤索引鍵/值字串清單,其中包括 node-type=control-plane (例如 "examplekey1=labelvalue1,examplekey2=labelvalue2")。

    對於工作節點標籤:

    #@ load("@ytt:overlay", "overlay")
    #@ load("@ytt:data", "data")
    
    #@overlay/match by=overlay.subset({"kind":"KubeadmConfigTemplate"}),expects="1+"
    ---
    spec:
      template:
        spec:
          joinConfiguration:
            nodeRegistration:
              kubeletExtraArgs:
                #@overlay/match missing_ok=True
                node-labels: NODE-LABELS
    

    其中,NODE-LABELS 是一個以逗號分隔的標籤索引鍵/值字串清單,其中包括 node-type=worker (例如 "examplekey1=labelvalue1,examplekey2=labelvalue2")。

在 AWS 上停用 Bastion 主機

有關在 AWS 上停用工作負載叢集 Bastion 主機的覆疊範例,請參閱 TKG Lab 存放庫中的在 AWS 上停用 Bastion 伺服器

新計劃 nginx

此範例將新增並設定一項新的工作負載叢集計劃 nginx,且該計劃將執行 nginx 伺服器。該計劃使用叢集資源集 (CRS) 將 nginx 伺服器部署至使用 vSphere 叢集 API 提供者 v1.7.1 所建立的 vSphere 叢集。

  1. .tkg/providers/infrastructure-vsphere/v1.7.1/ 中,新增一個新的 cluster-template-definition-nginx.yaml 檔案,且其內容與 cluster-template-definition-dev.yamlcluster-template-definition-prod.yaml 檔案相同:

    apiVersion: run.tanzu.vmware.com/v1alpha1
    kind: TemplateDefinition
    spec:
      paths:
        - path: providers/infrastructure-vsphere/v1.7.1/ytt
        - path: providers/infrastructure-vsphere/ytt
        - path: providers/ytt
        - path: bom
          filemark: text-plain
        - path: providers/config_default.yaml
    

    存在這個檔案時,將建立一項新計劃,且 tanzu CLI 會解析其檔案名稱來建立 nginx 選項,以便傳遞給 tanzu cluster create --plan

  2. ~/.config/tanzu/tkg/providers/ytt/04_user_customizations/ 中,建立一個新的 deploy_service.yaml 檔案,其中含有:

    #@ load("@ytt:overlay", "overlay")
    #@ load("@ytt:data", "data")
    #@ load("@ytt:yaml", "yaml")
    
    #@ def nginx_deployment():
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      selector:
        matchLabels:
          app: nginx
      replicas: 2
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.14.2
            ports:
            - containerPort: 80
    #@ end
    
    #@ if data.values.TKG_CLUSTER_ROLE == "workload" and data.values.CLUSTER_PLAN == "nginx":
    
    ---
    apiVersion: addons.cluster.x-k8s.io/v1beta1
    kind: ClusterResourceSet
    metadata:
      name: #@ "{}-nginx-deployment".format(data.values.CLUSTER_NAME)
      labels:
        cluster.x-k8s.io/cluster-name: #@ data.values.CLUSTER_NAME
    spec:
      strategy: "ApplyOnce"
      clusterSelector:
        matchLabels:
          tkg.tanzu.vmware.com/cluster-name: #@ data.values.CLUSTER_NAME
      resources:
      - name: #@ "{}-nginx-deployment".format(data.values.CLUSTER_NAME)
        kind: ConfigMap
    ---
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: #@ "{}-nginx-deployment".format(data.values.CLUSTER_NAME)
    type: addons.cluster.x-k8s.io/resource-set
    stringData:
      value: #@ yaml.encode(nginx_deployment())
    
    #@ end
    

    在這個檔案中,條件式 #@ if data.values.TKG_CLUSTER_ROLE == "workload" and data.values.CLUSTER_PLAN == "nginx": 會將下面的覆疊套用至 nginx 計劃的工作負載叢集。

    如果 04_user_customizations 目錄不存在於頂層 ytt 目錄之下,請建立該目錄。

ytt 覆疊中的額外變數

覆疊會將其組態套用至所有新建立的叢集。若要使用不同的覆疊設定來個別自訂叢集,您可以將覆疊與新增至叢集組態中的自訂變數合併在一起。

此範例顯示如何使用額外的叢集組態變數,為不同的叢集設定自訂節點標籤。

附註

升級 Tanzu CLI 後,您需要將這些變更重新套用至新的 ~/.config/tanzu/tkg/providers 目錄。舊版本將重新命名,以作為一個帶有時間戳記的備份。

透過組態變數的節點標籤

WORKER_NODE_LABELS 變數新增到預設組態和叢集組態檔,可建立具有不同工作節點標籤的新叢集。

  1. 編輯 ~/.config/tanzu/tkg/providers/config_default.yaml,並在底部新增自訂變數預設值:

    #! ---------------------------------------------------------------------
    #! Custom variables
    #! ---------------------------------------------------------------------
    
    WORKER_NODE_LABELS: ""
    

    如果叢集的組態檔缺少此變數,則設定此預設值,可防止將不需要的標籤新增到叢集。

  2. 在靠近 ~/.config/tanzu/tkg/providers/ytt/lib/config_variable_association.star 尾端處新增一行 (最後一個右括弧的上方),可讓新變數與提供者類型產生關聯。

    "WORKER_NODE_LABELS": ["vsphere", "aws", "azure"],
    }
    
    end
    
  3. ~/.config/tanzu/tkg/providers/infrastructure-vsphere/ytt/ 目錄中建立一個新的 .yaml 檔案,或使用以下程式碼來擴展現有覆疊檔,以便將 WORKER_NODE_LABELS 變數新增為資料值:

    #@ load("@ytt:overlay", "overlay")
    #@ load("@ytt:data", "data")
    
    #@overlay/match by=overlay.subset({"kind":"KubeadmConfigTemplate"}),expects="1+"
    ---
    spec:
      template:
        spec:
          joinConfiguration:
            nodeRegistration:
              kubeletExtraArgs:
                #@overlay/match missing_ok=True
                node-labels: #@ data.values.WORKER_NODE_LABELS
    
    
  4. 對於任何新的工作負載叢集,現在可以在其叢集組態變數檔中設定 WORKER_NODE_LABEL,以將其值當成標籤來套用至每個叢集節點。

    WORKER_NODE_LABELS: "workload-classification=production"
    

修改現有叢集中的資源

ytt 覆寫僅適用於使用登入獨立管理叢集的 Tanzu CLI 部署的以計劃為基礎的新工作負載叢集。若要修改既有叢集的資源,您需要在獨立管理叢集中修改它,並將其推送到工作負載叢集,如下所述。

修改不帶 DHCP 選項 42 的 NTP (vSphere)

此程序會提供相同的修改 (亦即,在沒有 DHCP 選項 42 的情況下設定 NTP (vSphere) 覆疊套用至新叢集的修改內容) 給現有叢集。

修改現有叢集上的 NTP 設定時,您需要:

  • 建立新 KubeadmConfigTemplate 資源,以反映新設定
  • 更新工作節點的 MachineDeployment,以指向新資源
  • 更新 KubeadmControlPlane 資源,以更新控制平面節點
    • 在 v1.5 之前的 Tanzu Kubernetes Grid 版本中,無法更新控制平面節點上的 NTP。

若要修改現有叢集上的 NTP 設定,請從管理叢集以及從包含要修改之叢集的命名空間中,執行以下命令 (在本範例中名為 cluster1):

  1. 針對每個 KubeadmConfigTemplate / MachineDeployment 配對,建立新的 KubeadmConfigTemplate 資源並更新 MachineDeployment。針對 prod 計劃叢集,請執行此程序三次:

    1. 為工作節點建立新的 KubeadmConfigTemplate 資源。

      • 尋找現有 KubeadmConfigTemplate,並將其匯出至 yaml 檔案進行編輯。

        kubectl get KubeadmConfigTemplate
        kubectl get KubeadmConfigTemplate cluster1-md-0 -o yaml > cluster1-md-0.yaml
        
      • 編輯匯出的檔案,方法是將 ntp 區段新增至現有 spec.template.spec 區段下方,並將 -v1 附加至 metadata 之下的 name 欄位,並假設這是第一次更新:

        metadata:
        ...
          name: cluster1-md-0-v1  # from cluster1-md-0
        ...
        kubeadmConfigSpec:
          ntp:
            enabled: true
            servers:
              - time.google.com
        
      • 套用已更新的 yaml 檔案,以建立新資源。

        kubectl apply -f cluster1-md-0.yaml
        
    2. 更新 MachineDeployment 資源,以指向新建立的 KubeadmConfigTemplate 資源。

      1. 尋找並編輯叢集的現有 MachineDeployment 資源。

        kubectl get MachineDeployment
        kubectl edit MachineDeployment cluster1-md-0
        
      2. 編輯 spec.template.spec.bootstrap.configRef.name 值,以設定 KubeadmConfigTemplate 資源的新名稱。

        spec:
          template:
              ...
              spec:
                bootstrap:
                  configRef:
                    apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
                    kind: KubeadmConfigTemplate
                    name: cluster1-md-0-v1 # from cluster1-md-0
        
      3. 儲存並結束檔案,這會觸發重新建立工作節點。

  2. 編輯控制平面節點的 KubeadmControlPlane 資源,以包含 NTP 伺服器。

    1. 尋找並編輯叢集的現有 KubeadmControlPlane 資源。

      kubectl get KubeadmControlPlane
      kubectl edit KubeadmControlPlane cluster1-control-plane
      
    2. 編輯 spec.kubeadmConfigSpec 區段,作法是新增下面的新 ntp 區段。儲存並結束該檔案。

      kubeadmConfigSpec:
        ntp:
          enabled: true
          servers:
            - time.google.com
      
check-circle-line exclamation-circle-line close-line
Scroll to top icon