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

一箫一剑平生意,负尽狂名十五年。这篇文章主要讲述如何在五分钟内部署轻量化K3S平台相关的知识,希望能为你提供帮助。
      这期来讲一下K3s的软件部署实战,小堂近期相关的项目也用上了K3S平台,读者朋友也可以了解一下这个技术。
首先,K3S是啥玩意,这里小堂摘抄一份官网的一份介绍说明。
?https://docs.rancher.cn/docs/k3s/_index?
【如何在五分钟内部署轻量化K3S平台】

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=cnINSTALL_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??

    推荐阅读