1. 程式人生 > >zhangxxxww的專欄

zhangxxxww的專欄

K8s 介紹

Kubernetes(k8s)是自動化容器操作的開源平臺,這些操作包括部署,排程和節點叢集間擴充套件。

使用Kubernetes可以:
1. 自動化容器的部署和複製
2. 隨時擴充套件或收縮容器規模
3. 將容器組織成組,並且提供容器間的負載均衡
4. 很容易地升級應用程式容器的新版本
4. 提供容器彈性,如果容器失效就替換它,等等…

Kubernetes解決的問題:
1. 排程 - 容器應該在哪個機器上執行
2. 生命週期和健康狀況 - 容器在無錯的條件下執行
3. 服務發現 - 容器在哪,怎樣與它通訊
4. 監控 - 容器是否執行正常
5. 認證 - 誰能訪問容器
6. 容器聚合 - 如何將多個容器合併成一個工程

Kubernetes元件組成:
1. kubectl
客戶端命令列工具,將接受的命令格式化後傳送給kube-apiserver,作為整個系統的操作入口。
2. kube-apiserver
作為整個系統的控制入口,以REST API服務提供介面。
3. kube-controller-manager
用來執行整個系統中的後臺任務,包括節點狀態狀況、Pod個數、Pods和Service的關聯等。
4. kube-scheduler
負責節點資源管理,接受來自kube-apiserver建立Pods任務,並分配到某個節點。
5. etcd
負責節點間的服務發現和配置共享。
6. kube-proxy
執行在每個計算節點上,負責Pod網路代理。定時從etcd獲取到service資訊來做相應的策略。
7. kubelet
執行在每個計算節點上,作為agent,接受分配該節點的Pods任務及管理容器,週期性獲取容器狀態,反饋給kube-apiserver。
8. DNS
一個可選的DNS服務,用於為每個Service物件建立DNS記錄,這樣所有的Pod就可以通過DNS訪問服務了。