K3S 集群搭建
最近学习了K8S集群的部署,期间使用了很多的部署方式,例如官方给出的 kubeadm 工具,青云的KK工具一键部署,也有github上开源免费或收费的一键部署工具,都尝试过,但最后选择了K3S-up 来进行集群的部署。
相对于K8S来说,K3S系统容器数量少,轻量级,并且默认使用 containerd 作为容器运行时,内部的 ingress 使用的是 go 语言开发的 traefik,集成了SQLite 代替 Etcd,但在多个master节点中最好使用 Etcd 组件,来保证数据一致性,从而可以HA。
本次搭建选用阿里云6台共享性服务器。
3台master(2核4g)
3台worker(2核4g)
并搭建 HA-etcd 高可用 k3s 集群。
系统使用 debain 10.10 。
前提条件:
1:先关闭防火墙。并更新 apt-get update。
2:安装 apt-get install cgroupfs-mount,重启机器。
3:下载K3s部署软件。(由于 k3s 资源在github 上,国内服务器下载过慢。可以优先去github下载k3s安装二进制放入服务器中,从而免去下载耗时)
4:使用 k3s help 查看基础命令选用 k3s check-config 命令检测环境是否有问题。 (所有服务器均重复以上步骤 1-4步骤,如果闲麻烦,先把一台服务器执行好这些步骤后复制系统盘镜像,后续创建云服务器时直接选择镜像即可)
5:如果环境所有ok 开始部署第一步 使用 k3sup 初始化第一个平面控制 master 节点命令:
k3sup install --ip #{your_service_ip} --user root --cluster --k3s-version v1.23.4+k3s1 --print-command
6:其他 master 节点加入集群中命令:
k3sup join --ip #{next_service_ip} --user root --server-user root --server-ip #{flast_service_ip} --server --k3s-version v1.23.4+k3s1 --print-command
7:其他 worker 节点加入集群中命令:
k3sup join --user root --server-ip $SERVER1 --ip $AGENT1 --print-command
8:执行节点状态检查:
kubectl get nodes
k3sup 完整命令列表:
- --cluster- 使用嵌入式 etcd(嵌入式 HA)在群集模式下启动此服务器
- --skip-install- 如果您已经安装了k3s,则可以运行此命令来获取kubeconfig
- --ssh-key- 为用于远程登录的 SSH 密钥指定特定路径
- --local-path- 默认值为 - 设置要保存群集的文件。默认情况下,此文件将被覆盖。./kubeconfigkubeconfig
- --merge- 将配置合并到现有文件中,而不是覆盖(例如,将配置添加到默认的 kubectl 配置中,请使用)。--local-path ~/.kube/config --merge
- --context- 默认值为 - 设置 kubeconfig 上下文的名称。default
- --ssh-port- 默认值为 ,但您可以指定备用端口,即222222
- --k3s-extra-args- 可选的额外参数传递给k3s安装程序,用引号括起来,即 或。对于多个参数,请合并,然后在单引号内。--k3s-extra-args '--no-deploy traefik'--k3s-extra-args '--docker'--k3s-extra-args '--no-deploy traefik --docker'
- --k3s-version- 设置 k3s 的特定版本,即v1.21.1
- --k3s-channel- 根据通道设置k3s的特定版本,即stable
- --ipsec- 强制执行 k3s 的可选额外参数:选项:--flannel-backendipsec
- --print-command- 打印出命令,通过SSH发送到远程计算机
- --datastore- 用于将 SQL 连接字符串传递给 k3s 的标志。您必须在Rancher文档中使用k3s要求的格式。--datastore-endpoint
集群控制面板:
k3s可以和 kuboard 组合使用。kuboard 控制面板文档:Kuboard介绍 | Kuboard
这样我们就拥有了一个k3s集群,并且可以横向扩展我们的业务规模了。后续再集成我们的各种监控以及 service mesh 套件。