kubernetes初探

Han
3 min readFeb 7, 2019

--

繼這幾天完成docker-compose的練習後,決定馬上來使用一下目前最流行的多容器控制的解決方案:kubernetes。承續之前的練習方式,此次也先制定練習的目標,大致上如下:

  1. 安裝和熟悉基本運作環境和指令 。
  2. 創建範例:用kubernetes建置一個最基本的Hello world服務,期望是能像docker那樣運作。
  3. 創建pod.yaml:用設定組態檔案(Pod manifest)yaml檔案(pod.yaml)。

這次的整體操作參考IT邦的相關筆記,基於這次實作只有半天的時間,所以選擇相對簡單的方式來實作。

安裝和創建

基本上花了一些時間熟悉如何在本機進行kubernetes的測試方式和安裝方法。選擇用Minikube的方式來創建環境,這步驟需要安裝的工具如下:

  1. Kubernetes
  2. VirtualBox
  3. Minikube

要注意的是,如果原本就有安裝docker了,要記得在docker的控制畫面中開啟kubernetes的功能。

創建範例

這步驟就相對複雜很多,因為需要先搞清楚container、pod和services之間的關係。這邊就推薦一下之前看過很有趣的小繪本:The-Illustrated-Childrens-Guide-to-Kubernetes.

理解基本元件後,實作部分比較複雜的只有需要的docker’s image必須要從docekr hub上抓下來。因此,需要另外準備一個專門為了練習用的docker’s image(該範例的完整資料在github)。

由於中間有許多指令要紀錄,因此花了一些時間紀錄下每個指令的用途和方法。

最後,善用一些檢查狀態的指令來確認pod的狀態,中間我有因為搞錯image名稱,導致無法正常運作。正常情況下,kubectl get pods 的狀態欄(Status)不應該顯示ErrImagePullImagePullBackOff 這兩種狀態,這都是代表無法取得image,因此,特別需要注意一些設定上的細節。

創建Pod.yaml

A simple pod.yaml

用這種方式創建pod,可以省卻一些輸入指令的功夫。而且也可以很明確的宣告該pod的一些資料,方便管理。

--

--