Openshift - Cluster 安裝簡述
OpenShift 是一基於 Kubernetes 的企業及容器化平台,無論是私有雲、公有雲或是任一環境中都能透過不同的部屬方式與模式來快速達成部屬及安裝。
1. OpenShift Cluster 安裝簡介
在 Redhat OpenShift 3.x 系列的版本安裝步驟十分複雜且繁瑣, OpenShift 改善了整體安裝流程,將大部份事情自動化、減少人為操作安裝等。 區分為兩種安裝方法 ( IPI 與 UPI ):
Action | Full-stack Automation (IPI) | Pre-existing Infrastructure (UPI) |
---|---|---|
Build network | Installer | User |
Setup load balancer | Installer | User |
Configure DNS | Installer | User |
Hardware or VM provisioning | Installer | User |
OS installation | Installer | User |
Generate ignition configs | Installer | Installer |
Control plane node OS support | Installer: RHCOS | User: RHCOS |
Compute node OS support | Installer: RHCOS | User: RHCOS + RHEL 8 |
Configure persistent storage for the internal registry | Installer | User |
Configure dynamic storage provider | Installer | User |
Configure node provisioning and cluster autoscaling | Installer | Only for providers with OpenShift Machine API support |
2. Ignition 設定
要安裝 OpenShift Cluster 容器化平台,需透過 openshift-install 安裝程式,藉由此設定產生 Ignition 設定檔 ( JSON 格式) 來定義 RHCOS 系統的所需狀態。
|
|
3. OpenShift 安裝過程
安裝步驟圖例
- 使用 install-config.yaml 定義 Cluster 資訊 (或是透過交互式問題產生)
|
|
|
|
-
從安裝 install-config.yaml 中創建 Kubernetes 清單,其中清單包含所有 OpenShift 安裝時所需資源 ( 此步驟可省略 )。
-
透過定義的 install-config.yaml 或是 Kubernetes 清單 產生
bootstrap.ign
、master.ign
及worker.ign
Ignition 檔案。 -
Bootstrap Node 透過
bootstrap.ign
進行引導安裝作業,其中藉由靜態的 POD 產生一個 k8s 來執行運作安裝。 -
Master Node 透過
master.ign
進行引導安裝。 -
Bootstrap Node 將臨時的 ETCD 轉移給 Master Node 後,並可以關閉 Bootstrap Node 。
-
其餘 Worker Node 使用
worker.ign
向 master 進行引導安裝。
4. OpenShift DNS 先決條件
OpenShift 高度依賴於 DNS 正向解析與反向解析,故須使用 DNS 其形式如下: <component>.<cluster_name>.<base_domain>
。
- <cluster_name> 是 Cluster 的名稱,例如 ocp4 。
- <base_domain> 為 cluster 的基本網域名稱, 例如 example.com 。
component | 名稱解析 | 描述 |
---|---|---|
Kubernetes API | api.<cluster_name>.<base_domain>. |
DNS A 和 PTR 記錄,用於表示 master 節點的 API 負載平衡。 |
Kubernetes API | API-int.<cluster_name>.<base_domain>. |
DNS A 和 PTR 記錄,用於表示 master 節點的 API 負載平衡。 |
路線 | *.apps.<cluster_name>.<base_domain>. |
DNS A 記錄,用於表示路由器 Pod 的 cluster 節點的應用程式入口負載平衡。 |
群集節點 | <name>.<cluster_name>.<base_domain>. |
DNS A 和 PTR 記錄,用於表示每個 cluster 節點,包括引導節點。 |
5. OpenShift Firewall 規則
- Node 對 Node 需開通防火牆規則
Protocol | Port | Description |
---|---|---|
ICMP | N/A | 測試網路通聯 |
TCP | 9000-9999 | 主機服務 |
TCP | 10250-10259 | K8s 保留 |
TCP | 10256 | openshift-sdn |
UDP | 4789 | VXLAN 與 Geneve |
UDP | 6081 | VXLAN 與 Geneve |
UDP | 9000-9999 | 主機服務 |
TCP/UDP | 30000-32767 | K8s node port |
- Node 對 Master Node 需開通防火牆規則
Protocol | Port | Description |
---|---|---|
TCP | 2379-2380 | etcd |
TCP | 6443 | Kubernetes API |
- 負載平衡需開通防火牆規則
TCP Port | Back-end nodes | Description |
---|---|---|
6443 | Master Node | Kubernetes API server |
22623 | Master Node | Machine Config server |
443 | Worker (Infra) Node | HTTPS 流量 |
80 | Worker (Infra) Node | HTTP 流量 |
6. OpenShift 安裝模式
依據是否能直接存取外部網路可以取分下列兩種安裝模式 :
-
可直接存取外部網路 :
Cluster 具有 Internet 存取能力,可以直接從 quay.io 與 registry.redhat.io 上直接拉取 Image 使用全自動或是 UPI 基礎架構安裝方式。
-
無法直接存取外部網路 :
如果無法直接存取外部網路,只能透過私有的 Image 倉庫預先鏡像 Image 在進行安裝, 相關步驟可以參考 HowHow 網站的 Openshift - Quay 本地私有 Registry 倉庫。
7. 小結
OpenShift 安裝在官方網站 Installation overview | Installing | OpenShift Container Platform 4.12 有詳細步驟說明,對於打造一座 Cluster 在生產環境需要決定跟規劃後才往下執行。
如果你還沒有註冊 Like Coin,你可以在文章最下方看到 Like 的按鈕,點下去後即可申請帳號,透過申請帳號後可以幫我的文章按下 Like,而 Like 最多可以點五次,而你不用付出任何一塊錢,就能給我寫這篇文章的最大的回饋!