Kubernetes之轻量化K3s安装
LiuSw Lv6

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
2
https://github.com/k3s-io/k3s/releases/tag/v1.25.7%2Bk3s1
版本v1.25.7+k3s1

将二进制文件放在/usr/local/bin下命名为k3s(所有服务器都要放)
并添加执行权限

1
2
cp k3s /usr/local/bin/k3s
chmod 777 /usr/local/bin/k3s

三.镜像导入本地

将 tar 文件放在 images 目录下(k3s会自动导入)

1
2
mkdir -p /var/lib/rancher/k3s/agent/images/
cp k3s-airgap-images-amd64.tar /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
2
mkdir -p /var/lib/rancher/k3s/agent/images/
cp k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/

3.从 Releases 页面获取要运行的 K3s 版本的镜像 tar 文件

1
2
https://github.com/k3s-io/k3s/releases/tag/v1.25.7%2Bk3s1
版本v1.25.7+k3s1

将二进制文件放在/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
2
3
4
5
6
7
8
9
10
11
mirrors:
"192.168.11.6:8083": # 仓库名称
endpoint:
- "http://192.168.11.6:8083" # 仓库地址
configs:
"192.168.11.6:8083":
auth:
username: admin # 这是私有镜像仓库的用户名
password: 12345678 # 这是私有镜像仓库的密码
tls:
insecure_skip_verify: true

重启k3s服务

1
systemctl restart k3s

拉取测试

1
crictl pull 192.168.11.6:8083/big-website/test:0.0.1

安装可视化工具建议安装kuboard

来自K3s

The End

 评论