一、環境
1、作業系統
Centos 7.4
2、主機資訊
K8S Master主機:
kb-master-001 192.168.0.11
kb-master-002 192.168.0.12
kb-master-003 192.168.0.13
K8S Node主機:
kb-node-001 192.168.0.11
kb-node-002 192.168.0.12
kb-node-003 192.168.0.13
kb-node-004 192.168.0.14
K8S etcd主機:
kb-node-001 192.168.0.11
kb-node-002 192.168.0.12
kb-node-003 192.168.0.13
二、K8S元件說明
k8s 高可用2個核心:apiserver master 和 etcd
apiserver master:(需高可用)叢集核心,叢集API介面、叢集各個元件通訊的中樞;叢集安全控制;
etcd :(需高可用)叢集的資料中心,用於存放叢集的配置以及狀態資訊,非常重要,如果資料丟失那麼叢集將無法恢復;因此高可用叢集部署首先就是etcd是高可用叢集;
kube-scheduler:排程器 (內部自選舉)叢集Pod的排程中心;預設kubeadm安裝情況下–leader-elect引數已經設定為true,保證master叢集中只有一個kube-scheduler處於活躍狀態;
kube-controller-manager: 控制器 (內部自選舉)叢集狀態管理器,當叢集狀態與期望不同時,kcm會努力讓叢集恢復期望狀態,比如:當一個pod死掉,kcm會努力新建一個pod來恢復對應replicas set期望的狀態;預設kubeadm安裝情況下–leader-elect引數已經設定為true,保證master叢集中只有一個kube-controller-manager處於活躍狀態;
kubelet: agent node註冊apiserver
kube-proxy: 每個node上一個,負責service vip到endpoint pod的流量轉發,老版本主要通過設定iptables規則實現,新版1.9基於kube-proxy-lvs 實現
kube-router的網路外掛支援,更方便進行路由控制,釋出,和安全策略管理