在线安装K3S集群-外部数据库

我这里用的系统环境是 centos7.6 使用的集群配置为: 1核2G

一、环境准备

如下 非必须 的也可以不操作

  1. 确保是一台干净的 CentOS7 服务器。

  2. 开放端口(需要在安全组中放开一些必须的端口,确保正常访问)

  3. 准备一个域名,负载均衡到需要安装的k3s Server节点 (master主节点)

这里主要实现主节点负载均衡,当访问对应域名时能自动分发到任意一个主节点上
比如我这里使用 master.k3s.demo.com 负载到每个Server节点上,那么后续通过该域名地址就能连接到Server节点,如果有多个Server节点存在,当有一台Server节点宕机了还能分发到其它正常的Server节点上,保证了高可用

  1. 安装前顺便把源换为国内的 ( 非必须,切换国内源速度会快一些)
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

如下图示例:
在这里插入图片描述

  1. 升级所有包同时也升级软件和系统内核(非必须)
yum -y update
## 如果只升级所有,不升级软件和系统内核 则可以使用如下命令
yum -y upgrade

如下图示例:
在这里插入图片描述
更新完后可以查看下当前系统信息如下:

cat /etc/redhat-release

在这里插入图片描述

  1. 修改主机名(非必须, 可以每台机器的主机名设置一下,方便区分)

这里随便提一下 hostname 跟 hostnamectl 的区别:
临时修改主机名用 hostname 如: hostname k3s-master1
永久修改主机名用hostnamectl 如: hostnamectl set-hostname k3s-master1

# 比如我这里准备两台master节点,那我就可以将这两台机器主机名分别设置为 k3s-master1 跟 k3s-master2 方便日后自己区分
hostnamectl set-hostname k3s-master1
# 如果是node节点则可以分别设置 k3s-node1 , k3s-node2 , ...
hostnamectl set-hostname k3s-node1

在这里插入图片描述
可以查看下,如下:

hostnamectl 

在这里插入图片描述

二、安装K3S

安装后对应的k3s配置文件位置: /etc/rancher/k3s/k3s.yaml

# 这个走的是国外的源,在国内使用这个会慢一些
curl -sfL https://get.k3s.io | sh -

# 如果是国内安装可以使用下面这个
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

# 如果是需要高可用,就是需要多个server节点(master主节点),则需要指定外部数据源, 可参考下面的方式指定外部数据源

如下图所示:
在这里插入图片描述
安装完后如下:
在这里插入图片描述
可以查看下节点状态以及 k3s 版本

kubectl get node

在这里插入图片描述
可以查看下所有 pod 信息

kubectl get pods -A

在这里插入图片描述
到此一个单点节K3S集群就安装好了,如果需要采用外部数据源方式,请参考下面方式

----------------------- 安装需要指定外部数据源,可参考下面方式 ---------------------------
如果想让为K3S指定外部的Mysql 或 MariaDB 存储数据库时, 可以加上对应的数据库配置,如下:

使用 datastore-endpoint 指定数据库信息
格式: --datastore-endpoint=“mysql://数据库账号:数据库密码@tcp(数据库连接地址:数据库端口)/数据库名称”
对应到下面连接: --datastore-endpoint=“mysql://demo:demo123@tcp(mysql.demo.com:3306)/demodb”

# 这个走的是国外的源,在国内使用这个会慢一些
curl -sfL https://get.k3s.io | sh -s - server --datastore-endpoint="mysql://demo:demo123@tcp(mysql.demo.com:3306)/demodb"

# 如果是国内安装可以使用下面这个
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server --datastore-endpoint="mysql://demo:demo123@tcp(mysql.demo.com:3306)/demodb"

如果指定PostgreSQL 数据库,则对应 datastore-endpoint 格式如下:

--datastore-endpoint="postgres://数据库账号:数据库密码@数据库连接地址:数据库端口//数据库名称" 

如果指定etcd存储,则对应 datastore-endpoint 格式如下:

--datastore-endpoint="连接地址:端口" 

# 多个以逗号隔开,例如:
--datastore-endpoint="https://etcd-host-1:2379,https://etcd-host-2:2379,https://etcd-host-3:2379" 

三、向集群中添加新的Server节点(master节点)

使用外部数据源的k3s集群可以添加多个Server节点实现高可用

  1. 在集群中的任意一个Server节点(master)的对应文件中 /var/lib/rancher/k3s/server/node-token 查看token令牌凭证
cat /var/lib/rancher/k3s/server/node-token

在这里插入图片描述

  1. 在需要加入的新机器上执行如下命令,将该机器加入到集群Server节点中

如下 mytoken 表示token令牌凭证,在每个Server节点中都有一份,可查看获取
如下 datastore-endpoint 对应的就是k3s集群外部存储库,指定对应的库就会加入现有的集群中

# 这个走的是国外的源,在国内使用这个会慢一些
curl -sfL https://get.k3s.io | sh -s - server  --token=mytoken  --datastore-endpoint="mysql://demo:demo123@tcp(mysql.demo.com:3306)/demodb"

# 如果是国内安装可以使用下面这个
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server --token=mytoken  --datastore-endpoint="mysql://demo:demo123@tcp(mysql.demo.com:3306)/demodb"
  1. 最后将当前新加入的Server节点IP加入到主节点统一访问的那个域名中

四、向集群中添加新的Agent节点(工作节点)

  1. 在集群中的任意一个Server节点(master)的对应文件中 /var/lib/rancher/k3s/server/node-token 查看token令牌凭证
cat /var/lib/rancher/k3s/server/node-token

在这里插入图片描述

  1. 在需要加入的新机器上执行如下命令,将该机器加入到集群Agent节点中

如下 https://myserver 表示 K3S集群 server节点(主节点的)的地址, 可以是任意一个主节点地址,如果配置了主节点的负载均衡地址的话,这可以填那个统一的域名地址
如下 mytoken 表示token令牌凭证,在每个Server节点中都有一份,可查看获取

# 这个走的是国外的源,在国内使用这个会慢一些 ()
curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=mytoken  sh -

# 如果是国内安装可以使用下面这个
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://myserver:6443 K3S_TOKEN=mytoken  sh -

以前也有写过类似的一篇K3S集群安装的文章, 可以点击参考下

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值