如何在五分钟内部署轻量化K3S平台

Posted 小堂运维笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在五分钟内部署轻量化K3S平台相关的知识,希望对你有一定的参考价值。

      这期来讲一下K3s的软件部署实战,小堂近期相关的项目也用上了K3S平台,读者朋友也可以了解一下这个技术。

首先,K3S是啥玩意,这里小堂摘抄一份官网的一份介绍说明。

https://docs.rancher.cn/docs/k3s/_index


K3s 是一个轻量级的Kubernetes发行版,它针对边缘计算、物联网等场景进行了高度优化。K3s有以下增强功能:

打包为单个二进制文件。

使用基于sqlite3的轻量级存储后端作为默认存储机制。同时支持使用etcd3、mysql和 PostgreSQL作为存储机制。

封装在简单的启动程序中,通过该启动程序处理很多复杂的TLS和选项。

默认情况下是安全的,对轻量级环境有合理的默认值。

添加了简单但功能强大的batteries-included功能,例如:本地存储提供程序,服务负载均衡器,Helm controller和 Traefik Ingress controller。

所有Kubernetes control-plane组件的操作都封装在单个二进制文件和进程中,使 K3s 具有自动化和管理包括证书分发在内的复杂集群操作的能力。

最大程度减轻了外部依赖性,K3s仅需要 kernel和cgroup挂载。K3s软件包需要的依赖项包括:

  • containerd
  • Flannel
  • CoreDNS
  • CNI
  • 主机实用程序(iptables、socat 等)
  • Ingress controller(Traefik)
  • 嵌入式服务负载均衡器(service load balancer)
  • 嵌入式网络策略控制器(network policy controller)

因此简单理解,K3S就是一个简化版的K8S平台,由于轻量化的组件,因此维护与使用都简单得多。


软件安装


安装K3S

使用脚本安装即可。由于K3S是集群架构,需要一个外部的数据库做集群关系数据的存储,此处有多种方案,可以使用自带的时序性数据库etcd来部署,也可以使用一个外置的mysql数据库来进行部署,这里笔者使用mysql进行部署,如果是使用自带的etcd进行部署,也可以参考官网的部署方案,以下附上相关链接:

https://docs.rancher.cn/docs/k3s/quick-start/_index

那么下面我将与您分享用mysql进行部署K3S


安装master节点

提前准备好mysql服务器、端口与账密,并且需要提前新建一个数据库,名字可自定义。eg:
数据库连接地址:192.168.100.100
端口 3306 数据库库名 k3s 数据库账号 k3suser 密码 Mypasswd
//执行安装
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION=v1.20.5+k3s1 INSTALL_K3S_EXEC="--no-deploy=traefik --kube-apiserver-arg=feature-gates=RemoveSelfLink=false" sh -s - server --datastore-endpoint="mysql://k3suser:Mypasswd@tcp(192.168.100.100:3306)/k3s" --docker
这里指定安装1.20.5版本的k3s,集群内所有节点的版本都必须一致,所有的master节点部署都需要指向同一个mysql。
执行完后执行 kubectl get node -owide 查看master节点是否启动成功,并确保节点STATUS是Ready且是用docker容器


安装worker节点

首先到其中一个master节点获取token
//执行
cat /var/lib/rancher/k3s/server/node-token
会得到一串字符
分别在worker节点上执行以下命令
export K3S_TOKEN=xxxxxx
export K3S_URL=https://192.168.100.100:6443
export INSTALL_K3S_EXEC="--docker --no-deploy traefik"
执行安装(确保k3s版本与master版本一致)
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION=v1.20.5+k3s1 sh -


关于kubectl的设备


kubectl是k8s的一个客户端工具,在k3s中,也可以使用该工具,与搭建好的k3s集群进行通讯
vim /etc/profile
在最下面添加
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
保存退出后
source /etc/profile


启动K3S服务

启动master端
systemctl start k3s-server
启动worker端
systemctl start k3s-agent
至此,平台便可以运行起来了

其他相关的功能

k3s可以实现多master的方案,即有多个master节点,这样的集群稳定性更高,读者朋友可以参考下以下文档进行尝试。

https://docs.rancher.cn/docs/k3s/installation/_index

以上是关于如何在五分钟内部署轻量化K3S平台的主要内容,如果未能解决你的问题,请参考以下文章

K3s+Sysdig,8分钟部署并保护集群安全!

使用autok3s 安装k3s 集群 和 kuboard 管理集群

K3S 离线安装部署高可用集群

在五分钟内创建,运行和部署Spring微服务

15分钟连接Jetson Nano与K8S,轻松搭建机器学习集群

k3s快速搭建k8s集群环境