- 官方文档:K3s - 轻量级 Kubernetes | K3s
官方描述,可运行在 systemd 或者 openrc 环境上,那就往精简方向走,使用 alpine 做系统。与 RHEL、Debian 的区别,主要在防火墙侧;其他基础配置需求类似,脚本指令一致。
-  下载安装包【离线安装】:Releases · k3s-io/k3s (github.com) 国内源清华源 k3s - k3s
- k3s-airgap-images-amd64.tar.gz
 
-  拉取官方安装脚本 curl -o install.sh https://get.k3s.io
准备基础环境 ,集群环境,需要克隆多台设备。
-  修改主机名,配置 hosts 文件 # 修改主机名,每个节点不同 echo "master01" > /etc/hostname # 配置静态解析,所有节点相同 cat >> /etc/hosts <<EOF 172.16.60.101 master01 172.16.60.102 master02 172.16.60.103 master03 172.16.60.111 worker01 172.16.60.112 worker02 EOF
-  【重要】引导配置,因为 alpine 自身引导与其他发行版不同,以下为独有配置。 -  编辑配置文件夹 /etc/update-extlinux.conf 末尾添加default_kernel_opts="... cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory"
-  更新配置并重启 update-extlinux reboot
 
-  
安装搭建
单节点部署,all in one
-  下发应用,将 k3s、k3s镜像包、安装脚本下发到各台设备。 
-  安装 k3s 应用 # 部署应用,会自动添加可执行权限 install k3s /usr/local/bin/k3s
-  镜像加载 mkdir -p /var/lib/rancher/k3s/agent/images cp k3s-airgap-images-amd64.tar.gz /var/lib/rancher/k3s/agent/images/
-  离线安装 # 脚本权限配置 chmod +x install.sh # 使用离线安装包,默认初始化,使用的是 sqlite INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh-  根据官方文档,附加参数初始化,对定制友好server | K3s; --node-ip 指定本机IP,同理可绑定其他控制节点或者工作节点IP# 指定网段,并使用 etcd 初始化 INSTALL_K3S_SKIP_DOWNLOAD=true \ sh install.sh server \ --node-ip 172.16.60.101 \ --cluster-init
 
-  
-  检查 # 检查镜像 crictl images # 查看 pod kubectl get pods -A
加入工作节点
-  server 节点查看生成的 token /var/lib/rancher/k3s/server/node-token
-  将离线应用上传到工作节点,k3s、k3s镜像、k3s脚本 
-  工作节点加入,token 即上面获取的这个 # 脚本赋权 chmod +x install.sh # 执行节点加入,节点标识 agent INSTALL_K3S_SKIP_DOWNLOAD=true \ K3S_URL=https://172.16.60.101:6443 \ K3S_TOKEN=K1041f78ac262a8437b79db9557132330054c977edd98e662e9963574f1d8d6b751::server:e439183f4e6296937662f108f7b3363f \ ./install.sh agent
-  检查 # 查看服务,工作节点 rc-service k3s-agent status # 查看运行状态,服务节点 kubectl get nodes
扩容控制节点
-  如果是快速初始化,使用的是 sqlite ,需要转换为 etcd # 停止服务 rc-service k3s stop # 使用 --cluster-init 转换 INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh --cluster-init   
-  master02 启动服务,节点标识 server INSTALL_K3S_SKIP_DOWNLOAD=true \ K3S_URL=https://172.16.60.101:6443 \ K3S_TOKEN=K1041f78ac262a8437b79db9557132330054c977edd98e662e9963574f1d8d6b751::server:e439183f4e6296937662f108f7b3363f \ ./install.sh server
-  master03 启动服务 INSTALL_K3S_SKIP_DOWNLOAD=true \ K3S_URL=https://172.16.60.101:6443 \ K3S_TOKEN=K1041f78ac262a8437b79db9557132330054c977edd98e662e9963574f1d8d6b751::server:e439183f4e6296937662f108f7b3363f \ ./install.sh server
-  检查状态,在 master01 操作 kubectl get nodes
-  在所有节点均能执行 kubectl 命令,只需将 master01 的config文件分发到其他节点 # master 节点 cp /etc/rancher/k3s/k3s.yaml ~/.kube/config # 将 config 配置分发给其他节点 scp ~/.kube/config root@master02:~/.kube/ scp ~/.kube/config root@worker01:~/.kube/