官术网_书友最值得收藏!

3.2.1 OpenShift部署方式與過程說明

1.OpenShift部署方式介紹

OpenShift支持的部署基礎架構有兩種類型:

·Installer-Provisioned Infrastructure,簡稱IPI。

·User-Provisioned Infrastructure,簡稱UPI。

使用IPI方式部署OpenShift,絕大多數具體的配置工作都由Installer完成,因此部署過程非常簡單。使用UPI方式部署OpenShift,需要進行很多手工配置。

無論采用IPI方式還是UPI方式部署,OpenShift集群中的Master節點都必須使用Red Hat CoreOS(簡稱RHCOS)操作系統。如果使用IPI方式安裝,Worker節點也必須使用RHCOS操作系統,但采用UPI安裝,Worker節點可以選擇使用RHCOS操作系統或RHEL操作系統。但出于統一管理和維護的考慮,我們建議Woker節點也使用RHCOS操作系統。

幾乎所有的基礎設施都支持使用UPI方式部署,目前OpenShift 4.6支持IPI方式部署的基礎架構有:

·AWS

·Azure

·GCP

·Red Hat OpenStack

·RHV

·VMware vSphere

·X86物理服務器

目前OpenShift 4.6支持UPI模式部署的基礎架構有:

·AWS

·Azure

·GCP

·Red Hat OpenStack

·VMware vSphere

·X86物理服務器

·IBM Z

·IBM Power

可以看到,OpenShift支持的基礎設施類型很多,在不同類型的基礎設施上的部署過程也大同小異。本節我們會大致說明通用安裝過程,然后演示以Bare metal模式離線安裝OpenShift的示例。

在Repo中的“OpenShift 4.5.3在Openstack上的UPI離線安裝”記錄了在OpenStack上離線安裝OpenShift的過程,供讀者參考。本書第1版中的OpenShift 3的安裝步驟請參考Repo中的“OpenShift 3.11安裝”。在第6章,我們將介紹如何在AWS中國區部署OpenShift。更多OpenShift部署的細節請參考官方文檔,鏈接如下:

·OpenShift 4.6企業版鏈接:https://access.redhat.com/documentation/en-us/openshift_container_platform/4.6/html-single/installing_on_bare_metal/index

·OpenShift 4社區版鏈接:https://docs.okd.io/latest/install/index.htm

在大部分客戶的實際環境中,無法直接訪問公網,這就需要離線部署OpenShift。OpenShift的離線部署只支持UPI方式,也就是說,即使在紅帽OpenStack基礎設施上,如果想離線部署OpenShift,也必須使用UPI方式。

在講述具體部署之前,我們先對離線部署OpenShift的要求和大致過程進行說明。

2.OpenShift離線部署要求

OpenShift離線部署需要的安裝角色如下:

·管理機:也可稱為工具機,主要是安裝一些客戶端工具以及管理整個OpenShift依賴的基礎環境。另外,管理機通常能夠訪問外網,這樣也可以在管理機上訪問外網拉取安裝鏡像,并將其推送到離線環境的容器鏡像倉庫中。

·容器鏡像服務器:為離線安裝提供鏡像,具體方案參考“3.2.2配置OpenShift離線鏡像”。

·DNS服務器:為OpenShift節點和應用提供域名解析。

·HTTP服務器:用于在安裝過程中Master節點和Worker節點獲取RHCOS鏡像和配置文件的位置。

·負載均衡器:OpenShift要求Master節點為3個,因此在安裝的時候,需要負載均衡器,另外,多個Router也需要負載均衡器,可以選擇HAproxy或者F5實現。

·NFS服務器:測試環境如果沒有企業級存儲,還需要配置一個NFS服務器,為OpenShift提供外部持久化存儲。

·Bootstrap:該主機啟動一個臨時Master,由它來引導整個OpenShift集群的啟動。當OpenShift安裝完畢后,這個節點可以關閉或刪除。

·Master節點:OpenShift集群的管理節點。

·Worker節點:OpenShift集群的工作節點。

