我这里用的系统环境是 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.repocurl -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集群安装的文章, 可以点击参考下

在线安装K3S集群-外部数据库相关推荐

  1. 在线安装k3s集群-外置mysql数据库

    我这里使用的系统是centos7.6 一.首先准备一个mysql数据库 推荐使用mysql5.7版本,mysql5.7以下版本安装会有问题 二.准备工作 关闭swap # 临时关闭swap分区,当前会 ...

  2. 在线安装TIDB集群

    在线安装TIDB集群  在线安装TiDB集群 服务器准备 说明:TiDB8需要能够连接外网,以便下载各类安装包 TiDB4非必须,但最好是有一台,因为后续测试Mysql数据同步或者进行性能比较时,都要 ...

  3. 基于rancher在线安装k8s集群

    canal作用 运维脉络 使用rancher搭建k8s 部署nginx:

  4. IaC示例:Terraform Ansible自动化创建K3S集群

    上一篇文章介绍了一个轻量级的 Kubernetes 发行版本 - k3s . 这篇文章,我们将通过使用以下几个 IaC(Infrastructure as Code)工具,在本地环境(例如你的 Lin ...

  5. K3S系列文章-使用AutoK3s在腾讯云上安装高可用K3S集群

    开篇 <K3s 系列文章> <Rancher 系列文章> 方案 在腾讯云上安装 K3S 后续会在这套 K3S 集群上安装 Rancher 方案目标 高可用 3 台master ...

  6. 在K3S集群中安装Rancher

    一.首先需要搭建好一个K3S集群 可以看我往期文档搭建 安装前需要确认下,当前需要安装的rancher版本是否支持当前k3s的版本 二.安装helm 下载helm包 wget https://get. ...

  7. 配置高可用K3s集群完全攻略

    前 言 在本文中,我们将简要介绍在高可用性(HA)配置中设置K3s的参考架构.这意味着你的K3s集群可以容忍故障,并保持启动和运行,为你的用户提供流量.你的应用程序也应该针对高可用性进行构建和配置,但 ...

  8. 多云环境下部署 k3s 集群

    多云环境下部署 k3s 集群 最近在玩k3s,刚好手上有三台云服务器(白嫖的一年亚马逊,双11买的腾讯云,朋友的阿里云),尝试跨云厂商搭建k3s集群玩玩 一.基础配置 服务器信息 系统 公网IP 内网 ...

  9. Ambari在离线环境中安装Hadoop集群

    2019独角兽企业重金招聘Python工程师标准>>> http://www.hackbase.com/article-973-1.html (WJW)Ambari在离线环境中安装H ...

最新文章

  1. java 图片传输方式_Java图像传输方法
  2. sequelize的应用
  3. 2、.net NVelocity中原生javascript ajax封装使用
  4. 如何让控件span的id调用ajax_微服务架构之「 调用链监控 」
  5. Django中的shell,和数据增删查改
  6. OpenCV: OpenCV人脸检测框可信度排序
  7. HANA report creation implementation go through
  8. python分词代码_中文分词--最大正向匹配算法python实现
  9. EXTJS Date 的转换格式化字符
  10. 如何获得鼠标选中的值
  11. css基础知识汇总4
  12. 工程从进场到竣工 资料报验的一般程序
  13. 光吹牛可不行 无人驾驶何时才能实现真正无人? | 观察
  14. 固定效应和随机效应模型
  15. python怎么sqrt开方
  16. Xcode真机调试中There was an internal API error错误解决方法
  17. STM32学习心得十九:电容触摸按键实验及相关代码解读
  18. 【你好,windows】Win10 x64 1709 X64企业G纯净版2019.7.28
  19. 智原深耕网通应用 布建完整ASIC解决方案
  20. 联想z400linux调节屏幕亮度,Lenovo Erazer Z400、Z500屏幕亮度无法调节

热门文章

  1. Oracle 的表分区详解
  2. JAD 文件的中文问题
  3. SpringBoot 文件上传 通过Content-Type和文件头判断文件类型
  4. c# 结构体定义中有数组
  5. 01 esp32c3 Arduino 开发环境搭建
  6. 创建新项目时候一直卡在 idealTree:moni: sill idealTree buildDeps
  7. 第三只眼看费城自由钟---旅美散记之四
  8. 下水道的盖子为什么是圆形的
  9. 历史研究(回滚莫队)
  10. 前端UI大全(针对后台管理系统)