當前位置:編程學習大全網 - 網絡軟體 - 高可用kubernetes集群搭建

高可用kubernetes集群搭建

架構說明

Kubernetes集群組件:

k8s集群高可用,壹般是etcd,kube-apiserver,kube-controller-manager,kube-scheduler服務組件的高可用。

規劃:

3個master節點,2個worker節點,使用keepalived+haproxy做高可用

壹、前期環境準備

Kubernetes 1.8開始要求關閉系統的Swap,如果不關閉,默認配置下kubelet將無法啟動。

方法壹 通過kubelet的啟動參數–fail-swap-on=false更改這個限制。

方法二 關閉系統的Swap, swapoff -a

修改/etc/fstab文件,註釋掉SWAP的自動掛載,使用free -m確認swap已經關閉。

二、docker安裝

安裝docker-ce,所有節點都要安裝

yum-utils 提供yum-config-manager工具,devicemapper存儲需要device-mapper-persistent-data和lvm2

添加yum源倉庫

官方倉庫

安裝docker

配置docker中國鏡像加速器,修改cgroup driver為systemd,k8s建議使用systemd,配置後重啟docker

三、安裝haproxy,keepalived

安裝haproxy和keepalived,實現kube-apiserver高可用

psmisc提供killall命令

配置haproxy

配置keepalived

註意:在另外兩個節點,設置state為BACKUP,priority設置為110,100

啟動所有節點的haproxy和keepalived

查看VIP

註意,使用ifconfig命令是看不到的,必須使用ip addr命令

這時候vip在130.252.10.235上,我們關閉235上的haproxy,驗證vip是否會漂移到其他節點

四、kubeadm/kubelet/kubectl安裝

master節點安裝:kubeadm、kubelet、kubectl

node節點安裝:kubeadm、kubelet

安裝

五、使用kubeadm初始化cluster

step1 準備初始化配置文件

根據自己的環境修改配置.

step2 處理kubernetes依賴的鏡像

master需要的鏡像為

node節點需要的鏡像為

查看需要的鏡像版本

拉取鏡像

六、初始化第壹個master節點

註意:如果妳禁用了swap分區,則不需要加--ignore-preflight-errors=Swap

配置kubectl

啟用kubectl的自動補全命令

七、安裝Pod網絡flannel

八、將其他master節點添加到cluster

將node1證書文件復制到其他master節點node2,node3

分別在master1和master2 執行下面的命令

九、將node節點添加到cluster

十、檢查集群運行 健康

在master節點查看節點狀態

所有的節點都是NotReady,這是因為每個節點都需要啟動若幹組件,這些組件都是在pod中運行,需要從Google下載鏡像

查看pod的狀態

查看集群信息

查看etcd集群

查看集群是否 健康

查看集群的leader

註意 :因為是3個節點的ETCD集群,所以只能有壹個宕機,如果同時又2個節點宕機,則會出現問題Unable to connect to the server: EOF

etd集群需要大多數節點(仲裁)才能就集群狀態的更新達成壹致,所以ETCD集群節點壹般是奇數個,而且只有存活節點個數大於下線節 點個數才能正常運行,5個節點的ETCD集群,允許同時2個節點故障。

壹般建議5個節點,超過五個雖然容錯性更高,但是集群寫入性就會差。

檢查IPVS

  • 上一篇:祁漢出生於哪裏
  • 下一篇:校園英語角活動總結
  • copyright 2024編程學習大全網