設定管理員工作站的必要步驟

管理員工作站會託管指令列介面 (CLI) 工具和設定檔,以便在安裝期間佈建叢集。另外,這類工作站也會託管其他 CLI 工具,方便您在安裝後與已佈建的叢集互動。

本文適用於負責設定、監控及管理基礎技術架構生命週期的管理員、架構師和營運人員。如要進一步瞭解我們在Google Cloud 內容中提及的常見角色和範例工作,請參閱「常見的 GKE Enterprise 使用者角色和工作」。

您可以在管理員工作站下載及執行 bmctl 和 Google Cloud CLI 等工具,與叢集和 Google Cloud 資源互動。管理員工作站會託管設定檔,以便在安裝、升級及更新期間佈建叢集。安裝完成後,管理員工作站會託管 kubeconfig 檔案,方便您使用 kubectl 與已佈建的叢集互動。您也可以在管理員工作站存取重要叢集作業的記錄。單一管理員工作站可用於建立及管理多個叢集。

請確認管理員工作站符合下列各節說明的必要條件。

作業系統和軟體

如要執行 bmctl 並做為控制層節點,管理工作站的作業系統 (OS) 必須符合節點的作業系統需求。管理工作站需要 Docker,但不是做為容器執行階段使用。Google Distributed Cloud 建立叢集時,會在管理工作站上部署 Kubernetes in Docker (kind) 叢集。這個啟動叢集會託管建立叢集所需的 Kubernetes 控制器。除非另有指定,否則叢集建立成功後,啟動叢集就會移除。啟動程序叢集需要 Docker 才能提取容器映像檔。

管理員工作站必須符合下列需求,才能安裝叢集:

  • 作業系統是支援的 Linux 發行版。

    如需支援的 Linux 作業系統和版本清單,請參閱「選取作業系統」。該頁面提供各作業系統的設定操作說明連結,包括 Docker 設定。

  • 已安裝 Docker 19.03 以上版本。不過,如果系統使用 cgroup v2,管理員工作站上的 Docker 安裝版本必須為 20.10.0 以上。(您可以透過 /sys/fs/cgroup/cgroup.controllers 檔案是否存在,判斷系統是否使用 cgroup v2)。

  • 非 root 使用者是 docker 群組的成員 (如需操作說明,請參閱「 以非 root 使用者身分管理 Docker」)。

  • 已安裝 Google Cloud CLI。

    您可以使用 kubectlbmctl 工具建立及管理叢集。如要安裝這些工具,您需要 gcloud 工具。gcloudkubectl 指令列工具是 gcloud CLI 的元件。如需安裝操作說明 (包括元件安裝說明),請參閱「安裝 gcloud CLI」一文。

  • 已安裝「kubectl」。使用 gcloud CLI 透過下列指令安裝 kubectl

    gcloud components install kubectl
    
  • bmctl 是為您建立或運作的叢集版本安裝。

    安裝作業包括使用 gcloud 下載 bmctl 二進位檔或圖片套件。如需操作說明,請參閱「Google Distributed Cloud for Bare Metal 下載」。

硬體資源需求

管理員工作站需要大量的運算能力、記憶體和儲存空間,才能執行工具及儲存與叢集建立和管理相關的資源。

根據預設,叢集升級和叢集建立作業會使用啟動叢集。使用啟動程序叢集時,CPU 和記憶體用量會大幅增加。如果您打算將管理工作站做為控制平面節點,請使用建議的 CPU 和 RAM 數量 (或更高),以免管理工作站活動中斷叢集控制平面功能。

視 etcd 資料庫大小和控制層節點數量而定,叢集備份和還原作業會耗用大量 RAM。備份所需的 RAM 大約為每個控制層節點 3 到 5 GiB。如果記憶體不足,備份程序就會失敗。請據此規劃 RAM 需求。

下表列出管理員工作站的最低和建議硬體需求:

資源 下限 建議
CPU / vCPU* 2 核心 4 核心
RAM Ubuntu:4 GiB

RHEL:6 GiB

Ubuntu:8 GiB

RHEL:12 GiB

儲存空間 128 GiB 256 GiB

* Google Distributed Cloud 僅支援 CPU 微架構層級 v3 (x86-64-v3) 以上的 x86-64 CPU 和 vCPU。

網路需求

管理員工作站需要存取 Google Cloud 和所有叢集節點。

存取 Google Cloud

管理員工作站可存取 Google Cloud ,下載及安裝工具和映像檔、處理授權要求、建立服務帳戶、管理記錄和監控等。如要建立叢集,您必須有Google Cloud的存取權。

