Red Hat OpenShift on IBM Cloud 上的可擴充 Web 應用程式
本指導教學可能會產生成本。 使用「成本估算器」根據您的預計用量生成成本估算。
本指導教學將逐步引導您如何從遠端 Git 儲存庫將應用程式部署至 Red Hat OpenShift on IBM Cloud 叢集,在路徑上公開應用程式,監視環境性能,以及調整應用程式。 此外,您將學習如何使用專用儲存器登錄、從專用 Git 儲存庫部署應用程式,以及將自訂網域連結至應用程式。
使用 Red Hat OpenShift on IBM Cloud,您可以使用隨 OpenShift Container Platform一起安裝的工作者節點來建立 Kubernetes 叢集。 有關 OpenShift Container Platform 架構的詳細資訊,請參閱 Red Hat OpenShift docs。 您可以取得叢集的所有 受管理服務的優點。
目標
- 將 Web 應用程式部署至 Red Hat OpenShift on IBM Cloud 叢集。
- 連結自訂網域。
- 監視叢集的日誌和性能。
- 調整 Red Hat OpenShift on IBM Cloud Pod。

- 開發人員使用遠端 Git 儲存庫中的程式碼來部署 Web 應用程式。 開發人員也可以選擇性地將程式碼推送至 IBM Cloud上的專用 Git 儲存庫。
- 容器映像由程式碼建立。
- 映像檔會推送至叢集隨附的本端容器登錄,或推送至 IBM Cloud Container Registry中的名稱空間。
- 應用程式透過拉取映像部署到 Red Hat OpenShift on IBM Cloud 集群。
- 使用者透過公用路徑存取應用程式。
開始之前
本指導教學需要:
- IBM Cloud CLI,
- IBM Cloud Kubernetes Service 外掛程式 (
kubernetes-service
), - (選用) Container Registry 外掛程式 (
container-registry
)
- IBM Cloud Kubernetes Service 外掛程式 (
- Docker 引擎、
oc
以與 Red Hat OpenShift on IBM Cloud互動,git
以複製原始碼儲存庫,- (選用) IBM Cloud GitLab 已配置 SSH 金鑰。 請檢查 這裡說明文件 的
Generate an SSH key pair
及Add an SSH key to your GitLab account
小節下的指示
您將在 指導教學入門 手冊中找到針對您的作業環境下載及安裝這些工具的指示。
若要避免安裝這些工具,您可以從 IBM Cloud 主控台使用 Cloud Shell。 使用 oc version
來確保 Red Hat OpenShift on IBM Cloud CLI 的版本符合叢集版本 (4.13.x
)。如果它們不相符,請遵循 這些指示 來安裝相符版本。
此外,請確定 設定登錄名稱空間。
建立 Red Hat OpenShift on IBM Cloud 叢集
使用 Red Hat OpenShift on IBM Cloud,您可以快速且安全的方式在 Kubernetes 叢集上容器化及部署企業工作量。Red Hat OpenShift on IBM Cloud 叢集在 Kubernetes 儲存器編排上建置,可為開發生命週期作業提供一致性和彈性。
在此區段中,您將在具有兩個 (2) 工作者節點的一個 (1) 區域中佈建 Red Hat OpenShift on IBM Cloud 叢集:
- 從 IBM Cloud® 型錄 建立 Red Hat OpenShift on IBM Cloud 叢集。
- 在 基礎架構 下選擇 VPC 或 標準,
- 對於在 VPC 基礎架構上的 Red Hat OpenShift on IBM Cloud,您必須在建立群集之前先建立一個 VPC 和一個子網路。 建立或使用現有 VPC 時請記住下列需求:
- 一個可用於本指導教學的子網路,請記下子網路的區域和名稱。
- 公用閘道已連接至子網路,如需詳細資料,請參閱 建立 VPC 叢集。
- 對於在 VPC 基礎架構上的 Red Hat OpenShift on IBM Cloud,您必須在建立群集之前先建立一個 VPC 和一個子網路。 建立或使用現有 VPC 時請記住下列需求:
- 在位置下,
- 若為 VPC 基礎架構上的 Red Hat OpenShift on IBM Cloud
- 取消勾選不適用的區域和子網路。
- 在想要的區域中驗證想要的子網路名稱,如果不存在,請按一下編輯鉛筆以選取想要的子網路名稱
- 若為標準基礎架構上的 Red Hat OpenShift on IBM Cloud:
- 選取資源群組。
- 選取 地理位置。
- 選取 單一區域 作為 可用性。
- 選擇工作區。
- 如需詳細資料,請參閱 建立標準叢集 指示。
- 若為 VPC 基礎架構上的 Red Hat OpenShift on IBM Cloud
- 將 OpenShift 版本 設為 4.13.x (附註: 如果您選擇使用 4.15.xx 及更高版本,則需要關閉 出埠資料流量保護)。
- 選取 OpenShift Container Platform (OCP) 授權。
- 在工人池下、
- 選取 4 vCPUs 16GB 記憶體 作為特性。
- 針對本指導教學,選取 2 每個資料中心的工作者節點 (如果您選取標準基礎架構: 離開 加密本端磁碟)。
- 在 叢集詳細資料下:
- 設定群集名稱為
myopenshiftcluster
。 - 選取 資源群組 (如果您已選取 VPC 基礎架構)。
- 設定群集名稱為
- 按一下 建立,以佈建 Red Hat OpenShift on IBM Cloud 叢集。
記下上面選取的資源群組。 這個相同的資源群組將用於這個實驗室中的所有資源。
配置 CLI
在此步驟中,您將配置 oc
以指向新建立的叢集。 Red Hat OpenShift on IBM Cloud Container Platform CLI 提供管理應用程式的指令,以及與系統各元件互動的低階工具。 該 CLI 可透過 oc
指令使用。
- 當叢集備妥時,按一下 OpenShift Web 主控台 以開啟主控台。
- 在 Web 主控台上,從頁面右上方的下拉功能表中,按一下 複製登入指令,然後按一下 顯示記號 鏈結。
- 複製 在 使用此記號登入下找到的文字。
- 使用
oc login
指令登入後,執行下列指令即可查看群集中的所有命名空間。oc get ns
建立新的 Red Hat OpenShift on IBM Cloud 應用程式
在此區段中,您將建立 Red Hat OpenShift on IBM Cloud 專案,然後從 GitHub 儲存庫部署應用程式。 此應用程式的程式碼是簡式 Node.js 登陸頁面及兩個 API 端點,以開始使用。 您一律可以根據自己的探索需求來延伸此應用程式。
建立專案
Kubernetes 名稱空間提供了限定叢集裡資源範圍的機制。 在 Red Hat OpenShift on IBM Cloud 中,專案是具有額外註釋的 Kubernetes 名稱空間。
- 定義名為
MYPROJECT
的環境變數,並將<your-initials>
取代為您自己的首字母,以設定應用程式名稱:export MYPROJECT=<your-initials>-openshiftapp
- 建立新專案。
使用上述指令建立專案之後,您會自動切換至該專案,以及隨後在該專案環境定義中執行的所有指令。 如果您需要在稍後階段切換專案或回到該專案,請使用oc new-project $MYPROJECT
oc project $MYPROJECT
指令。
部署應用程式
使用 oc new-app
指令,您可以從本端或遠端 Git 儲存庫中的原始碼建立應用程式。
-
使用
docker
建置策略來建立應用程式,以從儲存庫中的 Dockerfile 建置容器映像檔。 為了簡單起見,您將應用程式名稱設為專案名稱。oc new-app https://github.com/IBM-Cloud/openshift-node-app --name=$MYPROJECT --strategy=docker --as-deployment-config
建立新的應用程式時,如果 Jenkins 檔案存在於來源儲存庫的根目錄或指定的環境定義目錄中,則 Red Hat OpenShift on IBM Cloud 會產生
pipeline
建置策略。 否則,它會產生source
建置策略。 您一律可以設定--strategy
旗標來置換建置策略。 -
若要檢查建置器儲存器映像檔建立並推送至內部 Red Hat OpenShift on IBM Cloud Container Registry (OCR),請執行下列指令。
oc logs -f buildconfig/$MYPROJECT
您的群集已設定為內含 Red Hat OpenShift on IBM Cloud Container Registry,因此 Red Hat OpenShift on IBM Cloud 可以在群集內自動建立、部署和管理應用程式生命週期。
-
請等待建置成功,並推送映像檔。 您可以執行下列指令來檢查部署及服務的狀態。
oc status
透過 IBM 提供的網域存取應用程式
若要存取應用程式,您需要建立路由。 路徑用於向外界公佈您的服務。
-
在終端機執行以下指令,建立路由。
oc expose service/$MYPROJECT
-
您可以透過 IBM 提供的網域存取應用程式。 執行以下指令以取得 URL。
oc get route/$MYPROJECT
-
複製 HOST/PORT 值下的主機名稱的值,並將 URL 貼到瀏覽器中,即可在
http://<hostname>
上看到您的應用程式正在運作。 請務必在 URL 中使用http
。 -
設定指向主機名稱的環境變數。
export HOST=<hostname>
保護 IBM 提供的預設網域路徑
- 若要建立使用 Red Hat OpenShift on IBM Cloud 的預設憑證加密的安全 HTTPS 路徑,可以使用
create route
指令。oc create route edge $MYPROJECT-https --service=$MYPROJECT --port=3000
- 要取得 HTTPS 主機 URL,請執行
oc get routes
。 將 URL 與 HTTPS (https://<HOST>
) 複製並貼在瀏覽器中的路由 $MYPROJECT-https 旁邊。 這時您可以在 URL 中使用https
。
監視應用程式
在此章節中,您將瞭解如何監視應用程式的性能和效能。 OpenShift Container Platform 隨附預先配置且自行更新的監視和警示堆疊。
- 從終端機執行包含路由 URL 的指令,以產生載入。 指令會將要求無限傳送至應用程式。
while sleep 1; do curl --max-time 2 -s http://$HOST/load/50; done
- 在 OpenShift Web 主控台中,切換至 管理者 視圖。
- 在 觀察下,選取 度量值。
- 在表示式方框中,輸入下面的表示式,將
<MYPROJECT>
取代為您的專案名稱,然後按一下 執行查詢,以查看圖形中的儲存器 CPU 使用率總計 (以秒為單位)。sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace="<MYPROJECT>"}) by (container)
- 在 觀察下,選取 儀表板。
- 按一下 儀表板 下拉清單,然後選取 Kubernetes /計算資源/名稱空間 (工作量)。
- 將 名稱空間 變更為您的專案。
- 將 時間範圍 設為 前 5 分鐘。
- 檢查 CPU 和記憶體用量。
- 使用
control+C
停止上述 Script。 - 若要進行記載,可以使用內置的
oc logs
指令。 請檢查 檢視資源的日誌,以瞭解oc logs
的使用情形。
您還可以佈建並使用 IBM Cloud Logs 和 IBM Cloud Monitoring 服務來對 Red Hat OpenShift on IBM Cloud 應用程式進行記載和監視。 按照 此連結 提及的指示設定記錄和監控附加元件,以監控群集的健康狀況。
調整應用程式
在本節中,您將學習如何手動和自動調整應用程式的大小。
手動調整大小
- 您可以使用
oc scale
指令來實現手動調整 Pod。 指令為部署組態或複製控制器設定新的大小oc scale dc/$MYPROJECT --replicas=2
- 您可以透過執行
oc get pods
指令看到新的 Pod 正在佈建中。 - 重新執行 監視 步驟,以查看更新的度量值。
自動調整
您可以使用水平 Pod Autoscaler (HPA) 來指定 Red Hat OpenShift on IBM Cloud 應該如何根據從屬於該 dc
或 rc
的 Pod 收集的度量值,自動增加或減少部署配置 (dc) 或抄寫控制器 (rc) 的規模。
- 您必須先在叢集裡執行的 Pod 上設定資源限制,然後才能設定 Pod 的自動調整。 限制可讓您選擇 Pod 的 CPU 及記憶體用量下限及上限。 您可以使用
oc set resources
指令來設定容器上的限制及要求。
如果要驗證,請執行oc set resources dc/$MYPROJECT --limits=cpu=250m,memory=512Mi --requests=cpu=100m,memory=256Mi
oc describe dc/$MYPROJECT
,並尋找Limits
和Requests
。 - 若要建立 autoscaler,您需要執行
oc autoscale
指令,並針對所有 Pod 可由 autoscaler 設定的 Pod 數目及目標平均 CPU 使用率 (以所要求 CPU 的百分比表示) 設定下限 (下限) 及上限 (上限)。 對於測試,讓我們將--cpu-percent
設為 5%。oc autoscale dc/$MYPROJECT \ --min=1 \ --max=5 \ --cpu-percent=5
- 重新執行 監視 步驟,以在應用程式上產生負載。
- 您可以透過執行
oc get pods --watch
指令或在 Web 主控台中查看應用程式,來查看正在佈建的新 Pod。 - 移除自動調整程式:
oc delete hpa/$MYPROJECT
(選用) 建置容器映像檔並將其推送至 Container Registry
在本節中,您將學習如何使用遠端專用 Container Registry 來儲存已建立的容器映像檔。
IBM Cloud Container Registry 提供 IBM 所管理的多方承租戶、高可用性、可擴充且加密的專用映像檔登錄。 您可以設定自己的映像檔名稱空間,並將容器映像檔推送至名稱空間,來使用 IBM Cloud Container Registry。
-
若要辨識您的 Container Registry URL,請執行:
ibmcloud cr region
-
定義名為「
MYREGISTRY
」的環境變數,指向註冊表,例如:export MYREGISTRY=us.icr.io
-
挑選其中一個現有登錄名稱空間,或建立新的項目。 若要列出現有名稱空間,請使用:
ibmcloud cr namespaces
若要建立新的名稱空間,請執行下列指令:
ibmcloud cr namespace-add <REGISTRY_NAMESPACE>
-
定義指向登錄名稱空間且名稱為
MYNAMESPACE
的環境變數:export MYNAMESPACE=<REGISTRY_NAMESPACE>
-
定義環境變數名稱
API_KEY
,指向 IBM Cloud IAM API 金鑰:export API_KEY=<YOUR_API_KEY>
若要建立 API 金鑰,請參閱此 鏈結。
-
若要自動存取您的註冊表命名空間,並將產生的建置容器映像推送到 Container Registry,請建立一個秘密:
oc create secret docker-registry push-secret --docker-username=iamapikey --docker-password=$API_KEY --docker-server=$MYREGISTRY
-
將映像檔取回密碼從
default
專案複製並修補至專案:oc get secret all-icr-io -n default -o yaml | sed 's/default/'$MYPROJECT'/g' | oc -n $MYPROJECT create -f -
-
若要影像拉取秘訣生效,您需要在
default
服務帳號中加入該秘訣:oc secrets link serviceaccount/default secrets/all-icr-io --for=pull
複製範例應用程式
在此區段中,您將複製 GitHub 儲存庫,該儲存庫隨附範本檔及 Shell Script,以從先前建立的環境變數產生 yaml
檔。 產生的檔案用來建置容器映像檔、將映像檔推送至專用容器登錄,以及部署新的應用程式。
- 在終端機中,執行下列指令,將 GitHub 儲存庫複製到您的機器:
git clone https://github.com/IBM-Cloud/openshift-node-app
- 變更至應用程式目錄:
cd openshift-node-app
更新 BuildConfig 並將建置器映像檔推送到 Container Registry
在此步驟中,您執行 Script 以更新 openshift.template.yaml
檔案的區段,並產生指向 Container Registry 名稱空間的新 yaml
檔案。
-
執行下列 Bash Script,以更新
openshift.template.yaml
檔案中的位置保留元,並產生 openshift_private_registry.yaml 檔案。./generate_yaml.sh use_private_registry
-
從輸出執行匯出指令,以使用新的應用程式名稱來設定現有的
MYPROJECT
環境變數。 執行echo $MYPROJECT
以查看新的應用程式名稱。 -
選擇性地檢查產生的
openshift_private_registry.yaml
檔案,以查看是否已使用個別環境變數更新所有位置保留元。 下面是 3 個快速檢查的位置。 您可以跳至下一節。 -
選用 尋找 name 屬性設為專案 (
$MYPROJECT
) 的 ImageStream 物件,並檢查spec
的dockerImageRepository
定義下是否已更新位置保留元$MYREGISTRY
、$MYNAMESPACE
及$MYPROJECT
- apiVersion: image.openshift.io/v1 kind: ImageStream metadata: annotations: openshift.io/generated-by: OpenShiftNewApp creationTimestamp: null labels: app: $MYPROJECT app.kubernetes.io/component: $MYPROJECT app.kubernetes.io/instance: $MYPROJECT name: $MYPROJECT spec: dockerImageRepository: $MYREGISTRY/$MYNAMESPACE/$MYPROJECT lookupPolicy: local: false status: dockerImageRepository: ""
映像檔串流及其關聯標籤提供了抽象概念,用於參照 Red Hat OpenShift on IBM Cloud Container Platform 中的容器映像檔
-
選用 檢查
BuildConfig
下的spec
區段,以取得已更新name
下的輸出集至類型DockerImage
及位置保留元。spec: nodeSelector: null output: to: kind: DockerImage name: $MYREGISTRY/$MYNAMESPACE/$MYPROJECT:latest pushSecret: name: push-secret
建置是將輸入參數轉換為結果物件的程序。 通常,該程序用於將輸入參數或原始碼轉換為可執行的映像檔。
BuildConfig
物件是整個建置程序的定義。 -
選用 搜尋
containers
,請檢查image
及name
containers: - image: $MYREGISTRY/$MYNAMESPACE/$MYPROJECT:latest name: $MYPROJECT
-
如果已更新,請 儲存 YAML 檔案。
使用 IBM Cloud Container Registry 來部署應用程式
在本節中,您將使用產生的 openshift_private_registry.yaml 檔案將應用程式部署到群集。 部署後,您將藉由建立路徑來存取應用程式。
-
使用更新的 yaml 建立新的 OpenShift 應用程式以及 buildconfig(bc)、deploymentconfig(dc)、service(svc)、imagestream(is)。
oc apply -f openshift_private_registry.yaml
-
若要檢查建立容器映像並將其推送到 Container Registry,請執行以下指令。
oc logs -f bc/$PRIVREG
在日誌中,如果將容器映像檔推送至專用容器登錄,則您應該會看到下列訊息。
Pushing image us.icr.io/mods15/vmac-openshift-app-registry:latest ... Getting image source signatures Copying blob sha256:9d038e1c7afbe92c29313557c02110e8fb796818ebb78441c68929381103a94b Copying blob sha256:61c671f49591a059c9b6728a9f84c16f5b00126470112ee9c9f9e01dbbfcc3ea Copying blob sha256:e2787650308235c87eff7d2b88c3ab217e84b74a3fa9696103bd46bb99068c7a Copying blob sha256:dcef409117430ed9906a59ad0a3ea0752061fbf8a9e544f4edd77667a25d85ae Copying blob sha256:a1f889dd610c6510c7fc091a51c247463f3cc9a7c67bdc397c9632168808f7d2 Copying blob sha256:bd278801acd18ada10f43b732113a6fffc163011862ea6cde729f8dc59e64222 Copying blob sha256:2d6c03ed5d15be86cdef7d9c0c9fea40a3f6b89662bca59680d037074f52bb38 Copying blob sha256:fa2ef7f80d6fc9543f6eb472846931ed1cec2b5f776d1b67bcb1b9942e1a947e Copying blob sha256:ff5a4e4d3690ccc931900b63714d326cc53a58e644f8d0a4f06bf8c62f11c5c7 Copying config sha256:01aa1ebb7be74529867106100c4e699ca2ae87f8242460771527f772e6a3d174 Writing manifest to image destination Storing signatures Successfully pushed us.icr.io/mods15/vmac-openshift-app-registry@sha256:6847b889397704b9fb8c3122c84b505c3dc5f99a0669fb69f534d3504eec385d Push successful
-
您可以檢查部署和服務的狀態。
oc status
-
手動匯入最新映像檔串流,以確保儘快進行部署。
oc import-image $PRIVREG
如果部署花費更多時間,您也可以使用指令。如需相關資訊,請參閱此 鏈結。
-
公開服務以建立新的路徑。
oc expose service/$PRIVREG
-
您可以透過 IBM 提供的網域存取應用程式。 執行以下指令以取得 URL。
oc get route/$PRIVREG
-
複製 HOST/PORT 值下的主機名稱的值,並將 URL 貼到瀏覽器中,即可在
http://<hostname>
上看到您的應用程式正在運作。 請務必在 URL 中使用http
。您應該會看到相同的應用程式公開在不同的路徑上,並使用儲存在專用容器登錄中的容器映像檔進行部署。
(選用) 將程式碼推送至專用 IBM Cloud Git 儲存庫
在這個步驟中,您將建立一個私有的 IBM Cloud Git 儲存庫,並推送範例應用程式程式碼。 您還將學習如何在應用程式更新時自動建立和重新部署。
您需要配置 SSH 金鑰才能順利完成推送,請檢閱 說明文件 中 Generate an SSH key pair
及 Add an SSH key to your GitLab account
小節下的指示。
-
在瀏覽器中,開啟 IBM Cloud Git。
以上鏈結適用於
us-south
地區。 對於其他地區,請執行ibmcloud regions
,並將 URL 中的us-south
取代為地區名稱。 -
按一下 新建專案,按一下 建立空白專案,然後提供
openshiftapp
作為專案名稱。 -
將 可見性層次 設為 專用。
-
在 專案配置 下,移除 使用 README 來起始設定儲存庫旁的勾號。
-
按一下建立專案、
-
遵循 Git 廣域設定 及 推送現有 Git 儲存庫 區段下的指示,以設定 Git 並推送範例應用程式碼。
-
將程式碼推送到私人儲存庫後,您應該可以在專案中看到範例程式碼。
建立 Git 部署記號
在本節中,您將建立 Git 部署令牌,以允許唯讀存取您的儲存庫。
若要產生部署標記:
- 在 Git repo 頁面的導覽面板中,按一下設定 > 儲存庫。
- 按一下部署記號旁邊的展開。
- 在 名稱 欄位中,輸入
foropenshift
,然後在 範圍下選取 read_repository。 最後按一下 建立部署記號。 - 保存生成的使用者名稱和密碼,以備將來參考。
- 在 名稱 欄位中,輸入
- 在導覽面板中,點選專案總覽,然後點選 Clone,複製 Clone with HTTPS URL。 儲存 URL 以供未來參照。
- 為使用者名稱、密碼和私人 Git repo URL 定義環境變數,以便在稍後的教學中與 YAML 檔案一起使用
export GIT_TOKEN_USERNAME=<PRIVATE_GIT_DEPLOY_TOKEN_USERNAME> export GIT_TOKEN_PASSWORD=<PRIVATE_GIT_DEPLOY_TOKEN_PASSWORD> export REPO_URL=<PRIVATE_GIT_REPO_URL>
使用專用登錄及專用儲存庫中的程式碼來部署新的應用程式
-
執行下列 Bash Script,以更新
openshift.template.yaml
檔中的位置保留元,並產生 openshift_private_repository.yaml 檔。./generate_yaml.sh use_private_repository
-
從輸出執行匯出指令,以使用新的專案名稱來設定現有的
MYPROJECT
環境變數。 -
除了專用儲存器登錄位置保留元之外,該 Script 還會將
BuildConfig
規格下的REPO_URL
取代為您在上述步驟中設定的環境變數。source: git: uri: $REPO_URL type: Git
-
使用更新的 yaml 建立新的 openshift 應用程式,以及 buildconfig(bc)、deploymentconfig(dc)、service(svc)、imagestream(is)
oc apply -f openshift_private_repository.yaml
-
您可以檢查建置器日誌。
oc logs -f bc/$PRIVREPO
-
您可以使用此功能檢查部署和服務的狀態。
oc status
-
手動匯入最新映像檔串流,以確保儘快進行部署。
oc import-image $PRIVREPO
-
公開服務以建立新的路徑。
oc expose service/$PRIVREPO
-
您可以透過 IBM 提供的網域存取應用程式。 執行以下指令以取得 URL。
oc get route/$PRIVREPO
-
複製 HOST/PORT 值下的主機名稱的值,並將 URL 貼到瀏覽器中,即可在
http://<hostname>
上看到您的應用程式正在運作。 請務必在 URL 中使用http
。使用專用 Git 儲存庫中的程式碼及專用登錄名稱空間中的容器映像檔來部署新的應用程式。
更新應用程式並重新部署
在此步驟中,您將自動化建置和部署程序。 每當您更新應用程式並將變更推送至專用儲存庫時,即會執行新的建置,以產生新版本的儲存器映像檔。 然後會自動部署此映像檔。
-
您將建立新的 GitLab Webhook 觸發程式。 Webhook 觸發程式容許您藉由向 Red Hat OpenShift on IBM Cloud Container Platform API 端點傳送要求來觸發新建置。可以使用 GitHub、GitLab、Bitbucket 或通用 Webhook 來定義這些觸發程式。
oc set triggers bc $PRIVREPO --from-gitlab
-
若要在 GitLab 儲存庫上新增 Webhook,您需要 URL 和密碼
- 對於 Webhook GitLab URL:
oc describe bc/$PRIVREPO | grep -A 1 "GitLab"
- 對於需要在 Webhook URL 中傳遞的密碼:
oc get bc/$PRIVREPO -o yaml | grep -A 3 "\- gitlab"
- **代替 **
<secret>
在 webhook GitLab URL 中使用上面指令輸出中的 gitlab 下的 secret 值。
- 對於 Webhook GitLab URL:
-
使用 Git repo HTTPS 連結在瀏覽器中開啟您的私人 git repo,然後按一下設定,再按一下 Webhooks。
-
貼上 URL,選擇推送事件 為觸發器,然後按一下新增 webhook。 您應該會看到
Webhook was created
訊息。 -
更新映像檔串流的 ImagePolicy,以按預定時間間隔查詢 Container Registry 來同步標籤和映像檔 meta 資料。 這將更新
tags
定義。oc tag $MYREGISTRY/$MYNAMESPACE/${PRIVREPO}:latest ${PRIVREPO}:latest --scheduled=true
-
在 IDE 中開啟已複製的套件庫,更新本機檔案的
h1
標籤,並變更為。public/index.html 檔案的標籤,並將其變更為Congratulations! <insert your name>
。 -
儲存並將程式碼推送至儲存庫。
git add public/index.html
git commit -m "Updated with my name"
git push -u origin master
-
可以使用
oc status
指令來檢查建置和部署的進度。 部署成功後,請重新整理路徑主機位址以查看更新的 Web 應用程式。有時,部署可能最長需要 15 分鐘才能匯入最新的映像檔串流。 您可以等待或使用
oc import-image $PRIVREPO
指令手動匯入。 如需相關資訊,請參閱此 鏈結。
(可選)使用您自己的自訂網域
本節需要您擁有自訂網域,並且能夠修改網域的 DNS 記錄。 您需要建立 CNAME
記錄,以指向 IBM提供的網域。
視您的 DNS 提供者而定,設定 CNAME 記錄的步驟有所不同。 在您網域的 DNS Management/Zone 下,新增 CNAME
記錄,將 Host(name) 設定為 openshiftapp
或任何您喜歡的子網域,並將 Points 設定為 IBM網域,不含 HTTP 或 HTTPS
使用 HTTP
- 以您的主機名稱 (例如 www.example.com 或 openshiftapp.example.com ) 取代
<HOSTNAME>
,建立一個路由,以主機名稱揭露服務,這樣外部用戶端就可以透過名稱存取服務。oc expose svc/$PRIVREPO --hostname=<HOSTNAME> --name=$PRIVREPO-domain --port=3000
- 從以下網址存取您的申請表
http://<HOSTNAME>/
使用 HTTPS
- 要建立安全的 HTTPS 路由,您可以使用自己的憑證和來自 Let's Encrypt 等 CA 的金鑰檔案,或透過以下方式訂購 Secrets Manager.
請使用
create route
指令傳遞它們。
在此,您使用了邊緣終止。 若要瞭解其他安全路徑及終止類型 (例如透通及重新加密),請執行oc create route edge $PRIVREPO-httpsca --service=$PRIVREPO --cert=example.pem --key=example.key --hostname=<www.HOSTNAME> --port=3000
oc create route --help
指令)
移除資源
-
刪除應用程式特定的所有資源物件:
oc delete all --selector app=$PRIVREPO oc delete all --selector app=$PRIVREG oc delete all --selector app=$MYPROJECT
若要列出專案中的應用程式名稱,請執行
oc get svc | awk '{print $1}'
-
刪除專案:
oc delete project $MYPROJECT
-
刪除應用程式儲存庫:
- 在 Git 儲存庫頁面的導覽畫面中,按一下 設定 > 一般。
- 按一下 進階旁邊的 展開。
- 按一下 刪除專案,並確認刪除專案。
-
從 Container Registry刪除容器映像檔:
- 使用瀏覽器,導覽至 Container Registry 的儲存庫頁面。
- 選取在本指導教學中建立的映像檔並刪除它們。
-
刪除您已建立的叢集。