建立標準叢集

經典基礎設施

使用 IBM Cloud CLI 或 IBM Cloud 控制台,建立一個可完全自訂的標準叢集,您可依需求選擇硬體隔離方式,並使用多工作節點等功能,以建構高可用性環境。

必要條件

Red Hat OpenShift 叢集可透過僅公開服務端點或同時使用公開與私有服務端點來建立。 無法停用公用服務端點。 因此,您無法將公共 Red Hat OpenShift 叢集轉換為私人叢集。 If you want to create a Classic cluster with a private service endpoint enabled, you must 啟用 VRF & 服務端點. 如果您想要僅限專用叢集,請考慮建立 VPC 叢集。

如果您要啟用群集的信任設定檔,請確定您已在帳戶中建立一個。 如需詳細資訊,請參閱 設定受信任的設定檔

在控制台中建立一個經典叢集

若要開始建立群集,請導航至 主控台,然後按一下建立群集

位置詳細資料
建立叢集時,其資源會保留在將叢集部署到的位置中。
  • 資源群組:一個叢集只能建立在一個資源群組中,且叢集建立後,便無法變更其資源群組。 若要在非 default 資源群組中建立叢集,您必須至少具有該資源群組的檢視者角色
  • 地理位置: 選取要在其中建立叢集的區域,例如 北美洲。 地理位置有助於過濾您可以在主控台中選取的 可用性Metro 值。
  • 可用性: 可以使用 單一區域多區域 配置來建立叢集。 多區域叢集提供高可用性,並將 Red Hat OpenShift 主節點部署在具有多區域功能的區域中,並將主節點的三個抄本分散在不同的區域中。
    • 若為多區域叢集,請選擇 Metro 位置。 為獲得最佳效能,請選擇地理位置上最接近您的地區。 您的工作人員區域是基於您選擇的區域。 您可以選取要套用哪些工作者節點區域,而您的工作者節點會分散在您的區域中,以取得高可用性。 每一個工作者節點區域都有公用及專用 VLAN。 如果您在該區域中沒有 VLAN,則會為您建立 VLAN。
    • 對於單一區域叢集,請選擇要在其中管理叢集的單一 工作者節點區域。 為了獲得最佳效能,請選擇市內地理位置上離您最近的區域。 每一個工作者節點區域都有公用及專用 VLAN。 若該區域尚未存在虛擬區域網路(VLAN),系統將自動為您建立。
Kubernetes 版本
依預設,叢集是以預設 Kubernetes 版本建立。 您可以指定不同的 支援版本
工作者儲存區
叢集工作者節點儲存區定義執行工作負載的工作者節點數目及類型。 您隨時可以變更工作者節點儲存區詳細資料。
  • Flavor:Flavor 定義了在每個工作節點中設定,並提供給容器的虛擬 CPU、記憶體及磁碟空間的數量。 可用的裸機及虛擬機器類型會因您部署叢集所在的區域而不同。
  • 作業系統架構: 如需依叢集版本列出的可用作業系統和架構清單,請參閱 可用的版本
  • 每個區域的工作者節點: 針對高可用性,建議每個區域至少有 3 個工作者節點。
