返回
Featured image of post k8s - 基本介紹

k8s - 基本介紹

k8s - 基本介紹

學習前置

docker、基本的網路概念、運行服務。


演進

傳統 -> 虛擬化 -> 容器化

而容器化已將資源充分的運用,但還是難免會有故障排除,就還是需要有手動介入重啟,這時候就可以搭配K8S去將其排解

K8S 是什麼東西?

  • 服務發現 和 Load Balancing - K8S 可以Load Balancing 均衡分配網路使部署穩定
  • 存儲編排 - 可使用雲 Storage 或本地 Storage
  • 自動部署和回滾 - 自動化部署 container
  • 自動完成裝箱計算 - 指定每個 Container 所需 CPU 和 RAM
  • 自我修復 - 將錯誤的 Container 刪除且重啟
  • 密鑰與配置管理 - 將 ssh 密鑰管理的功能

K8S 不是什麼東西

並非 全能的 Paas(平台及服務),由於 K8S 在 Container Lavel 而非 Hardware Lavel運行,它提供了 PaaS 產品有的一些普遍適用的功能, 例如 部署、擴展、負載均衡、日誌記錄和監視
K8S 不是單體系統,默認方案都是 可選的。
K8S 提供了構建開發人員平台的基礎,但是在重要的地方保留了用戶的選擇和靈活性


環境介紹

  • Client (Control Plane) : 操作Server (kubectl)
  • Server : Server Master 主機

Control Plane 組件

kube-apiserver

一台 API Server for k8s 操作

etcd

一台 高可用的 key-value 的 DB 來儲存 k8s cluster 的數據Data

kube-scheduler

監控 Node 有無正確運行的 Pod,選取 Node 將其運行

kube-controller-manager

Control Plane 控制及進行每個 Process,邏輯上每個 controller-manager 都是單獨 Process 都被編譯成二進制,並在一個 Process 中運行

cloud-controller-manager

與 kube-controller-manager 類似,controller-manager 將你的 cluster 連接到 Cloud Provider 的 API 之上

Node 組件

kubelet

在 cluster 中的每個 Node 上運行的代理。它確保 container 在 Pod 中運行

kube-proxy

kube-proxy 是一個網絡 proxy,運行在 cluster 中的每個 Node 上

Container runtime

container 運行時 是負責運行 container 的工具,支援多種運行container的方式:Docker, containerd, CRI-O


Node 構造介紹

  • Node - 節點
  • Pod - 包括所有 container 相關的資源
  • volume - 卷,將其資料對等Storage使用
  • containerzied app - 開發工程師的容器化 app
  • node process - 就是上方介紹的 kubelet

操作環境 osx mac

基本安裝

簡單來說就是你可以直接在 Docker.app 直接安裝 K8S

  • Enable Kubernetes 勾選然後按下 Apply

等待安裝完成即可使用 本地 Node 數量 1


結語:

在本地學倒是真的蠻多誤解的,但是可以練習下kubectl指令 和 撰寫.yaml檔案,之後會介紹在本地模擬網路環境。 接下來的幾篇示範 container 會是以 docker 作為最常使用的方式。

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus