在线安装K3S集群-外部数据库
我这里用的系统环境是 centos7.6 使用的集群配置为: 1核2G
一、环境准备
如下 非必须 的也可以不操作
确保是一台干净的 CentOS7 服务器。
开放端口(需要在安全组中放开一些必须的端口,确保正常访问)
准备一个域名,负载均衡到需要安装的k3s Server节点 (master主节点)
这里主要实现主节点负载均衡,当访问对应域名时能自动分发到任意一个主节点上
比如我这里使用 master.k3s.demo.com 负载到每个Server节点上,那么后续通过该域名地址就能连接到Server节点,如果有多个Server节点存在,当有一台Server节点宕机了还能分发到其它正常的Server节点上,保证了高可用
- 安装前顺便把源换为国内的 ( 非必须,切换国内源速度会快一些)
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repocurl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
如下图示例:
- 升级所有包同时也升级软件和系统内核(非必须)
yum -y update
## 如果只升级所有,不升级软件和系统内核 则可以使用如下命令
yum -y upgrade
如下图示例:
更新完后可以查看下当前系统信息如下:
cat /etc/redhat-release
- 修改主机名(非必须, 可以每台机器的主机名设置一下,方便区分)
这里随便提一下 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节点实现高可用
- 在集群中的任意一个Server节点(master)的对应文件中 /var/lib/rancher/k3s/server/node-token 查看token令牌凭证
cat /var/lib/rancher/k3s/server/node-token
- 在需要加入的新机器上执行如下命令,将该机器加入到集群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"
- 最后将当前新加入的Server节点IP加入到主节点统一访问的那个域名中
四、向集群中添加新的Agent节点(工作节点)
- 在集群中的任意一个Server节点(master)的对应文件中 /var/lib/rancher/k3s/server/node-token 查看token令牌凭证
cat /var/lib/rancher/k3s/server/node-token
- 在需要加入的新机器上执行如下命令,将该机器加入到集群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集群安装的文章, 可以点击参考下
在线安装K3S集群-外部数据库相关推荐
- 在线安装k3s集群-外置mysql数据库
我这里使用的系统是centos7.6 一.首先准备一个mysql数据库 推荐使用mysql5.7版本,mysql5.7以下版本安装会有问题 二.准备工作 关闭swap # 临时关闭swap分区,当前会 ...
- 在线安装TIDB集群
在线安装TIDB集群 在线安装TiDB集群 服务器准备 说明:TiDB8需要能够连接外网,以便下载各类安装包 TiDB4非必须,但最好是有一台,因为后续测试Mysql数据同步或者进行性能比较时,都要 ...
- 基于rancher在线安装k8s集群
canal作用 运维脉络 使用rancher搭建k8s 部署nginx:
- IaC示例:Terraform Ansible自动化创建K3S集群
上一篇文章介绍了一个轻量级的 Kubernetes 发行版本 - k3s . 这篇文章,我们将通过使用以下几个 IaC(Infrastructure as Code)工具,在本地环境(例如你的 Lin ...
- K3S系列文章-使用AutoK3s在腾讯云上安装高可用K3S集群
开篇 <K3s 系列文章> <Rancher 系列文章> 方案 在腾讯云上安装 K3S 后续会在这套 K3S 集群上安装 Rancher 方案目标 高可用 3 台master ...
- 在K3S集群中安装Rancher
一.首先需要搭建好一个K3S集群 可以看我往期文档搭建 安装前需要确认下,当前需要安装的rancher版本是否支持当前k3s的版本 二.安装helm 下载helm包 wget https://get. ...
- 配置高可用K3s集群完全攻略
前 言 在本文中,我们将简要介绍在高可用性(HA)配置中设置K3s的参考架构.这意味着你的K3s集群可以容忍故障,并保持启动和运行,为你的用户提供流量.你的应用程序也应该针对高可用性进行构建和配置,但 ...
- 多云环境下部署 k3s 集群
多云环境下部署 k3s 集群 最近在玩k3s,刚好手上有三台云服务器(白嫖的一年亚马逊,双11买的腾讯云,朋友的阿里云),尝试跨云厂商搭建k3s集群玩玩 一.基础配置 服务器信息 系统 公网IP 内网 ...
- Ambari在离线环境中安装Hadoop集群
2019独角兽企业重金招聘Python工程师标准>>> http://www.hackbase.com/article-973-1.html (WJW)Ambari在离线环境中安装H ...
最新文章
- java 图片传输方式_Java图像传输方法
- sequelize的应用
- 2、.net NVelocity中原生javascript ajax封装使用
- 如何让控件span的id调用ajax_微服务架构之「 调用链监控 」
- Django中的shell,和数据增删查改
- OpenCV: OpenCV人脸检测框可信度排序
- HANA report creation implementation go through
- python分词代码_中文分词--最大正向匹配算法python实现
- EXTJS Date 的转换格式化字符
- 如何获得鼠标选中的值
- css基础知识汇总4
- 工程从进场到竣工 资料报验的一般程序
- 光吹牛可不行 无人驾驶何时才能实现真正无人? | 观察
- 固定效应和随机效应模型
- python怎么sqrt开方
- Xcode真机调试中There was an internal API error错误解决方法
- STM32学习心得十九:电容触摸按键实验及相关代码解读
- 【你好,windows】Win10 x64 1709 X64企业G纯净版2019.7.28
- 智原深耕网通应用 布建完整ASIC解决方案
- 联想z400linux调节屏幕亮度,Lenovo Erazer Z400、Z500屏幕亮度无法调节