主控節點服務端點
服務端點提供與主節點的通訊。 您可以選擇使用僅限公用或同時使用公用及專用雲端服務端點來配置叢集。 如需執行面對網際網路之應用程式需要何設定的相關資訊,或是保持叢集專用需要何設定的相關資訊,請參閱規劃叢集網路設定。 建立群集後,您無法變更雲端服務端點。
進入密鑰管理
IBM Cloud Secrets Manager 可集中管理叢集裡的 Ingress 子網域憑證及其他密碼。 您可以選擇在叢集建立程序期間將 Secrets Manager 實例登錄至叢集。 您也可以指定密鑰群組,以用來控制對叢集裡密鑰的存取權。 在您建立叢集之後,可以配置或變更這兩個選項。
加密
使用金鑰管理服務 (KMS) 來啟用資料加密,以加密叢集裡的密碼及其他機密性資訊。 您也可以稍後 啟用 KMS
叢集詳細資料
您可以自訂唯一叢集名稱及任何 標籤,以用來組織及識別 IBM Cloud 資源,例如 teambilling department
如果要新增現有的受信任設定檔到群集,請指定受信任設定檔的 ID。 如果您沒有指定受信任的設定檔,您可以使用 API 金鑰來完成群集建立程序。 如需詳細資訊,請參閱 設定受信任的設定檔
觀察整合
您可以啟用要包含在叢集上的其他觀察整合。 如果您具有該整合的現有平台實例,則會自動啟用部分整合。 在這種情況下,您無法停用此整合功能。 如果您想要使用整合,且您只有該整合的現有應用程式實例,則依預設會停用整合,且您必須手動啟用它。
  • 日誌:您可以使用 IBM Cloud Logs 管理作業系統日誌、應用程式日誌和平台日誌。 如果您想稍後啟用此整合,請參閱 IBM Cloud Logs.
  • 監視: 監視服務整合可讓您對應用程式、服務及平台的效能及性能進行作業可見性。 如果您停用此整合並希望稍後啟用Security and Compliance Center,請參閱 監控叢集運作狀況。配置、權限和合規性。 有關更多信息,請參閱工作負載保護 入門 頁面。
  • 指定配置類型以使用新的或現有的監視和工作負載保護實例。 如果您想要使用監控和工作負載保護的現有實例,則必須連接每個整合的實例。 在這種情況下,指定您要使用的監控執行個體或工作負載保護執行個體;您不能指定兩個實例,但只要連接在一起,就會使用兩個實例。 您可以從 監控工作負載保護執行個體的詳細資料頁面連線現有執行個體。

在 CLI 中建立經典叢集

