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

3.3 OpenShift的Worker節點擴容

OpenShift通過IPI和UPI安裝后,Worker節點擴容的方式有所區別。IPI的Worker節點擴容是通過修改Machine Set的副本數,由Machine API自動完成的。IPI的擴容操作和范例請參照圖3-50二維碼中的文章,我們不再過多闡述。

圖3-50 通過Machine API自動完成節點的擴容

我們主要介紹通過UPI安裝OpenShift集群后的Worker節點的擴容。擴容的步驟如下:

·將新的Worker節點的域名和IP地址信息加入DNS、前端負載均衡器。

·使用新的TLS證書更新Worker Ignition文件。如果Worker節點擴容在OpenShift集群安裝完畢24小時內,無須更新Worker Ignition文件中的證書。從OpenShift 4.5開始,即使在集群安裝完畢24小時后增加Worker節點,也不用更新證書。但4.5之前的版本,如果在集群安裝完畢24小時后增加Worker節點,則需要更新證書。

·通過RHCOS的ISO文件引導主機/虛擬機啟動,在啟動界面上輸入參數,讀取Worker Ignition文件開始安裝。

·手工批準CSR,以便Worker節點加入集群。

針對OCP4.5之前的版本在集群安裝完畢24小時后增加Worker節點的情況,首先查看Ignition Worker文件,然后檢查內嵌的證書,命令執行結果如圖3-51所示,這段證書是后續要替換的內容。


# cd /var/www/html/materials/pre-install/

拷貝圖3-51中方框標識base64后的一長串數值。

使用openssl命令檢查x509證書的創建時間。我們看到證書創建時間距現在已經超過24小時,因此需要更新TLS,如圖3-52所示。


# echo "LS0…" | base64 -d | openssl x509 -noout -text

圖3-51 Worker Ignition中的證書

圖3-52 查看證書過期時間

從Machine Config Server的22623監聽端口獲取最新的TLS證書。


# openssl s_client -connect api-int.ocp4.example.com:22623 -showcerts

將輸出結果中BEGIN CERTIFICATE和END CERTIFICATE之間的內容粘貼出來,存放到api-int.pem文件中。

使用帶有--wrap=0選項的base64對證書進行編碼。


# base64 --wrap=0 ./api-int.pem 1> ./api.int.base64

用輸出結果替換worker.ign中ignition.security.tls.certificateAuthorities[0].source的數值。

由于上述命令行較長,我們建議使用如下腳本自動化完成worker.ign文件證書的替換工作,將clusterDomain替換為自己集群的域名。


# export MCS=api-int.<clusterDomain>:22623
# echo "q" | openssl s_client -connect $MCS  -showcerts | awk '/-----BEGIN 
    CERTIFICATE-----/,/-----END CERTIFICATE-----/' | base64 --wrap=0 | tee ./
    api-int.base64 && \
sed --regexp-extended --in-place=.backup "s%base64,[^,]+%base64,$(cat ./api-int.
    base64)\"%" ./worker.ign

接下來,按照3.2.3節第11小節展示的安裝步驟,使用RHCOS的ISO創建新的物理機或者虛擬機,輸入Worker節點啟動參數(正確的主機名、IP地址)即可進行節點擴容。擴容過程中隨時關注CSR,當有Pending狀態的CSR出現后,手工使用如下命令行批準即可。


# oc get csr -o json | jq -r '.items[] | select(.status == {} ) | .metadata.name' |
    xargs oc adm certificate approve

批準完畢后,Worker節點擴容也就完成了。

主站蜘蛛池模板: 陇川县| 揭西县| 伊宁市| 平顺县| 府谷县| 西昌市| 濉溪县| 察哈| 武宣县| 睢宁县| 吉隆县| 古田县| 龙陵县| 廊坊市| 九龙县| 万山特区| 铜山县| 松潘县| 玉田县| 海阳市| 陇川县| 大关县| 汉源县| 哈密市| 东丽区| 临安市| 东平县| 上蔡县| 栾城县| 微博| 达日县| 盘山县| 隆尧县| 霍林郭勒市| 景泰县| 六枝特区| 新田县| 沂源县| 永安市| 精河县| 东安县|