kubeasz搭建K8S高可用集羣

高可用架構圖

kubeasz搭建K8S高可用集羣

高可用集羣所需節點配置

角色 數量 描述
管理節點 1 運行ansible/easzctl腳本,能夠複用master節點, 建議使用獨立節點
etcd節點 3 注意etcd集羣須要1,3,5,7...奇數個節點,通常複用master節點
master節點 2 高可用集羣至少2個master節點
node節點 3 運行應用負載的節點,可根據須要提高機器配置/增長節點數

部署環境

本次測試部署的是高可用架構的K8S,因此須要3臺以上的虛擬機,我這裏使用4臺node

主機名 IP地址 配置 角色 系統
master1 192.168.0.117 2C5G 管理節點、master節點 CentOS 7.8
master2 192.168.0.125 2C4G master節點 CentOS 7.8
node1 192.168.0.130 2C3G node節點 CentOS 7.8
node2 192.168.0.131 2C3G node節點 CentOS 7.8

備註:因爲網絡緣由,easzup可能會出現下載失敗狀況,這裏把easzup2.2.1 版本工具分享給你們
百度網盤分享連接:https://pan.baidu.com/s/1GJtn5EkCSXR39KAMVe8Pzw
提取碼:j0wj python

部署過程

1、基礎系統配置

**在4臺服務器上面都操做**

1.修改hosts文件,添加:

vim /etc/hostslinux

#末尾添加:
192.168.0.117 master1 
192.168.0.125 master2 
192.168.0.130 node1
192.168.0.131 node2

kubeasz搭建K8S高可用集羣

2.修改主機名

hostnamectl set-hostname master1 && bash
hostnamectl set-hostname master2 && bash
hostnamectl set-hostname node1 && bash
hostnamectl set-hostname node2 && bashgit

3, 關閉防火牆,selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl stop firewalld
systemctl disable firewalldgithub

4. 時間同步

timedatectl set-timezone Asia/Shanghaidocker

2、軟件包安裝

在管理節點(master1)上安裝vim

1.安裝Python3

yum install git python3-pip -ybash

2.在ansible控制端安裝

pip3 install ansible==2.6.18 netaddr==0.7.19 -i https://mirrors.aliyun.com/pypi/simple/服務器

3、 ssh免密

1.生成公鑰

ssh-keygen網絡

2.推送公鑰

ssh-copy-id master1
ssh-copy-id master2
ssh-copy-id node1
ssh-copy-id node2
ssh node2 #測試鏈接

kubeasz搭建K8S高可用集羣

4、在ansible控制端編排k8s安裝

1.下載工具腳本easzup

export release=2.2.1
curl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases/download/${release}/easzup
chmod +x ./easzup #受權

2.使用工具腳本下載docker

./easzup -D

kubeasz搭建K8S高可用集羣

5、配置集羣參數

1 修改配置:

cd /etc/ansible && cp example/hosts.multi-node hosts
vim hosts #修改此hosts文件:

[etcd]
192.168.0.117 NODE_NAME=etcd1
192.168.0.125 NODE_NAME=etcd2
192.168.0.130 NODE_NAME=etcd3

#master node(s)
[kube-master]
192.168.0.117
192.168.0.125

#work node(s)
[kube-node]
192.168.0.130
192.168.0.131

CLUSTER_NETWORK="calico"

2 驗證ansible 安裝:

ansible all -m ping #正常能看到節點返回 SUCCESS

kubeasz搭建K8S高可用集羣

3.開始安裝K8S

ls #查看此目錄下須要執行的劇本

kubeasz搭建K8S高可用集羣

使用分步安裝(推薦)

1.建立證書和安裝準備

ansible-playbook 01.prepare.yml

若是發生下圖錯誤:
kubeasz搭建K8S高可用集羣

嘗試這樣子解決:

yum install libselinux-python -y
cat /etc/selinux/config

kubeasz搭建K8S高可用集羣

init 6 #重啓服務器
cd /etc/ansible
ansible-playbook 01.prepare.yml #從新運行劇本

kubeasz搭建K8S高可用集羣

2.安裝etcd集羣

ansible-playbook 02.etcd.yml

kubeasz搭建K8S高可用集羣

3.安裝docker服務

ansible-playbook 03.docker.yml

kubeasz搭建K8S高可用集羣

4.安裝master節點

ansible-playbook 04.kube-master.yml

kubeasz搭建K8S高可用集羣

5.安裝node節點

ansible-playbook 05.kube-node.yml

kubeasz搭建K8S高可用集羣

6.安裝集羣網絡

ansible-playbook 06.network.yml

kubeasz搭建K8S高可用集羣

7.安裝集羣插件

ansible-playbook 07.cluster-addon.yml

kubeasz搭建K8S高可用集羣

若是你對集羣安裝流程不熟悉,請先使用一鍵安裝:(不推薦使用)

#一步安裝
ansible-playbook 90.setup.yml

6、驗證安裝

1.驗證集羣版本

kubectl version

kubeasz搭建K8S高可用集羣

kubectl get componentstatus

kubeasz搭建K8S高可用集羣

2.驗證節點就緒 (Ready) 狀態

kubectl get nodes

kubeasz搭建K8S高可用集羣

3.驗證集羣pod狀態

kubectl get pod --all-namespaces

kubeasz搭建K8S高可用集羣

4. 驗證集羣服務狀態

kubectl get svc --all-namespaces

kubeasz搭建K8S高可用集羣

5.查看dashboard

kubectl get svc -n kube-system|grep kubernetes-dashboard
kubeasz搭建K8S高可用集羣

6. 訪問網頁 https://192.168.0.117:33613/

kubeasz搭建K8S高可用集羣

kubeasz搭建K8S高可用集羣

kubectl -n kube-system describe secret admin-user

kubeasz搭建K8S高可用集羣

kubeasz搭建K8S高可用集羣
kubeasz搭建K8S高可用集羣

參考文檔 :

https://github.com/easzlab/kubeasz/blob/master/docs/setup/quickStart.md
https://www.97hjh.cn/archives/%E5%9F%BA%E4%BA%8Eeaszup%E4%B8%80%E9%94%AE%E6%90%AD%E5%BB%BAk8s%E9%9B%86%E7%BE%A4

相關文章
相關標籤/搜索