使用命令 IBM Cloud 列介面建立您的經典叢集。

  • 請確定您已完成 準備帳戶 的必要條件,並決定叢集設定。 請記住,您需要至少具有 2 個 4x16 規格工作者節點的叢集,以便可以部署預設 Red Hat OpenShift 元件。
  • 安裝 IBM Cloud CLI 工具
  1. 登入 IBM Cloud CLI。 如果您使用聯合 ID 登入,請使用 ibmcloud login --sso

    ibmcloud login [--sso]
    
  2. 如果您擁有多個 IBM Cloud 帳戶,請選擇您要建立叢集的帳戶。

  3. 若要在非 default 資源群組中建立叢集,請將目標設為該資源群組。 一個叢集只能在一個資源群組中建立,而且在建立叢集之後,您無法變更其資源群組。 您必須至少具有資源群組的 檢視者 角色,才能將其設為目標。

    ibmcloud target -g RESOURCE_GROUP_NAME
    
  4. 檢閱可以在其中建立叢集的區域。 在下列指令的輸出中,區域的 Location Typedc。 若要跨越區域間的叢集,您必須在具有多區域功能的區域中建立叢集。 具有多區域功能的區域在多區域都會直欄中具有都會值。 如果要建立多區域叢集,則可以使用 IBM Cloud 主控台進行建立,或者在建立叢集後,新增更多區域至叢集。

    ibmcloud oc locations
    

    若您選取的區域不在您的國家/地區境內,請謹記,您可能需要合法授權,才能實際將資料儲存在其他國家/地區。

  5. 檢閱該區域中可用的工作者節點規格。 規格決定在每個工作者節點中設定並可供應用程式使用的虛擬 CPU 數量、記憶體數量和磁碟空間數量。 標準叢集裡的工作者節點可以作為共用或專用基礎架構上的虛擬機器進行建立,也可以作為專用於您的 Bare Metal Server 機器進行建立。 建立叢集後,可以藉由新增工作者節點儲存區來新增不同的規格。

    在建立裸機機器之前,請確保要佈建裸機機器。 裸機機器按月計費。 如果錯誤地訂購了裸機機器,即使您立即取消該機器,也需要支付整個月的費用。

    ibmcloud oc flavors --zone ZONE
    
  6. 檢查要包含在叢集裡的區域中是否有現有 VLAN,如果有,請記下 VLAN 的 ID。 如果您在欲於叢集中使用的區域中,沒有任何公共或私有 VLAN,當您建立叢集時,IBM Cloud Kubernetes Service 會自動為您建立這些 VLAN。

    ibmcloud oc vlan ls --zone ZONE
    

    輸出範例

    ID        Name   Number   Type      Router
    1519999   vlan   1355     private   bcr02a.dal10
    1519898   vlan   1357     private   bcr02a.dal10
    1518787   vlan   1252     public    fcr02a.dal10
    1518888   vlan   1254     public    fcr02a.dal10
    

    如果公用及專用 VLAN 已存在,請記下相符的路由器。 專用 VLAN 路由器的開頭一律為 bcr(後端路由器),而公用 VLAN 路由器的開頭一律為 fcr(前端路由器)。 當建立叢集並指定公用和專用 VLAN 時,那些字首之後的數字和字母組合必須相符。 在範例輸出中,任何專用 VLAN 都可以與任何公用 VLAN 搭配使用,因為路由器都會包括 02a.dal10

  7. 建立標準叢集。

    ibmcloud oc cluster create classic --zone <zone> --flavor <flavor> --hardware <shared_or_dedicated> --public-vlan <public_VLAN_ID> --private-vlan <private_VLAN_ID> --workers <number> [--operating-system (REDHAT_8_64)] --name <cluster_name> --version <major.minor.patch>_openshift --public-service-endpoint [--private-service-endpoint] [--pod-subnet] [--service-subnet] [--disable-disk-encrypt] [--sm-group GROUP] [--sm-instance INSTANCE] [--trusted-profile-id]
    
    --zone <zone>

    指定您稍早所選擇,且想要用來建立叢集的 IBM Cloud 區域 ID。

    --flavor <flavor>

    為先前選擇的工作者節點指定規格。

    --hardware <shared_or_dedicated>

    指定工作者節點的硬體隔離層次。 請使用 dedicated 以獲得僅供您專用的實體資源,或使用 shared 讓實體資源可與其他 IBM 客戶共享。 預設值為 shared。 此值對於 VM 標準叢集是選用的。 若為裸機規格,請指定 dedicated

    --public-vlan <public_vlan_id>

    如果已經在 IBM Cloud 基礎架構帳戶中為該區域設定了公用 VLAN,請輸入先前擷取到的該公用 VLAN 的 ID。 如果您的帳戶中沒有公用 VLAN,請不要指定此選項。IBM Cloud Kubernetes Service 會自動為您建立公用 VLAN。 專用 VLAN 路由器的開頭一律為 bcr(後端路由器),而公用 VLAN 路由器的開頭一律為 fcr(前端路由器)。 當建立叢集並指定公用和專用 VLAN 時,那些字首之後的數字和字母組合必須相符。

    --private-vlan <private_vlan_id>

    如果已經在 IBM Cloud 基礎架構帳戶中為該區域設定了專用 VLAN,請輸入先前擷取到的該專用 VLAN 的 ID。 如果您的帳戶中沒有專用 VLAN,請不要指定此選項。IBM Cloud Kubernetes Service 會自動為您建立專用 VLAN。 專用 VLAN 路由器的開頭一律為 bcr(後端路由器),而公用 VLAN 路由器的開頭一律為 fcr(前端路由器)。 當建立叢集並指定公用和專用 VLAN 時,那些字首之後的數字和字母組合必須相符。

    --name <name>

    指定叢集的名稱。 名稱必須以字母開頭,可包含字母、數字、句點 (.) 及連字號 (-),且長度不得超過 35 個字元。 請使用在各地區之間都唯一的名稱。 叢集名稱和叢集部署所在的地區會形成 Ingress 子網域的完整網域名稱。 為了確保 Ingress 子網域在地區內是唯一的,叢集名稱可能會被截斷,並在 Ingress 網域名稱內附加一個隨機值。

    --workers <number>

    指定要包含在叢集裡的工作者節點數。 預設值是 1。

    --version <major.minor.patch>

    叢集主節點的 Red Hat OpenShift 版本。 這是必要值。 未指定版本時,會使用支援的預設 Kubernetes 版本來建立叢集。 如果您未指定支援的 Red Hat OpenShift 版本,則您的叢集會建立為社群 Kubernetes 叢集。 若要查看可用的版本,請執行 ibmcloud oc versions``。

    --public-service-endpoint

    啟用公有雲服務端點,以便能透過公有網路存取您的 Red Hat OpenShift 主節點(例如,從您的 CLI 執行 oc 指令),並讓您的 Red Hat OpenShift 主節點與工作節點能夠透過公有 VLAN 進行通訊。 您必須啟用公用雲端服務端點,且稍後無法停用 it.After 建立叢集之後,您可以執行 ibmcloud oc cluster get --cluster <cluster_name_or_ID> 來取得端點。

    --private-service-endpoint

    已啟用 VRF已啟用服務端點的帳戶 中: 啟用專用雲端服務端點,以便您的 Red Hat OpenShift 主節點及工作者節點可以透過專用 VLAN 進行通訊。 如果您指定這個選項,也必須使用 --public-service-endpoint 選項來啟用公用雲端服務端點。 請注意,您稍後無法變更雲端服務 endpoints.After 建立叢集之後,您可以執行 ibmcloud oc cluster get --cluster <cluster_name_or_ID> 來取得端點。

    --pod-subnet

    依預設,部署到工作者節點的所有 Pod 都會指派有 172.30.0.0/16 範圍內的專用 IP 位址。 如果您計劃透過 IBM Cloud® Direct Link 或 VPN 服務將叢集連接到本地網路,您可以透過指定自訂子網 CIDR(該 CIDR 會為您的 Pod 提供私有 IP 位址)來避免子網衝突。 當您選擇子網路大小時,請考量您計劃建立的叢集大小,以及未來可能新增的工作者節點數目。 子網的 CIDR 範圍必須至少為 /23,這能為叢集中最多四個工作節點提供足夠的 Pod IP 位址。 若為較大的叢集,請使用 /22,以具有八個工作者節點的足夠 Pod IP 位址,/21 以具有 16 個工作者節點的足夠 Pod IP 位址,依此類推。 請注意,Pod 和服務子網路不能重疊。 依預設,服務子網路位於 172.21.0.0/16 範圍內。 您選擇的子網路必須在下列其中一個範圍內:

    • 172.17.0.0 - 172.17.255.255
    • 172.21.0.0 - 172.31.255.255
    • 192.168.0.0 - 192.168.254.255
    • 198.18.0.0 - 198.19.255.255
    --service-subnet
    依預設,部署到叢集的所有服務都會指派有 172.21.0.0/16 範圍內的專用 IP 位址。 如果您計劃透過 IBM Cloud Direct Link 或 VPN 服務將叢集連接到本地網路,您可以透過指定自訂子網 CIDR(該 CIDR 會為您的服務提供私有 IP 位址)來避免子網衝突。
    必須以 CIDR 格式指定子網路,大小至少為 /24,這容許叢集裡最多有 255 個服務或更大的服務。 您選擇的子網路必須在下列其中一個範圍內: - 172.17.0.0 - 172.17.255.255 - 172.21.0.0 - 172.31.255.255 - 192.168.0.0 - 192.168.254.255 - 198.18.0.0 - 198.19.255.255

    請注意, Pod 和服務子網路不能重疊。 依預設,Pod 子網路位於 172.30.0.0/16 範圍內。

    --disable-disk-encrypt

    依預設,工作者節點具有 AES 256 位元磁碟加密特性。 如果您要停用加密,請包括此選項。

    --entitlement ocp_entitled

    僅當叢集具備授權 Red Hat OpenShift 時,才包含此選項。 當您指定工作節點數量 (--workers) 與配置類型 (--flavor) 時,請務必僅指定您有權在 IBM Passport Advantage 中使用的工件節點數量與規模。 在您的叢集建立完成後,您將不會被收取工作 default 節點池中已授權工作節點的授權 Red Hat OpenShift 費用。 不要超出您的授權。 請注意,您的 OpenShift Container Platform 授權資格可適用於其他雲端服務供應商或不同環境。 若要避免稍後發生計費問題,請確定您只使用您有權使用的內容。 例如,您可能具有兩個具有 4 CPU 及 16 GB 記憶體之工作者節點的 OCP 授權,並且您建立此工作者節點儲存區時具有兩個具有 4 CPU 及 16 GB 記憶體的工作者節點。 您已使用整個授權,且無法對其他工作者節點儲存區、雲端提供者或環境使用相同的授權。

    --sm-group GROUP

    用於儲存您機密資料的 Secrets Manager 實例的機密群組 ID。 若要取得密鑰群組 ID,請參閱 Secrets Manager CLI 參考資料

    --sm-instance INSTANCE

    Secrets Manager 實例的 CRN。 若要取得實例的 CRN,請執行 ibmcloud oc ingress instance ls --cluster CLUSTER

    --trusted-profile-id ID

    指定要與群集關聯的現有信任設定檔的 ID。 透過可信賴的設定檔,您可以授權存取帳戶中的資源,而無需管理獨立的 IAM 認證。 如需詳細資訊,請參閱 設定受信任的設定檔

  8. 驗證已要求建立叢集。 若為虛擬機器,要訂購工作者節點機器並且在您的帳戶中設定及佈建叢集,可能需要一些時間。 裸機實體機器是藉由與 IBM Cloud 基礎架構之間的手動互動來進行佈建,可能需要多個營業日才能完成。

    ibmcloud oc cluster ls
    

    當您的 Red Hat OpenShift 主節點的配置完成後,您的叢集狀態將變更為「normal」。 當您的 Red Hat OpenShift 主節點準備就緒後,系統便會開始為您配置工作節點。

    NAME         ID                         State      Created          Workers    Zone      Version     Resource Group Name   Provider
    mycluster    blrs3b1d0p0p2f7haq0g       normal   20170201162433   3          dal10     4.21.27_1544_openshift      Default             classic
    

    您的叢集是否未處於「normal」狀態? 請參閱叢集除錯手冊以取得說明。 例如,如果您的叢集佈建在受防火牆閘道應用裝置保護的帳戶中,您必須配置防火牆設定,以容許將送出的資料流量傳送至適當的埠和 IP 位址

  9. 檢查工作者節點的狀態。

    ibmcloud oc worker ls --cluster <cluster_name_or_ID>
    

    工作者節點就緒後,工作者節點狀況會變更為 normal,而狀態會變更為 Ready。 當節點狀態為 Ready 時,您就可以存取叢集。 請注意,即使叢集已就緒,其他服務所使用的一些叢集部分(例如 Ingress 密碼或登錄映像檔取回密碼)可能還是在處理中。 請注意,如果已建立僅使用專用 VLAN 的叢集,則不會將任何公用 IP 位址指派給工作者節點。

    ID                                                     Public IP        Private IP     Flavor              State    Status   Zone    Version
    kube-blrs3b1d0p0p2f7haq0g-mycluster-default-000001f7   169.xx.xxx.xxx  10.xxx.xx.xxx   u3c.2x4.encrypted   normal   Ready    dal10   1.35.7_1526
    

    每個工作者節點都會獲指派唯一的工作者節點 ID 及網域名稱,而在建立叢集之後不得手動變更。 若您變更 ID 或網域名稱,Red Hat OpenShift 主控端將無法管理您的叢集。

  10. 可選:如果您在 多專區區域 中建立集群,則可以 跨區域分佈預設工作線程池 以提高集群的可用性。

  11. 在您的叢集建立之後,您可以配置 CLI 階段作業以開始使用叢集

