iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
0

上一篇文章,教大家操作 Kubernetes 群集相關的操作,之前也大致說明 POD 是什麼。今天這篇文章會介紹到與 POD 相關的 POD 控制器和一些資源應用,這為了能夠更加豐富的運用 POD 資源,進而將容器的應用變得更加靈活、完善和操作等。下圖顯示了 Kubernetes POD 如何被 Kubernetes 的更抽象資源去應用。

在前面文章有介紹過 POD,它負責運行容器,同時解決環境依賴的一些問題,可能會是共享的儲存、配置資訊或網頁伺服器要的 SSL 等。然而 POD 的運行過程中可能會遇到一些資源配置不足或是一些突發狀況導致 POD 非正常的終止。這問題 Kubernetes負載類型POD 控制器去負責,適當將故障的 POD 重建。

雖然 POD 控制器能夠重建資源,但有些應用程序是有順序的概念,因此這邊又可將 POD 控制器分類為無狀態有狀態類型。圖中 ReplicaSetDeployment 屬於管理無狀態類型服務,StatefulSet 則是有狀態。除了這些, Kubernetes 還提供一些特殊應用的服務,像是 DaemonSet 它用於為每個節點上運行單一個 POD 的資源,可能是 Log 蒐集或是監控服務等應用,還有 Job 控制器,它可以提供短暫批次任務,完成後即可終止該資源。

POD 資源一般來說是群集內可相互存取的,再次重建後也應該要被發現。如果 POD 要給外部使用者存取則需要透過暴露方式,並且要有負載均衡。在 Kubernetes 中透過 ServiceEndpointIngress 可以解決發現、服務暴露和附載均衡。

在 Kubernetes 中設計了 Volume,可用於幫助 POD 的資源儲存,它支援了儲存設備和系統,像是 GlusterFSCEPH RBDNFS 等。不過 Kubernetes 有抽象了 CSI(Container Storage Interface) 統一儲存介面以便擴展更多的儲存應用。容器在運行時將不同環境所需的變數用環境變數作為解決方案,但容器啟動後不得更改。在 Kubernetes 中 configMap 能夠以環境變數掛載方式傳入至 POD 的容器中,它同時可被不同應用的 POD 共享,使得靈活性提高,然而對於此方式較隱密的資訊較不適合 configMap 需使用 Secret

透過上面的描述,我們將與 POD 相關的資源進行一系列詳細說明。但是 Kubernetes 卻沒有那麼簡單,還有許多應用需要去學習,像是 HorizontalPodAutoscaler 自動伸縮工作負載;LimitRange 可以對硬體資源請求做限制等,真的很多...。預計下一篇會開始操作 POD 資源。

參考資源


上一篇
初探 K8s 操作
下一篇
資源定義與使用
系列文
我真的覺得認為 K8s 到底在火什麼30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言