最新資訊
科技新聞

雲端整合專家,提供全方位雲端顧問服務

科技趨勢

Day 1 到底該如何安裝 Openshift Container Platform (Part 2)

Day 1 到底該如何安裝 Openshift Container Platform(Part2)

原本以為可以一篇就搞定, 後來想想, 打算分成Day 0, Day 1, 以及 Day 2 and beyond 的方式來記錄這個OCP的學習過程, 我們知道條條大路通羅馬, 建置OCP的方法很多種, 這次筆者選用的方式是比較適合筆者工作環境及生意需求折衷下的解決方案, 期許這樣的文章, 可以幫到所有對OCP有興趣想研究的朋友們.

終於迎來了Openshift Container Platform(以下簡稱OCP)的安裝, 我們在Day 0搞定需要硬體設備資源,網路資源,還有DNS與DHCP server. 這裡應該也會跟Day 0一樣會是一篇有點長的文章, 盡量用比較輕鬆的方式讓大家可以無痛的安裝OCP

下面的文章不是普通的長, 超過30公分不含頭, 大家慎入!

安裝OCP Worker

接續上一次的內容,其實在vm上安裝worker的方式與CP大同小異, 主要的差別是硬體規格的不同, 不過為了讓大家可以正確的操作, 還是會一步步跟大家一起操作.

  1. 首先需要創建一台新的VM,可以在vmware的主畫面按下右鍵,選擇創建一台新vm, 然後就會看到下面畫面, 按下"Next"

  2. 這個步驟也直接按下"Next"

  1. 這裡要選擇第二個選項,並且指向剛剛下載的ISO, Warning message 可以忽略, 指的是vmware認不出這個ISO

  1. 這邊也是直接按下"Next"

  1. 這邊是選擇設定檔案的存放處, 可以選擇自己要存放的地方, 或是直接按下"next"

  2. 這裡我們設定需要的CPU Cores, 筆者選擇Processor 為4, Cores 為4, 所以總共是16 個processor cores

  1. Memory 設定為33140 MB, 按下"Next"

  1. 網路選擇第一個 Bridged networking, 按下"Next", 筆者選用公司原有的DHCP server, 若你有其他的網路安排, 這邊可能會不一樣喔!

  1. I/O controller 選擇推薦選項, 直接按下"Next"

  1. 筆者的Disk Type也是選擇推薦 NVMe, 按下"Next"

  1. 選擇一顆Disk, 這邊選擇第一個創建一顆新的硬碟, 按下"Next"

  1. Disk size 設定為100 GB, 按下"Next"

  1. 選擇Disk file的存放地點, 筆者的H槽大概有3 TB, 所以選擇放在H槽的資料夾中, 按下"Next"

  1. 到這一步, VM的設定幾乎完成了, 不過, 不知道是否是vmware 版本問題還是筆者對vmware了解不足, 這邊筆者無法透過"Custom Hardware", 再次新增一顆30GB的硬碟, 所以按下"Finish"

  1. 回到主畫面後, 選擇ocp-cp1的編輯設定, 在畫面下方處選擇"Add", 新增一顆30GB的硬碟.

Disk type 也是選擇 NVMe

位置也放置在H槽的資料夾, 檔名加上"-30gb", 與原檔做區隔

新增完成後, 你就會看到兩顆硬碟囉

  1. 現在VM所需要的硬體已經準備完成,我們可以進行開機, 可以進到VM後, 按一下鍵盤的"enter/return"


開機中…

開機完成後, 你可以看到這台機器的IP address, 我們等等試試看是否可以透過ssh 登入, 這裡會用到剛剛準備的ssh public key對應的私鑰才能正確登入喔.

ssh core@192.168.0.11

ssh -i ssh -i ~/.ssh/id_rsa core@192.168.0.11

如果你有正確登入的話,可以看到下面的終端機輸出

  1. 接者我們需要回到RedHat 的 Hybrid Cloud Console, 檢查這台主機是否已經被加入到我們的OCP叢集之中. 如果有正確的被加入的話, 會看到下面畫面, 我們需要把hostname 改掉, 這邊筆者改成 ocp-worker1.

按下localhost.localdomain後, 會跳出這個頁面, 將名稱改成ocp-worker1

最後我們展開檢查一下這台主機的資訊, 目前的狀態是Ready. 這樣我們就完成了一台CP的設定

  1. 同樣的步驟, 我們還要做兩次, 把ocp-worker2, ocp-worker3 創建出來, 這邊就不特別演示ocp-worker2跟ocp-worker3的安裝, 完成後檢查一下是否正確的被加入到叢集, 記得也修改ocp-worker2跟ocp-worker3的hostname, 檢查一下IP address 跟hostname是否有正確的對應. 也順便SSH一下檢查是否可以正確登入.

worker 2的IP是192.168.0.192

worker 3的IP是192.168.0.111

我們也測試worker2跟worker3的SSH access

我們也需要更新一下每台主機將扮演的角色

到這裡為止, 我們已經將3台master 與3台worker準備好了, host discovery的步驟已經完成, 我們可以開始按下"next"

步驟四安裝storage


這裡其實沒有特別需要設定的部分按下"Next"

步驟五網路設定 Networking

網路管理方式跟網路的形式, 筆者都沒有修改,使用預設如下圖所示.

這裡筆者在網段內找還沒被使用的IP (192.168.0.77)跟(192.168.0.78) 設定 api與ingress將使用的IP, 其他的部分也維持default設定

所有host的狀態與網路並沒有跳出任何warning 或是 error, 按下Next

步驟六 檢視與創建OCP Review and Create

這邊顯示從第一到第五步驟設定的所有數值, 並通過RedHat檢查滿足安裝的條件. 那我們就可以按下"install cluster", 開始自動安裝OCP叢集.

想知道剛剛設定時的日誌也可以按一下"cluster event"

註冊資訊, 筆者建議是完成OCP cluster的建置後再執行.

自動安裝OCP

接下來的步驟都會透過RedHat Assisted Installer來執行, 大概會需要45分鐘到一個小時左右.

然後就等待囉, 可以趁這個時間去泡杯咖啡

比較一下Redhat官方文件提及的規劃, 我們在設定主機時並沒有指定一台bootstrap, Redhat會自動挑一台cp當作bootstrap. 原廠文件在這裡

安裝完成, 還是完蛋了?

這邊筆者踩了一個Web UI/UX的小坑, 筆者是週五下午進行安裝, 當一切就緒後, 筆者就等週一在繼續進行Day 2 的調整. 隔週進辦公室準備要設定oc 的命令列跟登入我們建立的OCP, 才想起來kubeadmin的帳密沒有存, 查了半天, 有的訊息說去installation log 裡面找, 下載下來搜索半天找不著, 然後心想著難道需要重來嗎? 眼筐裡的淚真的像是看了10部令人動容的大劇.

這是安裝時會看到Web 頁面如下, Username/Password就活生生地在頁面裡, 也是筆者為何會心安, 想等隔週一再繼續奮戰的原因

結果隔週一想要繼續設定kubeadmin, 發現怎麼找都找不到, 難道不知道這樣會讓新手很焦慮嗎? 疑?這個小角框是不是可以按?

果然可以, 怎麼可以做這麼小? 超坑爹的設計, 這專門欺負老花眼的筆者, 特別提一下就是希望如果跟筆者遇到一樣問題的, 可以輕鬆解決.

訪問 OCP Web Console

安裝完成後, 需要新增兩筆DNS Records到DNS server裡面, 才進訪問 OCP 的web console.

新增完成後, restart DNS server, 域名更新可能需要一些時間,


若是想要馬上測試的話, 建議是直接編輯 /etc/hosts, 把下面這些直接加入.


 
 
192.168.0.77 api.colo-demo.gaiatechs.info 192.168.0.78 oauth-openshift.apps.colo-demo.gaiatechs.info 192.168.0.78 console-openshift-console.apps.colo-demo.gaiatechs.info 192.168.0.78 grafana-openshift-monitoring.apps.colo-demo.gaiatechs.info 192.168.0.78 thanos-querier-openshift-monitoring.apps.colo-demo.gaiatechs.info 192.168.0.78 prometheus-k8s-openshift-monitoring.apps.colo-demo.gaiatechs.info 192.168.0.78 alertmanager-main-openshift-monitoring.apps.colo-demo.gaiatechs.info

完成後, 用nslookup 測試一下, 筆者不想等Wifi上的DNS刷新, 是直接使用本機上的DNS server, 修改方式是編輯/etc/resolv.conf 然後加上一台name server


然後就看到刷新囉~

嘗試登入 https://console-openshift-console.apps.colo-demo.gaiatechs.info

TLS的警告先忽略, 直接按下同意不安全的訪問,

登入時會跳轉到oauth的連結, 我們把kubeadmin 跟 password 貼入後, 按下login即可登入.

這是我們的第一次登入, 到此安裝就即將完成, 最後, 筆者使用的是有授權的OCP版本, 所以順便註冊一下.

註冊需要點擊一下紅匡處的link

或者直接在Hybrid Cloud Console 直接編輯subscription

編輯完成後儲存檔案

刷新一下頁面就會顯示註冊完成

固定hosts 的IP

為了避免hosts可能開關機會使用到不同的IP, 影響OCP cluster的設定, 這邊筆者會增加設定來固定租賃的DHCP IP. 筆者的做法是在DHCP server 端設定fixed IP 給下表中的hosts.

host name IP address Description
bastion 192.168.0.132 / 192.168.0.142 RHEL 9.1 DNS server and Bastion
cp1 192.168.0.208 CoreOS 4.11 , OCP 4.11.13
cp2 192.168.0.246 CoreOS 4.11. , OCP 4.11.13
cp3 192.168.0.40 CoreOS 4.11. , OCP 4.11.13
worker1 192.168.0.11 CoreOS 4.11. , OCP 4.11.13
worker2 192.168.0.192 CoreOS 4.11. , OCP 4.11.13
worker3 192.168.0.111 CoreOS 4.11. , OCP 4.11.13

Summary

若是從RedHat Hybrid Cloud Console來看, 我們的安裝其實已經完成而且已經可以登入到OCP, 但是其實還有其他post-installation的部分我們還沒有完成, 例如:

  • oc cli 的安裝與ocp叢集的連接
  • ocp 的 sso, kubeadmin並非ocp推薦的登入方式
  • ocp 的告警設定

為了要完成這篇文章, 筆者其實進行了兩次的安裝, 原因是一開始使用的域名太長, 另外有些安裝步驟的畫面沒有擷取到, 不過從第一次的安裝經驗後, 著實加速了不少, 整個安裝時間扣掉剪圖應該是一個小時內可以完成.

使用Assisted Installer 進行ocp安裝, 其實這幾點有事先準備好, 以現在菜雞等級來說, 筆者第二次安裝過程還算順利.

  • VM instance 規格
  • Local Network 設定
  • DNS 設定

礙於篇幅的長度以及原廠文件的分類方式, 我們把除了安裝外的學習資訊放在Day 2 and beyond 系列在進行討論, 筆者也希望透過這樣的方式可以精進對於OCP的理解,未來可以將更多的服務放在OCP之上.

tags: ocp, openshift, vmware,linux, redhat