您可以直接存取 Google Cloud ,也可以透過 Proxy 伺服器存取。如要瞭解連結至「 Google Cloud」的不同方式,請參閱「連結至 Google」。如要瞭解如何設定 Proxy 伺服器,請參閱「在 Proxy 的保護下安裝」。

如要瞭解中斷存取 Google Cloud的後果,請參閱「暫時中斷與 Google Cloud的連線會造成什麼影響」。

節點存取權

如要從管理員工作站建立及管理叢集,您需要節點機器的下列存取權:

  • 可連上所有叢集節點機器的第 3 層連線能力。
  • root 或具備無密碼 sudo 權限的非超級使用者身分,透過無密碼 SSH 存取所有叢集節點機器。自動化工具需要這類高層級權限,才能在叢集安裝期間執行節點層級工作,以佈建節點。

  • 控制層 VIP 的存取權。

IP 轉送

管理員工作站必須啟用 IP 轉送功能。如果沒有 IP 轉送,就無法建立啟動程序叢集,這會阻礙叢集建立作業。如果 IP 轉送功能已停用,嘗試建立叢集時會看到類似下列的錯誤訊息:

Error message: E0202 14:53:25.979322 225917 console.go:110] Error creating cluster: create kind cluster failed: error creating bootstrap cluster: failed to init node with kubeadm: command "docker exec --privileged bmctl-control-plane kubeadm init --skip-phases=preflight --config=/kind/kubeadm.conf --skip-token-print --v=6" failed with error: exit status 1

您可以使用下列指令檢查 IP 轉送設定:

cat /proc/sys/net/ipv4/ip_forward

值為 1 表示已啟用 IP 轉送。如果 IP 轉送已停用 (0),請使用下列指令啟用:

echo '1' | sudo tee /proc/sys/net/ipv4/ip_forward

設定root節點的 SSH 存取權

如要在管理工作站與叢集節點機器之間啟用安全連線,且不需輸入密碼,請在管理工作站上建立 SSH 金鑰,並與叢集節點共用公開金鑰。

  1. 在每個叢集節點機器上啟用 root SSH 密碼驗證,方法是取消註解或新增 PermitRootLoginPasswordAuthentication 行至 /etc/ssh/sshd_config 檔案,並將值設為 yes

    # $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
    
    # This is the sshd server system-wide configuration file.  See
    # sshd_config(5) for more information.
    
    ...
    
    # Authentication:
    
    #LoginGraceTime 2m
    PermitRootLogin yes
    #StrictModes yes
    #MaxAuthTries 6
    #MaxSessions 10
    
    ...
    
    PasswordAuthentication yes
    

    一開始,您需要在遠端叢集節點電腦上啟用 SSH 密碼驗證,才能從管理員工作站共用金鑰。

  2. 如要套用 SSH 設定變更,請重新啟動 SSH 服務:

    sudo systemctl restart ssh.service
    
  3. 在管理員工作站產生私密和公開金鑰組。請勿為金鑰設定密碼片語。使用下列指令產生金鑰:

    ssh-keygen -t rsa
    

    您也可以使用叢集節點機器的 sudo 使用者存取權設定 SSH。不過,如要進行非根使用者連線,請務必更新叢集設定檔,並加入 spec.nodeAccess.loginUser 欄位。這個欄位預設會註解掉。您可以在建立叢集時,或之後的任何時間,使用 loginUser 指定非根使用者名稱。詳情請參閱loginUser

  4. 將產生的公開金鑰新增至叢集節點機器:

    ssh-copy-id -i PATH_TO_IDENTITY_FILE root@CLUSTER_NODE_IP
    

    更改下列內容:

    • PATH_TO_IDENTITY_FILE:包含安全殼層公開金鑰的檔案路徑。預設情況下,包含公開金鑰的身分識別檔案路徑為 /home/USERNAME/.ssh/id_rsa.pub
    • CLUSTER_NODE_IP:要新增安全殼層公開金鑰的節點電腦 IP 位址。
  5. sshd_config 檔案中將 PasswordAuthentication 設為 no,然後重新啟動 SSH 服務,即可在叢集節點電腦上停用 SSH 密碼驗證。

  6. 在管理員工作站中執行下列指令,確認工作站與節點電腦之間的公開金鑰驗證是否正常運作。

    ssh -o IdentitiesOnly=yes -i PATH_TO_IDENTITY_FILE root@CLUSTER_NODE_IP
    

    正確設定 SSH 後,您就能從管理員工作站 (以 root 形式) 登入節點電腦,不必輸入密碼。

後續步驟