在 CLI 中設定第一個標準叢集

經典基礎設施

在本教學中,您將使用命令列介面 (CLI) 在經典基礎架構上部署一個 Red Hat OpenShift on IBM Cloud 叢集。

適用對象

本指導教學是針對想要瞭解如何使用 CLI 第一次建立 Red Hat OpenShift on IBM Cloud 叢集的叢集管理者所設計。

目標

在本教學中,您將完成以下任務。

  • 在華盛頓特區建立具有 2 個工作者節點 (具有 4 個核心和 16 GB 記憶體) 的叢集。
  • 開啟 Red Hat OpenShift 網頁控制台。
  • 部署範例應用程式。
  • 在路徑上公開應用程式,以便外部使用者可以存取服務。

你會得到什麼

在本指導教學中,您將使用 CLI 來建立下列資源。 如果您在完成指導教學之後不想要保留這些資源,則有一些選用步驟可刪除這些資源。

  • 具有 2 個工作者節點的標準叢集
  • 部署至叢集的簡式 Hello World 應用程式
  • 公開應用程式的路徑

叢集架構
叢集架構

必要條件

  1. 請檢查您的許可權。 如果您是帳戶擁有者,則已具有建立叢集的必要許可權,並且可以繼續進行下一步。 如果您不是帳戶擁有者,請要求帳戶擁有者 設定 API 金鑰,並在 IBM Cloud IAM 中為您指派必要許可權。

  2. 安裝 IBM Cloud CLI 工具

建立一個 Red Hat OpenShift on IBM Cloud 叢集

  1. 登入您的帳戶和資源群組。 如果您有聯合帳戶,請包含 --sso 選項。

    ibmcloud login [-g RESOURCE GROUP] [--sso]
    
  2. 執行以下指令,在華盛頓特區建立一個版本為 4.21 的叢集,該叢集包含 2 個工作節點,每個節點擁有 4 個核心和 16 GB 記憶體。

    ibmcloud oc cluster create classic --name my-tutorial-cluster --location wdc04 --version 4.21_openshift --flavor b3c.4x16  --workers 2 --public-service-endpoint
    
  3. 叢集建立可能需要一點時間才能完成。 當叢集狀態顯示為「正常」後,叢集網路和 Ingress 元件還需要大約 10 分鐘,才能完成部署並更新您用於 Red Hat OpenShift 網頁控制台及其他路由的叢集網域。

  4. 列出叢集詳細資料。 檢閱叢集 State、檢查 Ingress Subdomain,並記下 Master URL

    ibmcloud oc cluster get --cluster CLUSTER_NAME_OR_ID
    
  5. 下載並新增叢集的 kubeconfig 配置檔。

    ibmcloud oc cluster config --cluster CLUSTER_NAME_OR_ID
    
  6. 在瀏覽器中,導覽至 Master URL 的位址並附加 /console。 例如,https://c0.containers.cloud.ibm.com:23652/console

  7. 透過檢查版本,驗證 oc 指令是否針對您的叢集正常執行。

    oc version
    

    輸出範例

    Client Version: v4.21.0
    Kubernetes Version: v1.35.7.2
    

    若您無法執行需要管理員權限的操作(例如列出叢集中的所有工作節點或 Pod),請執行 ibmcloud oc cluster config --cluster CLUSTER_NAME_OR_ID --admin 指令,下載叢集管理員的 TLS 憑證及權限檔案。

導覽 Red Hat OpenShift 主控台

  1. 主控台,選擇您的 Red Hat OpenShift 群集,然後按一下 OpenShift 網頁主控台
  2. 若要在 CLI 中使用叢集,請按一下設定檔 IAM#user.name@email.com > 複製登入指令。 顯示 oc login 記號指令,並將其複製到您的指令行,以使用 CLI 進行鑑別。

將應用程式部署至您的叢集

  1. 為 Hello World 應用程式建立專案。

    oc new-project hello-world
    
  2. 從原始碼 使用 oc new-app 指令來建置範例應用程式。

    oc new-app --name hello-world https://github.com/IBM/container-service-getting-started-wt --context-dir="Lab 1"
    

    輸出中可能會顯示警告訊息,但不會影響此範例。

  3. 列出 hello-world 服務並記下服務名稱。 除非您為該服務建立路由,以便 Ingress 控制器能將外部流量請求轉發至該應用程式,否則您的應用程式將監聽這些內部叢集 IP 位址上的流量。

    oc get svc -n hello-world
    

    輸出範例

    NAME          TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    hello-world   ClusterIP   172.21.xxx.xxx   <none>       8080/TCP   31m
    
  4. 列出 Pod 並確定 hello-world Pod 狀態是 Running,且 builddeploy Pod 是 Completed

    oc get pods -n hello-world
    

    輸出範例

    NAME                  READY     STATUS             RESTARTS   AGE
    hello-world-1-9cv7d   1/1       Running            0          30m
    hello-world-1-build   0/1       Completed          0          31m
    hello-world-1-deploy  0/1       Completed          0          31m
    
  5. 設定路徑,以便可以公用存取 hello world 服務。

    oc create route edge --service=hello-world -n hello-world
    
  6. Host/Port 輸出取得路徑主機名稱位址。

    oc get route -n hello-world
    

    輸出範例

    NAME          HOST/PORT                         PATH                                        SERVICES      PORT       TERMINATION   WILDCARD
    hello-world   hello-world-hello.world.CLUSTER-NAME-RANDOM-ID.REGION.containers.appdomain.cloud    hello-world   8080-tcp   edge/Allow    None
    
  7. 存取應用程式。 確保將 https:// 附加到路徑主機名稱。 可能需要一分鐘才能看到公開的服務。

    curl https://hello-world-hello-world.CLUSTER-NAME-RANDOM-ID.REGION.containers.appdomain.cloud
    

    輸出範例

    Hello world from hello-world-9cv7d! Your app is up and running in a cluster!
    

整理教學資源

  1. 列出 hello-world 專案中的資源。
    oc get all -l app=hello-world -o name -n hello-world
    
    輸出範例
    pod/hello-world-1-dh2ff
    replicationcontroller/hello-world-1
    service/hello-world
    deploymentconfig.apps.openshift.io/hello-world
    buildconfig.build.openshift.io/hello-world
    build.build.openshift.io/hello-world-1
    imagestream.image.openshift.io/hello-world
    imagestream.image.openshift.io/node
    route.route.openshift.io/hello-world
    
  2. 刪除資源。
    oc delete all -l app=hello-world -n hello-world
    

下一步為何?

安裝兩個常用的 Red Hat OpenShift on IBM Cloud 集群附加元件:IBM Cloud LogsIBM Cloud Monitoring.