設定 RHEL

您必須設定節點機器的基本作業系統,才能使用 Google Distributed Cloud。本頁說明完成必要設定的步驟。如要進一步瞭解如何排解 Google Distributed Cloud 問題,請參閱疑難排解指南

事前準備

確認您使用的是支援的作業系統版本。如需支援的版本清單,請參閱「選取作業系統」。

啟用 cgroupsv2

裸機適用的 Google Distributed Cloud 軟體 (僅限軟體) 1.35 以上版本需要 cgroupsv2。作業系統必須支援 cgroupsv2,才能建立或升級叢集。

如果在預檢期間偵測到 cgroupsv1,Google Distributed Cloud 會禁止建立或升級叢集。如要瞭解如何將作業系統遷移至 cgroupsv2,請參閱 Kubernetes 說明文件中的「遷移至 cgroup v2」。

如需在 RHEL 上啟用 cgroupsv2 的操作說明,請參閱 Red Hat 知識庫中的「Enabling cgroup v2」。

啟用 BPF 即時編譯器

作業系統的核心必須啟用 BPF Just In Time 編譯器選項 (CONFIG_BPF_JIT=y)。

  • 如要瞭解是否已啟用這項選項,請執行下列指令:

    grep CONFIG_BPF_JIT /boot/config-$(uname -r)
    

驗證套件管理員

請確認您擁有 RedHat 使用者名稱和密碼,且對要設定的電腦具有根存取權。請按照下列步驟驗證套件管理員:

  1. 如果尚未註冊作業系統,請使用 RedHat 使用者名稱和密碼向 RedHat 註冊,以便下載更新:

    sudo subscription-manager register
    
    sudo subscription-manager refresh
    
    sudo subscription-manager attach --auto
    
  2. 檢查更新:

    sudo dnf check-update
    

    確認輸出內容沒有錯誤,且包含最後一次中繼資料到期檢查。例如:

    Updating Subscription Management repositories.
    ...
    # Last metadata expiration check: ...
    ...
    

設定或停用 firewalld

您可以設定 Firewalld,以便搭配 Google Distributed Cloud 使用,也可以停用 Firewalld。如要瞭解如何設定 firewalld,請參閱「網路需求」頁面的「設定 firewalld 連接埠」。

下列操作說明會停用 firewalld。

  1. 停用 firewalld:

    sudo systemctl stop firewalld
    
    sudo systemctl disable firewalld
    
  2. 檢查 firewalld 的狀態,確認已停用:

    sudo systemctl status firewalld | grep "Active"
    # Output
    # Active: inactive (dead)
    

在工作站上設定 Docker

請按照下列步驟手動安裝 Docker:

  1. 移除所有先前的 Docker 版本:

    sudo dnf remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine
    
  2. 移除 podman-manpages:

    sudo dnf remove podman-manpages
    
  3. 安裝 Docker 20.10.0 以上版本:

    sudo dnf install -y yum-utils
    
    sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/rhel/docker-ce.repo
    
    sudo dnf install -y --allowerasing docker-ce docker-ce-cli containerd.io
    
    sudo systemctl start docker
    
  4. 確認您目前執行的版本為 20.10.0 以上:

    sudo docker version
    
  5. 請將輸出內容與下列範例進行比較,確認用戶端和伺服器版本為 20.10.0 以上:

    Client: Docker Engine - Community
    Version:           25.0.3
    ...
    Server: Docker Engine - Community
    Engine:
    Version:          25.0.3
    
  6. 確認 Docker 是否正在執行:

    docker run hello-world
    

    畫面應如下所示:

    Hello from Docker!
    

    這則訊息表示安裝作業似乎正常運作。

設定時間同步

時間同步處理是指使用指定的外部時間參考,設定節點機器的時鐘。時間同步對於時間敏感的叢集活動 (例如事件記錄和指標收集) 十分重要。節點機器的核心會控管在節點上執行的容器時鐘。為確保時間同步處理正常運作,請在機器上安裝網路時間通訊協定 (NTP) 服務,並使用下列任一可用服務:chronysystemd-timesyncdntpntpdate。執行 timedatectl,確認系統時鐘已同步。timedatectl 的輸出內容應包含下列狀態:

System clock synchronized: yes

確認 Linux 核心 inotify 限制等於或高於下限

如為執行 RHEL 9 和 8.10 的機器,Linux 核心inotify限制inotify的最大使用者執行個體和使用者監控數必須大於或等於下列值:

  • fs.inotify.max_user_instances8192
  • fs.inotify.max_user_watches524288

請確認節點機器的這些值設定正確無誤:

  1. 檢查 max_user_instances 的值:

    cat /proc/sys/fs/inotify/max_user_instances
    
  2. 如有需要,請將 max_user_instances 更新為最小值:

    echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf
    
  3. 檢查 max_user_watches 的值:

    cat /proc/sys/fs/inotify/max_user_watches
    
  4. 如有需要,請將 max_user_watches 更新為最小值:

    echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf
    
  5. 如果更新了任一值,請重新啟動電腦。

最佳做法

為簡化安裝作業,建議您使用最少的安裝項目,並透過無頭管理功能設定 RHEL。此外,請務必啟用網路連線,並使用預設 DHCP,或提供有效的靜態 IP 位址和網路資訊。請確認機器可以連線至必要的外部資源,例如 cloud.google.com

如果 Docker 無法執行,請執行下列指令,確認 Docker Daemon 是否正在執行:

sudo systemctl start docker