在 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 應用程式
- 公開應用程式的路徑
必要條件
-
請檢查您的許可權。 如果您是帳戶擁有者,則已具有建立叢集的必要許可權,並且可以繼續進行下一步。 如果您不是帳戶擁有者,請要求帳戶擁有者 設定 API 金鑰,並在 IBM Cloud IAM 中為您指派必要許可權。
建立一個 Red Hat OpenShift on IBM Cloud 叢集
-
登入您的帳戶和資源群組。 如果您有聯合帳戶,請包含
--sso選項。ibmcloud login [-g RESOURCE GROUP] [--sso] -
執行以下指令,在華盛頓特區建立一個版本為 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 -
叢集建立可能需要一點時間才能完成。 當叢集狀態顯示為「正常」後,叢集網路和 Ingress 元件還需要大約 10 分鐘,才能完成部署並更新您用於 Red Hat OpenShift 網頁控制台及其他路由的叢集網域。
-
列出叢集詳細資料。 檢閱叢集 State、檢查 Ingress Subdomain,並記下 Master URL。
ibmcloud oc cluster get --cluster CLUSTER_NAME_OR_ID -
下載並新增叢集的
kubeconfig配置檔。ibmcloud oc cluster config --cluster CLUSTER_NAME_OR_ID -
在瀏覽器中,導覽至 Master URL 的位址並附加
/console。 例如,https://c0.containers.cloud.ibm.com:23652/console。 -
透過檢查版本,驗證
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 主控台
- 從 主控台,選擇您的 Red Hat OpenShift 群集,然後按一下 OpenShift 網頁主控台。
- 若要在 CLI 中使用叢集,請按一下設定檔
IAM#user.name@email.com> 複製登入指令。 顯示oc login記號指令,並將其複製到您的指令行,以使用 CLI 進行鑑別。
將應用程式部署至您的叢集
-
為 Hello World 應用程式建立專案。
oc new-project hello-world -
從原始碼 使用
oc new-app指令來建置範例應用程式。oc new-app --name hello-world https://github.com/IBM/container-service-getting-started-wt --context-dir="Lab 1"輸出中可能會顯示警告訊息,但不會影響此範例。
-
列出 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 -
列出 Pod 並確定 hello-world Pod 狀態是 Running,且
build和deployPod 是 Completedoc 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 -
設定路徑,以便可以公用存取 hello world 服務。
oc create route edge --service=hello-world -n hello-world -
從 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 -
存取應用程式。 確保將
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!
整理教學資源
- 列出
hello-world專案中的資源。
輸出範例oc get all -l app=hello-world -o name -n hello-worldpod/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 - 刪除資源。
oc delete all -l app=hello-world -n hello-world
下一步為何?
安裝兩個常用的 Red Hat OpenShift on IBM Cloud 集群附加元件:IBM Cloud Logs 和 IBM Cloud Monitoring.