一、環境

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的網路外掛支援,更方便進行路由控制,釋出,和安全策略管理