您的叢集已備妥可處理您的工作負載! 您也可能想要 新增標籤至叢集,例如使用叢集的團隊或計費部門,以協助管理 IBM Cloud 資源。

建立標準叢集的指令範例

在共用虛擬機器上建立「標準」叢集的範例指令。

ibmcloud oc cluster create classic --name my_cluster --version 4.21_openshift --zone dal10 --flavor b3c.4x16 --hardware shared --workers 3

在裸機伺服器上建立「標準」叢集的範例指令。

ibmcloud oc cluster create classic --name my_cluster --version 4.21_openshift --zone dal10 --flavor mb2c.4x32 --hardware dedicated --workers 3 --public-vlan <public_VLAN_ID> --private-vlan <private_VLAN_ID>

使用以下命令建立經典集群的範例命令IBM Cloud Pak預設工作池由 3 個工作節點組成,每個節點有 4 個核心和 16 個記憶體。

ibmcloud oc cluster create classic --name cloud_pak_cluster --version 4.21_openshift --zone dal10 --flavor b3c.4x16 --hardware dedicated --workers 3 --entitlement ENTITLEMENT --public-vlan PUBLIC-VLAN-ID --private-vlan PRIVATE-VLAN-ID [--operating-system (REDHAT_8_64)]

建立具有 RHEL 9 工作節點的經典叢集的範例命令。

