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台

主机名 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

部署过程

一、基础系统配置

**在4台服务器上面都操作**

1.修改hosts文件,添加:

vim /etc/hosts

#末尾添加:
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 && bash

3, 关闭防火墙,selinux

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

4. 时间同步

timedatectl set-timezone Asia/Shanghai

二、软件包安装

在管理节点(master1)上安装

1.安装Python3

yum install git python3-pip -y

2.在ansible控制端安装

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

三、 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高可用集群

四、在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高可用集群

五、配置集群参数

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

六、验证安装

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高可用集群

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

猜你喜欢

转载自blog.51cto.com/13760351/2620723