在上述安裝角色中,Bootstrap、Master節點、Worker節點都使用RHCOS操作系統,管理機可以使用RHEL操作系統。如果基礎設施的服務器資源有限,可以將管理機、鏡像服務器、DNS服務器、Http服務器、軟負載均衡器、NFS服務器等幾個角色使用一臺服務器承載。當然,我們也可以把管理機的角色和其他幾個角色單獨分開,使用兩臺服務器承載,即一臺管理機、一臺輔助安裝節點(其他角色)。

按照官方文檔,OpenShift的集群最小資源配置要求如表3-1所示。

表3-1 OpenShift部署節點最低配置

關于每個節點的數量,根據官方建議在一套OpenShift集群中應該包含:

·一個Bootstrap節點。

·必須3個Master節點。

·至少兩個Worker節點,這樣當一個Worker節點出現故障,Pod可以在另外一個Worker節點上重啟。

·如果在生產環境,需要將Worker細分為App Node和Infra Node(建議至少3個),在這種情況下,Worker節點至少5個。

了解了離線部署的要求之后,接下來介紹離線部署的大致過程。

3.OpenShift離線部署過程

本小節介紹的安裝方式,適用于OpenShift 4.3、OpenShift 4.4、OpenShift 4.5。OpenShift 4.6的離線+bare metal模式安裝方法略有調整,調整內容會在3.2.3節的第12小節中提及。想安裝OpenShift 4.6的朋友,請先閱讀這一小節。

離線部署過程大致如圖3-4所示。

圖3-4 OpenShift離線部署過程示意圖

如圖3-4所示,OpenShift離線部署的大致過程如下:

1)同步公網鏡像,實現本地鏡像倉庫。

我們需要將OpenShift的安裝鏡像(110個左右容器鏡像)同步到數據中心本地鏡像倉庫,然后整個部署過程不再需要訪問外網鏡像倉庫。

2)獲取其他部署需要的在線資源和輔助機器的配置。

·下載RHCOS操作系統的鏡像,下載的時候需要選擇與基礎架構對應的版本。下載地址:https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos。如果在物理服務器上安裝,需要下載rhcos-4*-x86_64-metal-bios.raw.gz(用于安裝RHCOS操作系統)和rhcos-4*-x86_64-installer.iso(用于引導啟動Bootstrap服務器)。

·配置其他的安裝角色。如在管理機上安裝并配置DNS服務器、HTTP服務器、HAproxy服務器、NFS服務器等。

·下載openshift-install文件(版本必須與安裝鏡像相同,否則離線安裝會失?。?、OC客戶端和pull-secret文件到管理機,并在管理機生成SSH Key。

3)準備OpenShift安裝文件。

·通過openshift-install create install-config命令行生成install-config.yaml文件。該文件主要包含Base Domain、Master節點數、Pod IP地址段、Service IP地址段、本地鏡像倉庫的域名、從本地鏡像倉庫下載的pull secret等。

·執行openshift-install create manifests--dir=<installation_directory>,生成manifests。安裝目錄中必須包含修改后的install-config.yaml文件。命令執行完成后,會生成很多集群安裝配置文件,如manifests/cluster-scheduler-02-config.yml。我們可以在配置文件中設置masterSchedulabel,即Master節點是否調度業務Pod。

·執行openshift-install create ignition-configs--dir=<installation_directory>,執行完畢后,會生成如下文件:


├── auth
│ ├── kubeadmin-password
│ └── kubeconfig
├── bootstrap.ign
├── master.ign
├── metadata.json
└── worker.ign

bootstrap.ign是Bootstrap主機的安裝配置,master.ign是Master節點的安裝配置,worker.ign是Worker節點的安裝配置。

·將所有.ign配置文件、RHCOS的ISO文件拷貝到HTTP服務器對應的目錄上,以便Bootstrap、Master、Worker啟動的時候可以從HTTP服務器獲取操作系統ISO和.ign配置文件。

4)啟動Bootstrap主機引導OpenShift集群。

