如要使用 Google Distributed Cloud,您必須在節點機器上設定基礎 Red Hat Enterprise Linux (RHEL) 作業系統。設定必要的套件管理工具、核心參數和系統服務,為叢集部署作業做好節點準備。如需疑難排解協助,請參閱已知問題。
事前準備
請確認你使用的是支援的作業系統版本。如需支援的版本清單,請參閱「選取作業系統」。
啟用 cgroupsv2
裸機適用的 Google Distributed Cloud 軟體 (僅限軟體) 1.35 以上版本需要 cgroupsv2。您的作業系統必須支援 cgroupsv2,才能建立或升級叢集。
如果在預檢期間偵測到 cgroupsv1,Google Distributed Cloud 會禁止建立或升級叢集。如要瞭解如何將作業系統遷移至 cgroupsv2,請參閱 Kubernetes 說明文件中的「遷移至 cgroup v2」。
如需在 RHEL 上啟用 cgroupsv2 的操作說明,請參閱 Red Hat 知識庫中的「啟用 cgroup v2」。
驗證 Python 版本
如要初始化或升級節點,且該節點僅搭載 Google Distributed Cloud 軟體 (適用於裸機 1.35 以上版本),請先執行 python3 --version 指令,驗證目前的 Python 版本。
如果 Python 版本為 3.8 以下,則必須在該節點上安裝 Python 3.9。
如要安裝 Python 3.9 以上版本,並確保節點能正常初始化或更新,請按照下列步驟操作:
安裝 Python 3.9:
sudo dnf install -y python39確認 Python 3.9 檔案位於
/usr/bin/python3.9路徑。
啟用 BPF 即時編譯器
作業系統的核心必須啟用 BPF 即時編譯器選項 (CONFIG_BPF_JIT=y)。
如要確認是否已啟用這個選項,請執行下列指令:
grep CONFIG_BPF_JIT /boot/config-$(uname -r)
驗證套件管理工具
請確認您有 RedHat 使用者名稱和密碼,且具備所設定機器的根存取權。請按照下列步驟驗證套件管理工具:
如果您尚未註冊作業系統,請使用 RedHat 使用者名稱和密碼向 RedHat 註冊,以便下載更新:
sudo subscription-manager register sudo subscription-manager refresh sudo subscription-manager attach --auto檢查是否可以更新:
sudo dnf check-update確認輸出內容沒有錯誤,且包含上次中繼資料到期檢查。例如:
Updating Subscription Management repositories. ... # Last metadata expiration check: ... ...
設定或停用 firewalld
您可以設定 Firewalld,以便與 Google Distributed Cloud 搭配使用,或停用 Firewalld。如要瞭解如何設定 firewalld,請參閱「網路需求」頁面的「設定 firewalld 通訊埠」一節。
以下操作說明會停用 firewalld。
停用 firewalld:
sudo systemctl stop firewalld sudo systemctl disable firewalld檢查 firewalld 的狀態,確認已停用:
sudo systemctl status firewalld | grep "Active" # Output # Active: inactive (dead)
在工作站上設定 Docker
請按照下列步驟手動安裝 Docker:
移除所有先前的 Docker 版本:
sudo dnf remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine移除 podman-manpages:
sudo dnf remove podman-manpages安裝 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確認目前執行的是 20.10.0 以上版本:
sudo docker version將輸出內容與以下範例比較,確認用戶端和伺服器版本為 20.10.0 以上:
Client: Docker Engine - Community Version: 25.0.3 ... Server: Docker Engine - Community Engine: Version: 25.0.3確認 Docker 是否執行:
docker run hello-world輸出內容大致如下:
Hello from Docker!這則訊息表示安裝作業似乎正常運作。
設定時間同步
時間同步處理是指使用指定的外部時間參考,設定節點機器上的時鐘。時間同步處理對於時間敏感的叢集活動 (例如事件記錄和指標收集) 非常重要。節點機器的核心會控制在節點上執行的容器時鐘。為確保時間同步正確,請使用任何可用的服務,在機器上安裝網路時間通訊協定 (NTP) 服務:chrony、systemd-timesyncd、ntp 或 ntpdate。執行 timedatectl,確認系統時鐘已同步。timedatectl 的輸出內容應包含下列狀態:
System clock synchronized: yes
確保 Linux 核心 inotify 限制等於或高於下限
如果機器執行 RHEL 9 和 8.10,Linux 核心 inotify 的使用者執行個體和使用者監控數量上限,必須大於或等於下列值:
fs.inotify.max_user_instances:8192fs.inotify.max_user_watches:524288
請確認節點機器上的這些值設定正確:
檢查
max_user_instances的值:cat /proc/sys/fs/inotify/max_user_instances視需要將
max_user_instances更新為最小值:echo 'fs.inotify.max_user_instances=8192' | sudo tee --append /etc/sysctl.conf檢查
max_user_watches的值:cat /proc/sys/fs/inotify/max_user_watches視需要將
max_user_watches更新為最小值:echo 'fs.inotify.max_user_watches=524288' | sudo tee --append /etc/sysctl.conf如果您更新了任一值,請重新啟動機器。
最佳做法
為簡化安裝程序,建議您使用無頭管理,以最精簡的方式安裝 RHEL。此外,請務必啟用網路連線,並使用預設 DHCP 或提供有效的靜態 IP 位址和網路資訊。確認機器可以連線至必要的外部資源,例如 cloud.google.com。
如果 Docker 無法執行,請使用下列指令,確認 Docker daemon 是否正在運作:
sudo systemctl start docker