Kubernetes之轻量化K3s安装
K3s 是轻量级的 Kubernetes。K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。
它适用于:
- Edge
- IoT
- CI
- Development
- ARM
- 嵌入 K8s
- 无法获得 K8s 集群 PhD 的情况
什么是 K3s?
K3s 是一个完全兼容的 Kubernetes 发行版,具有以下增强功能:
- 打包为单个二进制文件。
- 使用基于 sqlite3 作为默认存储机制的轻量级存储后端。同时支持使用 etcd3、MySQL 和 Postgres。
- 封装在简单的启动程序中,可以处理很多复杂的 TLS 和选项。
- 默认情况下是安全的,对轻量级环境有合理的默认值。
- 添加了简单但强大的 batteries-included 功能,例如:
1.本地存储提供程序
2.service load balancer
3.Helm controller
4.Traefik ingress controller - 所有 Kubernetes control plane 组件的操作都封装在单个二进制文件和进程中。因此,K3s 支持自动化和管理复杂的集群操作(例如证书分发等)。
- 最大程度减轻了外部依赖性,K3s 仅需要现代内核和 cgroup 挂载。K3s 打包了所需的依赖,包括:
1.containerd
2.Flannel (CNI)
3.CoreDNS
4.Traefik (Ingress)
5.Klipper-lb (Service LB)
6.嵌入式网络策略控制器
7.嵌入式 local-path-provisioner
8.主机实用程序(iptables、socat 等)
在 K3s v1.19.1 中,嵌入式 etcd 取代了实验性的 Dqlite。这是一个突破性的变化。请注意,不支持从实验性 Dqlite 升级到嵌入式 etcd。
要在这种模式下运行 K3s,你必须拥有奇数个 Server 节点。我们建议从三个节点开始。
一.安装docker或者containerd
k3s默认安装containerd,可以不安装docker
二.离线下载文件
从 Releases 页面获取要运行的 K3s 版本的镜像 tar 文件
1 | https://github.com/k3s-io/k3s/releases/tag/v1.25.7%2Bk3s1 |
将二进制文件放在/usr/local/bin下命名为k3s(所有服务器都要放)
并添加执行权限
1 | cp k3s /usr/local/bin/k3s |
三.镜像导入本地
将 tar 文件放在 images 目录下(k3s会自动导入)
1 | mkdir -p /var/lib/rancher/k3s/agent/images/ |
四.安装k3s单机版
1.获取安装脚本
1 | https://rancher-mirror.rancher.cn/k3s/k3s-install.sh 或者 https://get.k3s.io |
2.命名为k3s-install.sh并传入master上
1 | chmod 777 k3s-install.sh |
3.在主节点执行初始化命令
基于containerd版
1 | INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='server --token=SECRET' ./k3s-install.sh --cluster-init --disable traefik |
基于docker版
1 | INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='server --token=SECRET' ./k3s-install.sh --cluster-init --disable traefik --docker |
五.后期添加mater与agent节点
1.引擎为containerd无需提前安装,引擎为docker时需要将其他节点安装docker
2.将 tar 文件放在 images 目录下(k3s会自动导入)
1 | mkdir -p /var/lib/rancher/k3s/agent/images/ |
3.从 Releases 页面获取要运行的 K3s 版本的镜像 tar 文件
1 | https://github.com/k3s-io/k3s/releases/tag/v1.25.7%2Bk3s1 |
将二进制文件放在/usr/local/bin下命名为k3s(所有服务器都要放)
并添加执行权限
1 | chmod 777 /usr/local/bin/k3s |
4.找到查看token文件
1 | cat /var/lib/rancher/k3s/server/token |
5.执行添加master主节点命令(K3S_TOKEN更换为本次的token)
1 | INSTALL_K3S_SKIP_DOWNLOAD=true K3S_TOKEN=K108b9c5bdcce1ea3f50b0d97f424737f4577abdf881b770f415fcfe819c00f6f4d::server:SECRET ./k3s-install.sh -s - server --server https://master1:6443 |
6.执行添加agent从节点命令
1 | INSTALL_K3S_SKIP_DOWNLOAD=true K3S_TOKEN=K108b9c5bdcce1ea3f50b0d97f424737f4577abdf881b770f415fcfe819c00f6f4d::server:SECRET ./k3s-install.sh -s - agent --server https://master1:6443 |
等待所有节点Running状态时k3s添加节点成功安装成功。
六.配置harbor镜像仓库
创建配置文件 (所有master与agent都创建)
vim /etc/rancher/k3s/etc/rancher/k3s/registries.yaml
1 | mirrors: |
重启k3s服务
1 | systemctl restart k3s |
拉取测试
1 | crictl pull 192.168.11.6:8083/big-website/test:0.0.1 |
安装可视化工具建议安装kuboard
The End