·啟動Bootstrap引導主機。

不同的環境創建Bootstrap主機的方式稍有不同,但我們可以使用物理主機的安裝方式,在所有的環境安裝,用rhcos-4*-x86_64-installer.iso啟動Bootstrap引導主機。首先將主機引導至維護模式,查看主機的磁盤名和網卡名,記錄下來。

重啟主機,啟動至RHCOS的安裝界面時,按Tab鍵,然后輸入如圖3-5中所示的內容。

圖3-5 配置RHCOS操作系統

以圖3-5環境為例,在啟動Bootstrap主機時,添加的配置內容如下。


coreos.inst.install_dev=sda coreos.inst.image_url=http://192.168.137.202:8080/
    rhcos-4.2.0-x86_64-metal-bios.raw.gz coreos.inst.ignition_url=
    http://192.168.137.202:8080/bootstrap.ign ip=192.168.137.210::192.168.137.2:
    255.255.255.0:bootstrap.ocp4.example.com:ens33:none nameserver=192.168.137.202

配置說明如下:

 ·設定系統安裝到sda磁盤上。

 ·192.168.137.202為HTTP服務器的地址,會從該服務器上獲取RHCOS的安裝程序和bootstrap.ign文件。

 ·Bootstrap主機的IP地址設置為192.168.137.210、網關地址為192.168.137.2、子網掩碼為255.255.255.0。

 ·Bootstrap主機的域名為bootstrap.ocp4.example.com。

 ·Bootstrap的網卡為ens33。

 ·Bootstrap的域名服務器地址為192.168.137.202。

·啟動Master節點。

啟動三個Master節點,啟動注入參數示例如下(參數含義同bootstrap.ign)。


coreos.inst.install_dev=sda  
coreos.inst.image_url=http://192.168.137.202:8080/rhcos-4.2.0-x86_64-metal-bios.
    raw.gz coreos.inst.ignition_url=http://192.168.137.202:8080/master.ign ip=
    192.168.137.203::192.168.137.2:255.255.255.0:master-0.ocp4.example.com:
    ens33:none nameserver=192.168.137.202

不同的Master節點注意替換IP地址和主機名。

·啟動Worker節點。

根據需要啟動多個Worker節點,啟動注入參數示例如下(參數含義同bootstrap.ign)。


coreos.inst.install_dev=sda  
coreos.inst.image_url=http://192.168.137.202:8080/rhcos-4.2.0-x86_64-metal-bios.raw.
    gz coreos.inst.ignition_url=http://192.168.137.202:8080/worker.ign ip=
    192.168.137.206::192.168.137.2:255.255.255.0:worker01.ocp4.example.com:
    ens33:none nameserver=192.168.137.202

不同的Worker節點注意替換IP地址和主機名。

5)驗證集群狀態。

等待安裝完畢后,使用如下命令查看clusteroperators的版本,AVAILABLE的狀態均為True表示集群狀態健康,如圖3-6所示。


# oc get clusteroperators

圖3-6 查看Cluster Operator狀態

當我們看到所有的ClusterOperator都已經正確安裝,也就表示OpenShift集群部署成功。

可以看到整個離線安裝過程中,步驟還是相對較多的。而離線部署的第一個工作就是同步公網鏡像,創建本地鏡像倉庫,因此在正式介紹部署操作之前,我們先介紹配置OpenShift離線鏡像的方法。

主站蜘蛛池模板: 桦川县| 昂仁县| 包头市| 罗甸县| 金寨县| 沂源县| 溧水县| 通许县| 卓资县| 隆安县| 凤山县| 正镶白旗| 银川市| 铁力市| 赫章县| 北辰区| 修水县| 兴业县| 河东区| 奉贤区| 香格里拉县| 金溪县| 洪雅县| 北流市| 涞源县| 库伦旗| 增城市| 阜城县| 高台县| 嘉义市| 禄丰县| 富锦市| 东源县| 东山县| 德清县| 河西区| 勃利县| 徐汇区| 绵阳市| 五台县| 南涧|