在 Google Distributed Cloud (GDC) 氣隙宇宙中,您可以建立跨多個區域的第 1 版或第 2 版機構。不過,在建立機構前,有兩種機構建立情境需要額外的 CIDR 設定:
以下各節將說明這些情境,以及建立機構前必須完成的先決條件。
在新區域中為第 1 版機構設定 CIDR
根據預設,您無法在新區域中佈建 v1 機構,因為 v1 機構需要的許多 CIDR 聲明已指派給根機構。
您也必須使用 v1 機構的現有自訂 IP 位址功能。
方案 CIDR 設定
收集區域中設定的現有 CIDR 設定,避免新版機構中的 CIDR 重疊。
列印現有
zone-infra-cidrCIDRClaim資源:kubectl --kubeconfig=ROOT_ADMIN_KUBECONFIG get cidrclaim \ -n gpc-system zone-infra-cidr檢查輸出內容中
CIDRClaim資源的status.ipv4AllocationStatus.cidrBlocks和status.ipv6AllocationStatus.cidrBlocks欄位。舉例來說,下列
CIDRClaim資源已保留192.0.2.0/21、198.51.100.0/26、203.0.113.0/23和2001:db8::/66CIDR 區塊:apiVersion: system.private.gdc.goog/v1alpha1 kind: CIDRClaim metadata: name: zone-infra-cidr namespace: gpc-system spec: ipv4Spec: staticCidrBlocks: - 192.0.2.0/21 - 198.51.100.0/26 - 203.0.113.0/23 ipv6Spec: staticCidrBlocks: - 2001:db8::/66 status: ipv4AllocationStatus: cidrBlocks: - 192.0.2.0/21 - 198.51.100.0/26 - 203.0.113.0/23 ipv6AllocationStatus: cidrBlocks: - 2001:db8::/66請記下這些 CIDR 區塊,以免為貴機構建立自訂外部 CIDR 和自訂內部 CIDR 時使用。
檢查每個區域的
zone-infra-cidr,並記下未使用的現有 CIDR 區塊,以免在為機構建立自訂 CIDR 時使用這些區塊。如要切換區域環境,請使用 gdcloud CLI。列印所有現有子網路,並加上
network-root-range標籤:kubectl --kubeconfig=GLOBAL_ROOT_ADMIN_KUBECONFIG get subnet \ -l ipam.gdc.goog/usage=network-root-range -A檢查每個
Subnet資源的status.ipv4Allocation.cidr和status.ipv6Allocation.cidr欄位。舉例來說,下列
infra-vpc-root-cidr已保留192.0.2.0/15CIDR:apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/usage: network-root-range ipam.gdc.goog/vpc: infra-vpc name: infra-vpc-root-cidr namespace: org-1 spec: ipv4Request: cidr: 192.0.2.0/15 propagationStrategy: None type: Root status: ipv4Allocation: cidr: 192.0.2.0/15請記下這些 CIDR,以免在為貴機構建立自訂外部 CIDR 和自訂內部 CIDR 時使用。
設定自訂 IP 位址
在第 1 版機構啟動程序中,您必須輸入自訂外部和自訂內部 CIDR,才能支援全域第 1 版機構啟動程序。OrganizationZonalConfig
在 OrganizationZonalConfig 資源規格中,您必須為外部 CIDR 和內部 CIDR 新增自訂 IP 位址設定。自訂外部和自訂內部 CIDR 會分別例項化為區域機構的 org-namespace/org-custom-external-cidr 和 org-namespace/org-custom-internal-cidr CIDR 聲明。這個機構的所有其他 CIDR 聲明和子網路聲明,都是這兩項 CIDR 聲明的子項:
...
spec:
capacities:
customIPConfig:
externalCIDRs:
- CUSTOM_EXTERNAL_CIDR
internalCIDRs:
- CUSTOM_INTERNAL_CIDR
...
自訂外部 CIDR 和自訂內部 CIDR 都必須符合下列條件:
- 每個區域的
OrganizationZonalConfig資源皆不重複。 - 在所有區域中,每個現有的 v1 機構的
OrganizationZonalConfig資源中都是唯一的。 - 不得與各區域的
zone-infra-cidr重疊。 - 不得與任何標示
ipam.gdc.goog/usage=network-root-range標籤的全域子網路重疊。
符合這些條件後,您就可以繼續執行預設機構的啟動步驟,在新區域中啟動 v1 機構。
在現有區域中為第 2 版機構設定 CIDR
如要在現有區域中佈建第 2 版機構,您必須手動建立 CIDRClaim 資源 gpc-system/zone-infra-cidr。此外,您也必須確保新 CIDR 聲明中的 CIDR 區塊不會與下列項目重疊:
該區域的
gpc-system/instance-CIDR 宣告。宇宙其他區域中的任何
gpc-system/zone-infra-cidr或gpc-system/instance-CIDR 宣告。
方案 CIDR 設定
列印現有
CIDRClaim資源:kubectl --kubeconfig=ROOT_ADMIN_KUBECONFIG get cidrclaim -n gpc-system檢查輸出內容中每個
CIDRClaim資源的status.ipv4AllocationStatus.cidrBlocks和status.ipv6AllocationStatus.cidrBlocks欄位。舉例來說,下列
CIDRClaim資源已保留192.0.2.0/21、198.51.100.0/26、203.0.113.0/23和2001:db8::/66CIDR 區塊:apiVersion: system.private.gdc.goog/v1alpha1 kind: CIDRClaim metadata: name: instance-external-cidr namespace: gpc-system spec: ipv4Spec: staticCidrBlocks: - 192.0.2.0/21 - 198.51.100.0/26 - 203.0.113.0/23 ipv6Spec: staticCidrBlocks: - 2001:db8::/66 status: ipv4AllocationStatus: cidrBlocks: - 192.0.2.0/21 - 198.51.100.0/26 - 203.0.113.0/23 ipv6AllocationStatus: cidrBlocks: - 2001:db8::/66請記下這些 CIDR 區塊,以免在為 v2 機構建立
zone-infra-cidr時使用。
建立 zone-infra-cidr CIDR 聲明
找出並記下宇宙中每個區域的命名空間
gpc-system的下列 CIDR 宣告:instance-external-cidrinstance-internal-pod-network-cidrinstance-internal-cluster-ip-cidrinstance-internal-physical-network-cidrinstance-internal-cidrzone-infra-cidr
舉例來說,下列指令會傳回目前區域的
instance-external-cidrCIDR 宣告:kubectl --kubeconfig=ROOT_ADMIN_KUBECONFIG get cidrclaim -n gpc-system instance-external-cidr如要切換區域內容,請使用 gdcloud CLI。
建立名為
zone-infra-cidr的CIDRClaim資源,該資源不得與先前檢查的 CIDR 聲明重疊:kubectl --kubeconfig=ROOT_ADMIN_KUBECONFIG apply -f - <<EOF apiVersion: system.private.gdc.goog/v1alpha1 kind: CIDRClaim metadata: name: zone-infra-cidr namespace: gpc-system spec: ipv4Spec: staticCidrBlocks: - IPV4_CIDR ipv6Spec: staticCidrBlocks: - IPV6_CIDR EOFIPv4 和 IPv6 CIDR 不得重複,也不能與目前區域或任何其他現有區域中
gpc-system命名空間的任何現有instance-CIDR 宣告重疊。檢查
zone-infra-cidr的狀態,確認是否已準備就緒:kubectl --kubeconfig=ROOT_ADMIN_KUBECONFIG \ get cidrclaim -n gpc-system zone-infra-cidrCIDR 聲明完成後,您可以繼續執行預設機構的啟動程序,在新區域中啟動 v2 機構。
Ready