什么是 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)
准备工作
建议三台ecs虚机,我这里使用了三台2核8g的aws虚拟机,至少一个外网访问的ip和指向该ip的域名,如果只是体验k3s集群可以降低配置,k3s对内存要求很低
快速安装(使用国内加速镜像)
master节点:curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
worker节点:curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken sh -
在mstart节点输入cat /var/lib/rancher/k3s/server/node-token命令来查看token
这里myserver为:172.31.25.157 mynodetoken为: K10065b55831a603e77de5c7a315b48d114e5c423bd504ac720596a195c76e06ee4::server:689d4414bcab399c6712e580ff6f8fe6
安装结束在master节点的宿主机输入 kubectl get nodes
出现如下图所示状态为安装成功
卸载 K3s
如果你使用install.sh脚本安装了 K3s,那么在安装过程中会生成一个卸载脚本。该脚本在您的节点上的/usr/local/bin/k3s-uninstall.sh上创建(或者是k3s-agent-uninstall.sh)。
打开命令行工具,运行该脚本即可卸载 K3s:
./k3s-uninstall.sh #卸载master节点
./k3s-agent-uninstall.sh #卸载worker节点
可能出现的问题
master节点无法连接,请开放6443端口
其他安装方式
autok3s: 功能介绍 | Rancher文档
k3d:https://github.com/k3d-io/k3d
rancher: 单机单节点rancher直接内置k3s