本文提供相關資訊,說明在 Google Distributed Cloud (僅限軟體) for VMware 中建立或升級叢集時執行的預檢。
檢查防火牆規則
在 1.29 以上版本中,建立、更新及升級叢集時,系統預設會啟用伺服器端預檢。伺服器端預檢需要額外的防火牆規則。在「管理員叢集適用的防火牆規則」中,搜尋「Preflight checks」,並確認已設定所有必要的防火牆規則。
正在執行「gkectl check-config
」
如果您打算使用 gkectl
建立叢集,請執行 gkectl create-config
來產生設定檔。設定檔會驅動安裝程序:您提供 vSphere 環境、網路和負載平衡器,以及叢集外觀的相關資訊。您可以在建立管理員工作站之前或之後產生設定檔。如要通過特定檢查,必須從管理員工作站執行檢查。
修改檔案以符合環境和叢集需求後,您可以使用該檔案在內部部署環境中建立叢集。
使用 gkectl
建立叢集前,請先執行 gkectl check-config
,透過多項預檢驗證設定檔。如果指令傳回任何 FAILURE
訊息,請修正問題並再次驗證檔案。如果特定功能驗證傳回任何 WARNING 訊息,您必須先修正基本問題,才能使用該功能。
預檢模式和略過驗證
gkectl check-config
具有預設模式和快速模式:
在預設模式下,指令會全面驗證每個欄位。此外,預設模式會在驗證期間建立臨時 vSphere 虛擬機器 (VM),因此可能需要較長時間。
在快速模式中,指令會略過建立測試 VM 的檢查,只執行快速檢查。傳遞
--fast
旗標即可啟用快速模式。
您可以傳遞其他旗標來略過特定驗證,詳情請參閱 gkectl check-config --help
。
管理工作站與測試 VM 之間的流量
在預設模式下,預檢會為叢集建立測試 VM。每個測試 VM 都會執行 HTTP 伺服器,監聽通訊埠 443 和您在設定檔中指定的節點通訊埠。
系統會為測試 VM 指派多個 IP 位址。如果設定檔指出叢集節點會從 DHCP 伺服器取得 IP 位址,預檢作業就會使用 DHCP 伺服器將 IP 位址指派給測試 VM。如果設定檔指出叢集節點將指派靜態 IP 位址,前置檢查會將您在 IP 區塊檔案中指定的靜態 IP 位址指派給測試 VM。
在管理工作站上執行的預檢會使用指派給 VM 的各種 IP 位址,將 HTTP 要求傳送至測試 VM。要求會傳送至通訊埠 443,以及您在設定檔中指定的節點通訊埠。
何時該執行預檢檢查?
建議您盡早執行預檢檢查,再嘗試建立叢集。提早執行預檢檢查,有助於確認您已正確設定 vSphere 環境和網路。
如果您使用 1.2.0-gke.6 版,請執行 gkectl check-config
兩次:
執行
gkectl check-config --fast
。執行
gkectl prepare
。再次執行
gkectl check-config
,這次不要使用--fast
旗標。
執行兩次的原因是 gkectl prepare
會將叢集節點 OS 映像檔的 VM 範本上傳至 vSphere 環境。您必須先準備好該 VM 範本,才能執行整套驗證。
在 1.2.1 以上版本中,check-config
指令本身會上傳 VM 範本,因此您可以在執行 gkectl
prepare
之前,先執行整套驗證:
執行
gkectl check-config
,不使用--fast
旗標。執行
gkectl prepare
。
預檢會驗證您提供給檔案的值。您不必填寫設定檔中的每個欄位,即可對檔案執行前置檢查;事實上,您可以在填寫檔案欄位時,反覆驗證檔案。舉例來說,如果您只想驗證 vCenter 設定,可以只填寫 vcenter
欄位,並針對這些欄位執行檢查。
請注意,建立叢集後,設定就無法變更。執行事前檢查有助於在建立叢集前,找出並解決設定中的問題。
保留測試 VM 以進行偵錯
從 1.2.1 版開始,gkectl check-config
指令會包含 --cleanup
標記。
gkectl check-config
執行完整驗證時,會建立測試 VM 和相關聯的 SSH 金鑰。如要保留測試 VM 和 SSH 金鑰以進行偵錯,請將 --cleanup
設為 false。
--cleanup
的預設值為 true。
預檢檢查清單
預檢會驗證設定檔中的每個欄位。目前檢查項目如下:
類別 | 說明 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
設定檔 | 一般而言,這項驗證會確認每個欄位和規格都具有預期格式和值。 使用 使用 |
||||||||||||||||
網際網路 | 驗證是否可連上必要網域。根據您執行 gkectl 的位置驗證 Proxy 設定。 使用 |
||||||||||||||||
OS 映像檔 | 驗證作業系統映像檔是否存在。 使用 |
||||||||||||||||
Windows 作業系統版本 | 驗證 Windows OS 版本。 使用指令列工具 |
||||||||||||||||
叢集版本 | 驗證管理員叢集版本、使用者叢集版本和 使用 |
||||||||||||||||
叢集健康狀態 | 升級前,請先驗證管理員或使用者叢集是否正常運作:
使用 |
||||||||||||||||
Ingress | 檢查使用者叢集是否含有 Istio Gateway 物件,再進行升級。 | ||||||||||||||||
保留的 IP | 驗證是否有足夠的 IP 位址可供建立及升級。 使用 |
||||||||||||||||
Google Cloud |
--skip-validation-gcp 旗標略過。
| ||||||||||||||||
使用 gcr.io/gke-on-prem-release |
驗證對 Artifact Registry 中託管的容器映像檔登錄檔的存取權。
由 |
||||||||||||||||
Docker 登錄檔 |
privateregistryconfig 如果已設定,則驗證 Docker 登錄檔的存取權。
使用 |
||||||||||||||||
vCenter | 檢查所有 vcenter 欄位是否都存在,並檢查下列項目:
使用 |
||||||||||||||||
儲存空間 |
| ||||||||||||||||
CSI 工作負載 |
驗證叢集是否能順利執行工作負載,該工作負載使用透過 vSphere CSI 驅動程式建立的動態佈建 PersistentVolume。 這項檢查會在升級期間執行,且僅限於有樹內 vSphere 磁碟區,但沒有 vSphere CSI 磁碟區的情況。 這項檢查:
|
||||||||||||||||
反相依性群組的主機 | 如果已啟用
如要為叢集停用 使用 |
||||||||||||||||
負載平衡器 | 驗證負載平衡設定:
--skip-validation-load-balancer 旗標略過。
|
||||||||||||||||
網路 | 驗證提供的 CIDR 範圍、VIP 和靜態 IP (如有設定) 是否可用。檢查 IP 位址是否重疊。 使用 |
||||||||||||||||
DNS | 驗證提供的 DNS 伺服器是否可用。 使用 |
||||||||||||||||
NTP | 驗證提供的網路時間通訊協定 (NTP) 伺服器是否可用。 使用 |
||||||||||||||||
VIP | 對提供的 VIP 執行連線偵測 (ping)。如果連線偵測 (ping) 失敗,表示預期的 VIP 尚未被佔用,因此這項檢查會成功。 使用 |
||||||||||||||||
節點 IP | 對提供的節點 IP 位址執行連線偵測 (ping)。如果連線偵測 (ping) 失敗,表示預期的節點 IP 尚未被佔用,這項檢查就會成功。 使用 |
預檢結果
預檢可能會傳回下列結果:
- 成功
- 欄位及其值通過檢查。
- 失敗
- 欄位和/或欄位值未通過檢查。如果檢查傳回
FAILURE
訊息,請修正問題並再次驗證檔案。 - 略過數
系統略過檢查,可能是因為檢查與您的設定無關。舉例來說,如果您使用 DHCP 伺服器,系統會略過 DNS 和節點 IP 檢查 (僅適用於靜態 IP 設定)。
如果您傳遞的旗標會略過驗證,略過的檢查不會傳回 SKIPPED 結果,而是不會執行驗證,也不會顯示在指令輸出內容中。
- 不明
略過作業傳回非零代碼。您可以將 UNKNOWN 結果視為檢查失敗。UNKNOWN 通常表示檢查無法執行某些系統套件,例如無法執行 nslookup 或 gcloud。
即將推出
我們會在日後推出的版本中新增下列前置檢查:
- NTP 伺服器
執行預檢檢查
執行下列指令即可執行前置檢查:
gkectl check-config --config [CONFIG]
其中 [CONFIG] 是指設定檔的路徑
以快速模式執行
您也可以選擇以「快速模式」執行前置檢查,略過會建立暫時性測試 VM 的驗證,例如負載平衡 VIP 和節點 IP 驗證。如要這麼做,請傳入 --fast
:
gkectl check-config --config [CONFIG] --fast
略過特定驗證
您可以傳遞旗標,以細部略過特定驗證,例如 DNS、Proxy 和網路。每個略過標記都會加上 --skip-[VALIDATION]
前置字元。
如要瞭解可用的略過標記,請執行下列指令:
gkectl check-config --help
舉例來說,如要略過負載平衡器驗證,請執行下列指令:
gkectl check-config --config my-config.yaml --skip-validation-load-balancer
取消預檢
如果已開始執行前置檢查,但想取消,請按兩次 CTRL + C 鍵。如果預檢建立的測試 VM,取消作業時也應自動清除 VM。
清除測試 VM
如果預檢完成後仍有測試 VM,您可以從 vCenter 刪除該 VM。測試 VM 的名稱如下:
check-config-[dhcp|static]-[random number]
如要刪除 VM:
在 VM 上按一下滑鼠右鍵,然後依序點選「電源」 >「關機」。
VM 關機後,再次按一下滑鼠右鍵,然後按一下「Delete from Disk」。
範例
以下是指令的輸出範例。在本範例中,要驗證的設定使用整合式負載平衡模式和靜態 IP,且沒有外部 Docker 登錄檔:
- Validation Category: Config Check - [SUCCESS] Config - Validation Category: Internet Access - [SUCCESS] Internet access to required domains - Validation Category: GCP - [SUCCESS] GCP Service - [SUCCESS] GCP Service Account - Validation Category: Docker Registry - [SUCCESS] gcr.io/gke-on-prem-release access - Validation Category: vCenter - [SUCCESS] Credentials - [SUCCESS] Version - [SUCCESS] Datacenter - [SUCCESS] Datastore - [SUCCESS] Data Disk - [SUCCESS] Resource Pool - [SUCCESS] Network - [SUCCESS] VSphere CSI Driver - Validation Category: F5 BIG-IP - [SUCCESS] Admin Cluster F5 (credentials, partition and user role) - [SUCCESS] User Cluster F5 (credentials, partition and user role) - Validation Category: Network Configuration - [SUCCESS] CIDR, VIP and static IP (availability and overlapping) - Validation Category: DNS - [SUCCESS] DNS (availability) - Validation Category: VIPs - [SUCCESS] ping (availability) - Validation Category: Node IPs - [SUCCESS] ping (availability) Now running slow validation checks. ... Reusing VM template "gke-on-prem-osimage-xxx" that already exists in vSphere. Creating test VMs with admin cluster configuration... DONE Waiting to get IP addresses from test VMs... DONE Waiting for test VMs to become ready... DONE Reusing VM template "gke-on-prem-osimage-xxx" that already exists in vSphere. Creating test VMs with user cluster configuration... DONE Waiting to get IP addresses from test VMs... DONE Waiting for test VMs to become ready... DONE - Validation Category: F5 BIG-IP - [SUCCESS] Admin Cluster VIP and NodeIP - [SUCCESS] Admin Cluster F5 Access - [SUCCESS] User Cluster VIP and NodeIP - [SUCCESS] User Cluster F5 Access - Validation Category: Internet Access - [SUCCESS] Internet access to required domains - Validation Category: vCenter on test VMs - [SUCCESS] Test VM: VCenter Access and Permission - Validation Category: DNS on test VMs - [SUCCESS] Test VM: DNS Availability - Validation Category: TOD on test VMs - [SUCCESS] Test VM: TOD Availability - Validation Category: Docker Registry - [SUCCESS] gcr.io/gke-on-prem-release access Deleting test VMs with admin cluster configuration... DONE Deleting test VMs with user cluster configuration... DONE
已知問題
如果是 1.3.0-gke.16 版:
如果符合下列兩項條件,您必須執行快速驗證檢查
gkectl check-config --fast
,進行預檢:您已將 Google Distributed Cloud 設為使用 Proxy。
您已安裝下列其中一個套件組合:
- 「下載」頁面中的
/var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16.tgz
套裝組合。 - 管理員工作站的
/var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16.tgz
套件。
- 「下載」頁面中的
只有在安裝完整套件後,才能執行完整驗證。例如:
/var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16-full.tgz
適用於 1.2.0-gke.6 版:
如果您使用巢狀資源集區或預設資源集區,嘗試進行完整驗證時,
gkectl check-config
會失敗。不過,您可以傳遞--fast
標記,進行較小範圍的驗證。gkectl check-config --config [CONFIG] --fast