ibmcloud oc cluster create classic --name my_cluster --zone dal10 --flavor b3c.4x16 --version 4.9.28_openshift --operating-system RHEL_9_64

對於經典的多區域叢集,在 多區域都會區 中建立叢集後,請新增區域。 將區域新增至標準叢集的範例指令。

ibmcloud oc zone add classic --zone <zone> --cluster <cluster_name_or_ID> --worker-pool <pool_name> --private-vlan <private_VLAN_ID> --public-vlan <public_VLAN_ID>

使用 Terraform 建立單一區域標準叢集

IBM Cloud 上的 Terraform 可對 IBM Cloud 平台基礎架構和資源 (包括標準叢集) 啟用可預測且一致的佈建。 若要使用 Terraform 建立標準叢集,請先建立 Terraform 配置檔,以宣告您要建立的叢集資源類型。 然後,套用 Terraform 配置檔。 如需 Terraform 的相關資訊,請參閱 關於 Terraform on IBM Cloud

開始之前:

  1. 建立 Terraform 提供者檔案。 將檔案儲存在 Terraform 目錄中。 如需相關資訊,請參閱 Terraform IBM Cloud 提供者說明文件

    範例 Terraform 提供者檔案。

    terraform {
    required_providers {
        ibm = {
        source = "IBM-Cloud/ibm"
        version = "1.53.0"
        }
    }
    }
    provider "ibm" {
    region = "us-south"
    ibmcloud_api_key = "<api-key>"
    }
    
  2. 建立標準叢集的 Terraform 配置檔。 將檔案儲存在 Terraform 目錄中。 以下範例配置建立一個經典集群,在一個區域中包含三個工作節點。 如需相關資訊及叢集配置選項,請參閱 Terraform ibm_container_cluster 文件。

    範例 Terraform 配置檔。

    resource "ibm_container_cluster" "testacc_cluster" {
    name            = "test-classic"
    datacenter      = "dal10"
    machine_type    = "b3c.4x16"
    hardware        = "shared"
    public_vlan_id  = "<vlan_id>"
    private_vlan_id = "<vlan_id"
    subnet_id       = ["<subnet_id>"]
    default_pool_size = 3
    }
    
    name
    叢集的名稱。
    datacenter
    要建立叢集的區域。 若要查看可用的區域,請執行 ibmcloud oc zones --provider classic
    machine_type
    工作者節點規格。 規格會決定工作者節點可用的記憶體、CPU 及磁碟空間量。 如需可用工作者節點規格的清單,請執行 ibmcloud oc flavors --zone <zone> --provider classic,或參閱 標準規格
    hardware
    您的工作節點的硬體隔離等級。 請使用 dedicated 以獲得僅供您專用的實體資源,或使用 shared 讓實體資源可與其他 IBM 客戶共享。 此選項僅適用於虛擬機器工作者節點規格。
    public_vlan_idprivate_vlan_id
    選用。 您要用於工作者節點的公用或專用 VLAN ID。 若要尋找可用的 VLAN 及子網路,請執行 ibmcloud oc vlans --zone <zone>
    subnet_id
    選用。 您要用於工作者節點的現有子網路 ID。 若要尋找現有子網路,請執行 ibmcloud oc subnets --provider classic --zone <zone>
    default_pool_size
    您要新增至預設工作者節點儲存區的工作者節點數目。
  3. 在 CLI 中,導覽至 Terraform 目錄。

    cd <terraform_directory>
    
  4. 執行指令以起始設定及規劃 Terraform 動作。 請檢閱計劃輸出,以確定已執行正確的動作。

    terraform init
    
    terraform plan
    
  5. 套用 Terraform 檔案以建立叢集。 然後,導覽至 IBM Cloud 主控台,以檢查叢集是否正在佈建。

    terraform apply
    

標準叢集的後續步驟