# 主要組件說明
> 1. Kubernetes 集群中主要存在兩種類型的節點,分別是 master 節點,以及 minion 節點。
> 2. Minion 節點是實際運行 Docker 容器的節點,負責和節點上運行的 Docker 進行交互,并且提供了代理功能。
> 3. Master 節點負責對外提供一系列管理集群的 API 接口,并且通過和 Minion 節點交互來實現對集群的操作管理。
**apiserver**:用戶和 kubernetes 集群交互的入口,封裝了核心對象的增刪改查操作,提供了 RESTFul 風格的 API 接口,通過 etcd 來實現持久化并維護對象的一致性。
**scheduler**:負責集群資源的調度和管理,例如當有 pod 異常退出需要重新分配機器時,scheduler 通過一定的調度算法從而找到最合適的節點。
**controller-manager**:主要是用于保證 replicationController 定義的復制數量和實際運行的 pod 數量一致,另外還保證了從 service 到 pod 的映射關系總是最新的。
**kubelet**:運行在 minion 節點,負責和節點上的 Docker 交互,例如啟停容器,監控運行狀態等。與master的api通信
**proxy**:運行在 minion 節點,負責為 pod 提供代理功能,會定期從 etcd 獲取 service 信息,并根據 service 信息通過修改 iptables 來實現流量轉發(最初的版本是直接通過程序提供轉發功能,效率較低。),將流量轉發到要訪問的 pod 所在的節點上去。
**etcd**:key-value鍵值存儲數據庫,用來存儲kubernetes的信息的。
**flannel**:Flannel 是 CoreOS 團隊針對 Kubernetes 設計的一個覆蓋網絡(Overlay Network)工具,需要另外下載部署。我們知道當我們啟動 Docker 后會有一個用于和容器進行交互的 IP 地址,如果不去管理的話可能這個 IP 地址在各個機器上是一樣的,并且僅限于在本機上進行通信,無法訪問到其他機器上的 Docker 容器。Flannel 的目的就是為集群中的所有節點重新規劃 IP 地址的使用規則,從而使得不同節點上的容器能夠獲得同屬一個內網且不重復的 IP 地址,并讓屬于不同節點上的容器能夠直接通過內網 IP 通信。

## 架構

- docker
- docker安裝
- 數據持久化
- 鏡像管理
- Dockerfile
- 鏡像的分層
- add copy
- 構建實例
- 鏡像的導入導出
- 清理構建空間
- 配置阿里云加速器
- docker網絡模型
- 本地倉庫
- registry
- harbor
- IDEA部署docker
- 軟件安裝
- 安裝es
- 安裝MongoDB
- 安裝rabbitmq
- 安裝redis
- 安裝nacos
- 安裝mysql
- Minio
- 鏡像中心
- kubernetes
- 1. 安裝k8s
- 2.主要組件
- 3.污點
- 4.pod
- 5.控制器
- 6.網絡
- 7.探針
- 8.安裝Dashbord
- 9.secret
- 9.serviceAccount
- 10.service
- 資源清單
- kube-proxy
- flannel源文件
- 服務升級
- 筆記
- 鏡像