在之前我们进行了单节点部署k3s集群,今天主要说一下如何搭建高可用集群。k3s高可用架构如下:
节点配置
节点 | ip | CIRD | 配置信息 |
---|---|---|---|
k3s-main (master1) | 192.168.0.200 | 192.168.0.0/24 | 阿里云ECS 2vCPU 2G |
k3s-node1(master2) | 172.28.64.150 | 172.28.64.0/20 | 阿里云ECS 4vCPU 4G |
k3s-node2(node & lb-mysql) | 172.28.64.151 | 172.28.64.0/20 | 阿里云ECS 4vCPU 4G |
正常环境建议lb单独使用一台服务器,本文是由于资源问题故将lb和node使用一台服务器
环境配置
由于之前已分享过文章[k3s集群部署](k3s集群部署 (qq.com)),故这边就不再对环境、以及dashboard、kuboard安装部署进行说明。各位可以结合那篇文章进行相关操作。
数据库安装
本文采用mysql数据库,各位也可以尝试使用其他数据库。为了测试方便,本文直接使用docker 安装部署。各位也可以直接在服务上部署数据。关于MySQL和docker会在日后进行分享。
# 安装docker
apt-get install docker -y
# 拉取镜像
docker pull mysql:8.0.31
# 创建容器
docker run \
--name k3s-mysql \
-v /k3s-mysql/data:/var/lib/mysql \
-v /k3s-mysql/conf:/etc/mysql/conf.d \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=root \
mysql:8.0.31
# 查看容器是否启动
docker ps -a
# 进入MySQL,并创建数据库和用户
mysql -uroot -proot
create database k3s;
create user 'k3s'@'%' identified by 'k3s';
grant all privileges on k3s.* to 'k3s'@'%';
flush privileges;
master1
curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server \
--token=SECRET \
--datastore-endpoint="mysql://k3s:k3s@tcp(172.28.64.151:3306)/k3s"
# 查看主节点状态,验证节点是否接入
kubectl get node
# 获取server token
cat /var/lib/rancher/k3s/server/token
master2
curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server \
--token=K10695c2c3c138a1660decfcb0800314f9e119406a7386ded5558141a420231d636::server:SECRET \
--datastore-endpoint="mysql://k3s:k3s@tcp(172.28.64.151:3306)/k3s"
# master1 节点执行,可以看到两个master节点,代表成功
kubectl get node
node节点
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://192.168.0.200:6443 K3S_TOKEN=K10695c2c3c138a1660decfcb0800314f9e119406a7386ded5558141a420231d636::server:7826fe1a6a495ef77bfdcb217a771120 sh -
kubectl get node
问题反馈
若对文中有任何的疑问,或者需要帮助可以通过以下方式进行反馈
-
直接进行评论或者单独私聊
-
发送邮件到:mr_xuansu@163.com
更多内容请关注微信公众号:萱蘇的运维日常