原本以為可以一篇就搞定, 後來想想, 打算分成Day 0, Day 1, 以及 Day 2 and beyond 的方式來記錄這個OCP的學習過程, 我們知道條條大路通羅馬, 建置OCP的方法很多種, 這次筆者選用的方式是比較適合筆者工作環境及生意需求折衷下的解決方案, 期許這樣的文章, 可以幫到所有對OCP有興趣想研究的朋友們.
終於迎來了Openshift Container Platform(以下簡稱OCP)的安裝, 我們在Day 0搞定需要硬體設備資源,網路資源,還有DNS與DHCP server. 這裡應該也會跟Day 0一樣會是一篇有點長的文章, 盡量用比較輕鬆的方式讓大家可以無痛的安裝OCP
下面的文章不是普通的長, 超過30公分不含頭, 大家慎入!
規格
下圖是筆者安裝完成後的規格表, 包含了使用的硬體, 軟體, 及各主機的網路資訊. 細部的DHCP或DNS設定或安裝資訊請參考內文喔.
架構
如果沒有看過Day 0 的部分, 這是我們預期要搭建起來的架構, Day 1會專注在中間Openshift的安裝, 所以我們會在vmware上再創建六個VM然後join起一個OCP的叢集.
OCP 安裝方式
從官方文件提供的安裝說明, 我們可以知道安裝Openshift的方式有很多, 你可以選擇裝在地端的vmware或是裸機安裝, 也能夠透過雲服務來開啟OCP. 具體來說可以怎麼做呢? 如果你已經有redhat的帳號的話, 你可以登入 redhat hybrid cloud console
從介面中你可以看到Openshift的安裝選擇有三: (cloud,datacenter,local)
- cloud:這邊分成有封裝好的跟自建模式, Azure, AWS, IBM cloud都有封裝好的服務, 自建在雲端也有豐富的文件可以參考,所以你也可以很安心地選擇自建.
- datacenter: 這邊就是vmware 或是 裸機(bare-metal)的安裝方式, 也是我們這次選擇的安裝方式
- local: 主要是本機安裝, 支援MacOS, Linux, Windows, 這是最簡單的安裝方式, 如果資源不足也想試試看的話, 可以下載來玩玩看. 或者, 開發者要在本機上有OCP環境可以測試的話, 也可以進行安裝喔
選擇Datacenter方式來安裝OCP
其實筆者有點選擇恐懼症, 不得不佩服Redhat,光是安裝方式就玲琅滿目, 筆者先把介面能點的都點一下, 當點到Bare Metal(裸機)選項時, 看到下面這三種選項.
- Interactive
- Automated
- Full Control
第一種Interactive跟第二種Automated方式似乎比較適合初來乍到的筆者, 第一種方式又是比較新式的安裝方式, 既然RedHat有推薦, 那就當然要試試看囉! 未來有機會也會花點時間試試看第二種跟第三種方式. 其實 google 一下會發現很多人分享了第二種安裝方式的文件, 早期一點的文件也會發現第三種的安裝方式. 反而是第一種透過Web的安裝方式沒有多做介紹 (筆者暗想:我如果會用CLI安裝,幹嘛用Web來安裝呢? 畢竟安裝k8s也是透過CLI的方式完成的呀!)
既然決定了用Web安裝, 那就毫不猶豫地給他點下去Interactive, 網頁就會跳轉到 assitant installer (安裝小助理), 你也可以在下面頁面按下藍色按鈕.
按下去後, 就會進到安裝六步驟的第一步驟
筆者會盡量提及相關的細節, 不足的部分就請參考官方的Assisted Installer 說明文件
步驟一 Cluster Details
這裡有幾個必要填寫的內容.
- cluster name: 為你的叢集取一個名稱,例如: demo-lab 等等, 筆者用了一個有點長的名字 vsphere-openshift-on-prem
- Base Domain: 還記得在Day 0 設定的domain name嗎? 筆者用的是公司的測試domain (gaiatechs.info)
- openshift version - 選用最新版的4.11.13, 4.12目前還是developer preview,為了安裝順利以及日後正常操作, 本次就先跳過囉~
參照上圖剩下的選項, 筆者皆沒有修改,維持本來推薦的設定
-
(沒有點選)SNO單機安裝不符合業務需求(雖然實體機也是一台), 我們期待的是多個host組成叢集的方式, 所以沒有選擇.
-
(沒有點選)pull request 筆者採取redhat 自動生成的內容,沒有特別進行修改.
-
(沒有點選)arm64 CPU, 阿~就沒有Arm的CPU呀, 怎麼選?
-
維持使用DHCP only, 這樣人生會少一點痛苦.
-
安裝好的OCP環境並不會放上正式環境的服務, 所以並不會特別對master 跟 worker 進行加密
所以第一步驟的設定就完成了按下"next"
步驟二 operators
這個步驟有兩個選項, 如果點選之後,就會額外安裝這兩個功能. 筆者選擇先不安裝, 直接按下"next"
-
Install OpenShift Virtualization: 有了這個功能你就可以把vm 也透過 OCP來管理, 感覺起來挺厲害的, 等待下次來開箱這個功能.
-
Install OpenShift Data Foundation: 這個是software-defined storage 的功能, 目前還不是硬碟大富翁也沒有NAS之類的設備,也把它放在願望清單中, 日後再開啟囉!
步驟三 host discovery 主機探索
這個步驟算是最花時間的一個步驟, 我們需要完成:
- 準備自己的ssh public key (id_rsa.pub)
cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDvv3Mwl\ j3PCengDVWSzXYqfaYXSrscIsZVUirbvUJwLIt\ 0MzDfIlNYtaXuW1FAZlwmc8uP+hjYD3C+dSMH\ ayA/4OPo8I+o/cMHmu9zenUDIbxISCsA“這是壞的“Kn+wBNKv77cM4IsQocYh1r4aTUxxN04/wxgZ\ aHuzj7/t0gzHi+rs6DDi74hiPFB5RSLJQebqxO\ ZcEx2PxekpTnnCVg+gGkSCvJd9xVhdg2bTNDViA\ PPE9uPU+b6AbY+HsMO0LNfTbBw6iYXK1CQ6/FOgj\ Y/XLpyMkGhvyN7pY0jbJ0A25hRt+cq3sQirAY4Zo\ 4xMAU4rKGHMJDnLzrLkGi+O/JC376A9l8wh8Zd5E\ reg0FZazzHE6zE= \ hounienlin@Houniens-MacBook-Pro.local
-
下載CoreOS iso, 如下圖所示, 需要提供剛剛的ssh public key, 這裡筆者也順便選Full image file,這樣可以節省一些安裝時需要額外下載的時間, 整個iso 映像檔案大概1.X GB
下載ISO 可以透過Browser 或是指令的方式, 筆者base 的系統是Windows,所以直接透過Browser 下載. 這個ISO是不能進行分享的, 裡面含有個人資訊! 每次重新創建叢集需要使用新的ISO. 這個ISO等等會拿來進行VM開機.
-
在vmware workstation pro上開啟新的vm, 因為要加入三台Master跟三台worker, 所以需要設定六次. 這邊其實蠻坑爹的, 筆者參考了主機最小的硬體需求, control plane (Master) 需要4顆CPU,16GB Mem 跟100GB硬碟空間, 但是真的製作完成vm後, 加入cluster顯示,硬體內容不足需要增添額外的cpu,memory及硬碟.
怕大家踩坑, 筆者的Master vm規格如下:
- CPU: total 8 processor cores
- Memory: total 16540 MB
- Storage: one is 100 GB and another 30 GB
- Network: bridge mode
然後worker vm 的規格如下
- CPU: total 16 processor cores
- Memory: total 33140 MB
- Storage: one is 100 GB and another 30 GB
- Network: bridge mode
沒錯,硬碟要兩顆,不是一顆100GB,所以後來又補上了額外的一顆30GB
在vmware上安裝CoreOS的方式與Day 0 安裝RHEL 9.1的方式蠻類似的, 主要是開機要指向剛剛下載下來的ISO, 開機後它會自動開機, 如果正確運行的話, 這個host就會被加入到叢集, 並且顯示在下方.
安裝OCP Master/Control Plane
接下來, 筆者會展示如何安裝跟設定Master/Control Plane(以下簡稱CP)
-
首先需要創建一台新的VM,可以在vmware的主畫面按下右鍵,選擇創建一台新vm, 然後就會看到下面畫面, 按下"Next"
-
這個步驟也直接按下"Next"
- 這裡要選擇第二個選項,並且指向剛剛下載的ISO, Warning message 可以忽略, 指的是vmware認不出這個ISO
- 這邊也是直接按下"Next"
-
這邊是選擇設定檔案的存放處, 可以選擇自己要存放的地方, 或是直接按下"next"
-
這裡我們設定需要的CPU Cores, 筆者選擇Processor 為2, Cores 為4, 所以總共是8 個processor cores
- Memory 設定為16540 MB, 按下"Next"
- 網路選擇第一個 Bridged networking, 按下"Next", 筆者選用公司原有的DHCP server, 若你有其他的網路安排, 這邊可能會不一樣喔!
- I/O controller 選擇推薦選項, 直接按下"Next"
- 筆者的Disk Type也是選擇推薦 NVMe, 按下"Next"
- 選擇一顆Disk, 這邊選擇第一個創建一顆新的硬碟, 按下"Next"
- Disk size 設定為100 GB, 按下"Next"
- 選擇Disk file的存放地點, 筆者的H槽大概有3 TB, 所以選擇放在H槽的資料夾中, 按下"Next"
- 到這一步, VM的設定幾乎完成了, 不過, 不知道是否是vmware 版本問題還是筆者對vmware了解不足, 這邊筆者無法透過"Custom Hardware", 再次新增一顆30GB的硬碟, 所以按下"Finish"
- 回到主畫面後, 選擇ocp-cp1的編輯設定, 在畫面下方處選擇"Add", 新增一顆30GB的硬碟.
Disk type 也是選擇 NVMe
位置也放置在H槽的資料夾, 檔名加上"-30gb", 與原檔做區隔
新增完成後, 你就會看到兩顆硬碟囉
- 現在VM所需要的硬體已經準備完成,我們可以進行開機, 可以進到VM後, 按一下鍵盤的"enter/return"
開機中…
開機完成後, 你可以看到這台機器的IP address, 我們等等試試看是否可以透過ssh 登入, 這裡會用到剛剛準備的ssh public key對應的私鑰才能正確登入喔.
ssh core@192.168.0.208
ssh -i ssh -i ~/.ssh/id_rsa core@192.168.0.208
如果你有正確登入的話,可以看到下面的終端機輸出
- 接者我們需要回到RedHat 的 Hybrid Cloud Console, 檢查這台主機是否已經被加入到我們的OCP叢集之中. 如果有正確的被加入的話, 會看到下面畫面, 我們需要把hostname 改掉, 這邊筆者改成 ocp-cp1.
按下localhost.localdomain後, 會跳出這個頁面, 將名稱改成ocp-cp1
最後我們展開檢查一下這台主機的資訊, 目前的狀態是Ready. 這樣我們就完成了一台CP的設定
- 同樣的步驟, 我們還要做兩次, 把ocp-cp2, ocp-cp3 創建出來, 這邊就不特別演示ocp-cp2跟ocp-cp3的安裝, 完成後檢查一下是否正確的被加入到叢集, 記得也修改ocp-cp2跟ocp-cp3的hostname, 檢查一下IP address 跟hostname是否有正確的對應. 也順便SSH一下檢查是否可以正確登入.
- 到這裡, 其實就可以開始按下"Next", 但是為了方便安裝完成後, 可以直接放服務上來, 我們接下來的步驟要安裝worker node. 剩下的內容詳見part2.
Day 1 到底該如何安裝 Openshift Container Platform(Part1)
原本以為可以一篇就搞定, 後來想想, 打算分成Day 0, Day 1, 以及 Day 2 and beyond 的方式來記錄這個OCP的學習過程, 我們知道條條大路通羅馬, 建置OCP的方法很多種, 這次筆者選用的方式是比較適合筆者工作環境及生意需求折衷下的解決方案, 期許這樣的文章, 可以幫到所有對OCP有興趣想研究的朋友們.
終於迎來了Openshift Container Platform(以下簡稱OCP)的安裝, 我們在Day 0搞定需要硬體設備資源,網路資源,還有DNS與DHCP server. 這裡應該也會跟Day 0一樣會是一篇有點長的文章, 盡量用比較輕鬆的方式讓大家可以無痛的安裝OCP
下面的文章不是普通的長, 超過30公分不含頭, 大家慎入!
Day 1 安裝Openshift Container Platform
規格
下圖是筆者安裝完成後的規格表, 包含了使用的硬體, 軟體, 及各主機的網路資訊. 細部的DHCP或DNS設定或安裝資訊請參考內文喔.
架構
如果沒有看過Day 0 的部分, 這是我們預期要搭建起來的架構, Day 1會專注在中間Openshift的安裝, 所以我們會在vmware上再創建六個VM然後join起一個OCP的叢集.
OCP 安裝方式
從官方文件提供的安裝說明, 我們可以知道安裝Openshift的方式有很多, 你可以選擇裝在地端的vmware或是裸機安裝, 也能夠透過雲服務來開啟OCP. 具體來說可以怎麼做呢? 如果你已經有redhat的帳號的話, 你可以登入 redhat hybrid cloud console
從介面中你可以看到Openshift的安裝選擇有三: (cloud,datacenter,local)
選擇Datacenter方式來安裝OCP
其實筆者有點選擇恐懼症, 不得不佩服Redhat,光是安裝方式就玲琅滿目, 筆者先把介面能點的都點一下, 當點到Bare Metal(裸機)選項時, 看到下面這三種選項.
第一種Interactive跟第二種Automated方式似乎比較適合初來乍到的筆者, 第一種方式又是比較新式的安裝方式, 既然RedHat有推薦, 那就當然要試試看囉! 未來有機會也會花點時間試試看第二種跟第三種方式. 其實 google 一下會發現很多人分享了第二種安裝方式的文件, 早期一點的文件也會發現第三種的安裝方式. 反而是第一種透過Web的安裝方式沒有多做介紹 (筆者暗想:我如果會用CLI安裝,幹嘛用Web來安裝呢? 畢竟安裝k8s也是透過CLI的方式完成的呀!)
既然決定了用Web安裝, 那就毫不猶豫地給他點下去Interactive, 網頁就會跳轉到 assitant installer (安裝小助理), 你也可以在下面頁面按下藍色按鈕.
按下去後, 就會進到安裝六步驟的第一步驟
筆者會盡量提及相關的細節, 不足的部分就請參考官方的Assisted Installer 說明文件
步驟一 Cluster Details
這裡有幾個必要填寫的內容.
參照上圖剩下的選項, 筆者皆沒有修改,維持本來推薦的設定
(沒有點選)SNO單機安裝不符合業務需求(雖然實體機也是一台), 我們期待的是多個host組成叢集的方式, 所以沒有選擇.
(沒有點選)pull request 筆者採取redhat 自動生成的內容,沒有特別進行修改.
(沒有點選)arm64 CPU, 阿~就沒有Arm的CPU呀, 怎麼選?
維持使用DHCP only, 這樣人生會少一點痛苦.
安裝好的OCP環境並不會放上正式環境的服務, 所以並不會特別對master 跟 worker 進行加密
所以第一步驟的設定就完成了按下"next"
步驟二 operators
這個步驟有兩個選項, 如果點選之後,就會額外安裝這兩個功能. 筆者選擇先不安裝, 直接按下"next"
Install OpenShift Virtualization: 有了這個功能你就可以把vm 也透過 OCP來管理, 感覺起來挺厲害的, 等待下次來開箱這個功能.
Install OpenShift Data Foundation: 這個是software-defined storage 的功能, 目前還不是硬碟大富翁也沒有NAS之類的設備,也把它放在願望清單中, 日後再開啟囉!
步驟三 host discovery 主機探索
這個步驟算是最花時間的一個步驟, 我們需要完成:
cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDvv3Mwl\ j3PCengDVWSzXYqfaYXSrscIsZVUirbvUJwLIt\ 0MzDfIlNYtaXuW1FAZlwmc8uP+hjYD3C+dSMH\ ayA/4OPo8I+o/cMHmu9zenUDIbxISCsA“這是壞的“Kn+wBNKv77cM4IsQocYh1r4aTUxxN04/wxgZ\ aHuzj7/t0gzHi+rs6DDi74hiPFB5RSLJQebqxO\ ZcEx2PxekpTnnCVg+gGkSCvJd9xVhdg2bTNDViA\ PPE9uPU+b6AbY+HsMO0LNfTbBw6iYXK1CQ6/FOgj\ Y/XLpyMkGhvyN7pY0jbJ0A25hRt+cq3sQirAY4Zo\ 4xMAU4rKGHMJDnLzrLkGi+O/JC376A9l8wh8Zd5E\ reg0FZazzHE6zE= \ hounienlin@Houniens-MacBook-Pro.local
下載CoreOS iso, 如下圖所示, 需要提供剛剛的ssh public key, 這裡筆者也順便選Full image file,這樣可以節省一些安裝時需要額外下載的時間, 整個iso 映像檔案大概1.X GB
下載ISO 可以透過Browser 或是指令的方式, 筆者base 的系統是Windows,所以直接透過Browser 下載. 這個ISO是不能進行分享的, 裡面含有個人資訊! 每次重新創建叢集需要使用新的ISO. 這個ISO等等會拿來進行VM開機.
在vmware workstation pro上開啟新的vm, 因為要加入三台Master跟三台worker, 所以需要設定六次. 這邊其實蠻坑爹的, 筆者參考了主機最小的硬體需求, control plane (Master) 需要4顆CPU,16GB Mem 跟100GB硬碟空間, 但是真的製作完成vm後, 加入cluster顯示,硬體內容不足需要增添額外的cpu,memory及硬碟.
怕大家踩坑, 筆者的Master vm規格如下:
然後worker vm 的規格如下
沒錯,硬碟要兩顆,不是一顆100GB,所以後來又補上了額外的一顆30GB
在vmware上安裝CoreOS的方式與Day 0 安裝RHEL 9.1的方式蠻類似的, 主要是開機要指向剛剛下載下來的ISO, 開機後它會自動開機, 如果正確運行的話, 這個host就會被加入到叢集, 並且顯示在下方.
安裝OCP Master/Control Plane
接下來, 筆者會展示如何安裝跟設定Master/Control Plane(以下簡稱CP)
首先需要創建一台新的VM,可以在vmware的主畫面按下右鍵,選擇創建一台新vm, 然後就會看到下面畫面, 按下"Next"
這個步驟也直接按下"Next"
這邊是選擇設定檔案的存放處, 可以選擇自己要存放的地方, 或是直接按下"next"
這裡我們設定需要的CPU Cores, 筆者選擇Processor 為2, Cores 為4, 所以總共是8 個processor cores
Disk type 也是選擇 NVMe
位置也放置在H槽的資料夾, 檔名加上"-30gb", 與原檔做區隔
新增完成後, 你就會看到兩顆硬碟囉
開機中…
開機完成後, 你可以看到這台機器的IP address, 我們等等試試看是否可以透過ssh 登入, 這裡會用到剛剛準備的ssh public key對應的私鑰才能正確登入喔.
如果你有正確登入的話,可以看到下面的終端機輸出
按下localhost.localdomain後, 會跳出這個頁面, 將名稱改成ocp-cp1
最後我們展開檢查一下這台主機的資訊, 目前的狀態是Ready. 這樣我們就完成了一台CP的設定