本文章介绍通过Breeze(睿云智合Wise2c项目)Kubernetes图形化集群部署工具,来部署一套包括master节点、worker节点、etcd数据库、harbor镜像库、haproxy高可用、prometheus监控完整的K8S高可用集群。
适用的操作系统:
RHEL/CENTOS:7.4-7.8
Ubuntu 16/18
注意事项:
1. 请不要把Breeze所在的部署主机加入部署集群主机列表;
2. 为了避免包冲突,请使用纯净的CentOS Minimal版安装出来的OS或未经升级过的Ubuntu来部署集群;
3. 对于最小化安装的Ubuntu系统,默认python版本为3,没有安装python2,因此需要对所有Ubuntu被部署节点执行一条命令:
# ln -s /usr/bin/python3 /usr/bin/python //创建软链接
实验拓扑图:
本次实验均使用Centos 7.8 2003 Minimal版部署。
一. 实验环境准备:
6台虚拟机,需要注意每台虚机至少需要4G内存,配置如下:
1. Breeze delpoy部署机设置:
⑴ firewalld防火墙,设置为允许所有端口:
# firewall-cmd --set-default-zone=trusted
# firewall-cmd --reload
# firewall-cmd --list-all
⑵ 永久关闭selinux:
# sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
# init 6 //重启
# getenforce
⑶ 关闭SWAP:
# sed -i '/swap/s/UUID/#UUID/g' /etc/fstab
# swapoff -a
# swapon -s
# free -m //swap各项状态为0,即为关闭
⑷ HOSTS:
# vim /etc/hosts
192.168.50.10 deploy 192.168.50.11 master01 192.168.50.12 master02 192.168.50.13 master03 192.168.50.14 worker01 192.168.50.15 harbor
⑸ SSH免密登录:
# ssh-keygen
# ssh-copy-id master01
# ssh-copy-id master02
# ssh-copy-id master03
# ssh-copy-id worker01
# ssh-copy-id harbor
⑹ scp hosts:
# scp /etc/hosts master01:/etc
# scp /etc/hosts master02:/etc
# scp /etc/hosts master03:/etc
# scp /etc/hosts worker01:/etc
# scp /etc/hosts harbor:/etc
⑺ 安装NTP服务器,服务端:
# yum install -y chrony
# vim /etc/chrony.conf
# systemctl restart chronyd
# systemctl enable chronyd
# chronyc sources
⑻ 安装docker:
# yum install -y docker
# systemctl restart docker ; systemctl enable docker
⑼ 安装docker-compose:
# yum install -y python3-pip
# pip3 install docker-compose
⑽ 下载breeze部署所需文件:
去github breeze项目下载所需部署文件:
https://github.com/wise2c-devops/breeze/releases
我这里部署是1.19.0,就下载所需相关附件,选择zip或tar.gz都可以:
这里我下载tar.gz,并查看所需下载的镜像,选择阿里云yml源:
# tar -zxvf breeze-1.19.0.tar.gz
# cd breeze-1.19.0
# ls
# grep image docker-compose-aliyun.yml
# docker pull registry.cn-shenzhen.aliyuncs.com/breeze-project/pagoda:v1.2.0
# docker pull registry.cn-shenzhen.aliyuncs.com/breeze-project/deploy-ui:v1.8
# docker pull registry.cn-shenzhen.aliyuncs.com/breeze-project/playbook:v1.19.0
# docker pull registry.cn-shenzhen.aliyuncs.com/breeze-project/yum-repo:v1.19.0
# docker pull registry.cn-shenzhen.aliyuncs.com/breeze-project/apt-source:v1.19.0
# docker images
为了方便以后可以离线部署,可以将下载好的镜像进行打包:
# docker save e4faab552b1e ed3d3fa98018 66abd7d1ea9e 3c88689c61a3 9e277012e2b5 > breeze-1.19.0_img.tar //依次输入image id
# ls -lh breeze-1.19.0_img.tar //查看打包好的镜像文件
如果需要离线导入镜像:
# docker load -i breeze-1.19.0_img.tar
⑾ 启动compose:
# cd breeze-1.19.0
# docker-compose -f docker-compose-aliyun.yml up -d
# docker ps -a //查看部署的容器
至此,部署机已经完成配置。
2. 其他节点配置:
# firewall-cmd --set-default-zone=trusted
# firewall-cmd --reload
# firewall-cmd --list-all
# sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
# init 6
# getenforce
# sed -i '/swap/s/UUID/#UUID/g' /etc/fstab
# swapoff -a
# swapon -s
NTP客户端设置:
# yum install -y chrony
# vim /etc/chrony.conf //将breeze deploy部署机ip作为服务器节点
# systemctl restart chronyd ; systemctl enable chronyd
# chronyc sources
确保以上配置无误后,再进行yum源清理:
# rm -rf /etc/yum.repos.d/*
二. 通过Breeze图形化工具部署k8s集群:
在浏览器输入部署机ip地址+88端口:
192.168.50.10:88
添加集群:
添加主机:
添加组件:
请按照图中顺序部署,不再赘述。
完成后,到master节点上,测试一下kubelet服务命令:
# kubectl get nodes
# kubectl get pods -n kube-system
至此,完成所有部署。
三. 图形化工具登录方法:
Kubernetes Dashboard:
https://任意服务器IP:30300
登录到master任意主机上获取token:
# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
2. Prometheus:
Grafana:
http://任意服务器IP:30902
默认用户:admin 默认密码:admin
Prometheus:
http://任意服务器IP:30900
Alertmanager:
http://任意服务器IP:30903
3. Harbor镜像库:
http://192.168.50.15
默认用户:admin 默认密码:Harbor12345
四. 向集群增加worker nodes节点: