iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
0
DevOps

現代化小白也要嘗試的容器手札系列 第 26

Day 26. Google K8s 小白初始安裝實踐

鬆獅容器小白26連拍

https://ithelp.ithome.com.tw/upload/images/20201005/20025481SNsmuNOixL.jpg

K8s初始安裝實踐

運作執行流程

Kubernetes(K8s)最終就是要透過Pod來實踐一個個容器上的應用,那我們該如何建立第一個Pod呢?

K8s架構圖中有個簡易的叢集,而叢集中會有一個到多個不等Master互為備援,但測試方便性就只有一個。

  1. 當用戶想部署一個新的Pod到K8s叢集時,首先要通過kubectl命令列來輸入要建立Pod應該要有的指令。
  2. 而指令會經過身份認證後把需求傳遞到Master中的API Server。
  3. API會在把指令狀態更新備份到etcd儲存空間內。
  4. 接著Controller控制器會從API Server接收到需要建立一個新Pod的資訊並檢查可用的資源狀態,如沒有問題就會建立一個新Pod。
  5. 最後Scheduler排程器在定期輪詢API Server時會確認控制器是否建立新Pod,假設有新建Pod,Scheduler就會實際負責Pod指派到最適的Node節點上安居樂業。

https://ithelp.ithome.com.tw/upload/images/20201002/20025481jHPbaAE1Q1.jpg

雖然上述運作繁瑣,但實際操作過程,我們就只需要輸入我們想要的需求指令,K8s就會自動在一系列的黑盒子中幫我們完成一整個流程動作。完全不需要我們煩惱,只能說開發這套的谷歌團隊真的是佛心。

K8s前置作業小觀念

方法一
如果想要實際手工在本機電腦體驗操作需要以下套件分別下載:

  • Minikube
  • VirtualBox or VMware Fusion
  • kubectl

Minikube
谷歌發佈的一套輕量級容器工具,讓用戶輕鬆體驗K8s Cluster。Minikube會需要上本機建立一台VM並運行單一節點的K8s叢集服務。minikube download

VirtualBox or VMware Fusion
因為 Minikube 會透過VM來跑K8s,故需先安裝虛擬化平台管理工具。
VirtualBox Download
VMware Fusion Download

Kubectl
是K8s的Command Line命令列工具,之後都會透過Kubectl來操作K8s Cluster

方法二
同樣是谷歌大神,但是小弟直接懶惰使用Google Cloud上的K8s叢集服務簡稱GKE來做搭建,如果需要申請免費試用可以參考小弟GCP第一次申請就上手
https://ithelp.ithome.com.tw/upload/images/20201002/200254818FW6MekRTo.png

官方優點參考如下:

  • 按一下即可建立叢集,快速開始作業。
  • 利用包含多區域和地區叢集的高可用性控制層。
  • 透過自動修復、自動升級和發布版本功能,消弭固定性的作業負擔。
  • 預設將安全性納入考量,提供容器映像檔的安全漏洞掃描以及資料加密等功能。
  • 透過基礎架構、應用程式和 Kubernetes 專屬檢視畫面,進行整合式Cloud Monitoring作業。

現實面還是$$,這也是非常重要的一環,參考如下:
GKE官方成本計費看過來
GCP 互動式成本估算

PS:其他雲端如Aure AKS,AWS EKS等雲端提供商平台均有如方法二的做法大同小異,
只需要申請試用註冊>>注意成本計費(因為即使免費額度如果成本單位過高或是使用的測試資源過多還是會超過而成本超標,不過預設是停止訂用帳戶而非強制付費,破財角度是沒有影響)>>最後就是建構出屬於自己的K8s實驗環境。

GKE簡單部署實踐

GKE服務可以釘選到常用的位置讓你我更容易管理,點選到GKE叢集。
https://ithelp.ithome.com.tw/upload/images/20201002/20025481qWaSo1A3qU.png

這真的是懶人部署,自訂叢集名稱並選擇放置地區與版本,我選擇原廠指定的穩定更新版,所以會是浮動狀態,無需再自行手動更新。
https://ithelp.ithome.com.tw/upload/images/20201002/20025481AKZps4LQPr.png

安裝過程大約5-7分鐘,其實從活動紀錄來看真的非常繁瑣,只是GKE都幫忙搞定這所有複雜的流程。
https://ithelp.ithome.com.tw/upload/images/20201002/200254818peFHeUFfP.png

已經看到GKE的一組叢集,並且看到所配置的硬體資源有多少。
https://ithelp.ithome.com.tw/upload/images/20201002/200254815euPIXmXW9.png

從節點來看預設建立的三組,其實就是底層一台台的GCE計算資源,而後續Pod就是在這幾台上漂泊。
https://ithelp.ithome.com.tw/upload/images/20201002/20025481VCbWpnLhnV.png

建立好的GKE,我們至少也要進去一探究竟,點選連結。
https://ithelp.ithome.com.tw/upload/images/20201002/20025481eMNkHHP9Qa.png

自動開啟GCP CLI命令服務直接連接至指定的GKE叢集環境。
https://ithelp.ithome.com.tw/upload/images/20201002/20025481LzeED0Y0fw.png

第一次要確認身份並授權CLI於予存取
https://ithelp.ithome.com.tw/upload/images/20201002/20025481LHnigV5QCS.png

kubectl config view 取得K8s設定檔資訊
https://ithelp.ithome.com.tw/upload/images/20201002/20025481z5mvVCW32u.png

kubectl cluster-info 檢視叢集狀態
https://ithelp.ithome.com.tw/upload/images/20201002/20025481RGFpCNf5gQ.png

上述示範環境大致都沒有問題了,後續就再利用這樣的GKE實驗環境來好好把玩一番,先這樣,再會。


上一篇
Day 25. Container Orchestration 編程了解K8s與架構初探
下一篇
Day 27. Google GKE 叢集參數深入實踐
系列文
現代化小白也要嘗試的容器手札30

尚未有邦友留言

立即登入留言