1. 脚本安装(一键安装)
1.执行如下命令
curl -sfL https://get.k3s.io | sh -
**问题:**由于未指定版本,命令将从稳定频道下载,再加上连接的外网,会出现下载不成功或连接失败等许多问题。
**解决:**指定版本下载。
使用如下命令curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION="v1.23.6+k3s1" sh -s - server
curl -sfL https://get.k3s.io | INSTALL_K3S_CHANNEL=cn INSTALL_K3S_VERSION="v1.23.6+k3s1" sh -s server
INSTALL_K3S_VERSION:指定下载版本
可以看到k3s已经启动。
安装后检查:
查看版本信息及节点列表
2.node节点加入
curl -sfL https://get.k3s.io | INSTALL_K3S_CHANNEL=cn INSTALL_K3S_VERSION="v1.23.6+k3s1" K3S_URL=https://192.168.152.134:6443 K3S_TOKEN=K108fbda3b56e57c97a40204dd87d8a2088f8103fff6399ff5c738b009b3e7716cb::server:2e4f381cbcfa2f62f7086b9dfb07ab17 sh -
由于是外网,很多时候下载不下来,无法正常加入节点。
2. 离线安装(二进制安装)
方法1:Docker + 手动部署镜像方式
确保机器先安装了docker
1.首先,准备好k3s的安装组件
- K3s 的安装脚本(k3s-install.sh)
- K3s 的二进制文件 (k3s)
- K3s 依赖的镜像 (k3s-airgap-images-amd64.tar)
由于国外官网的下载太慢或根本下不下来,找了好久才找到了一个朋友分享的百度云资源,有需要的可以到这里下载。没有网的机器可以先到有网的环境下载好后在传到需要安装的机器上。
本例以安装v1.21.5-k3s2版本
百度网盘离线包:https://pan.baidu.com/s/1V7CvTRuaxuchI3zIEeX2Bw
提取码:zp9r
将 k3s-airgap-images-amd64.tar 移动到 /usr/local/bin 的文件下mv k3s-airgap-images-amd64.tar /usr/local/bin
2.导入镜像到docker镜像列表sudo docker load -i /usr/local/bin/k3s-airgap-images-amd64.tar
docker load:导入镜像的命令
-i(--input) : 指定导入的文件
3.将 K3s 安装脚本和 K3s 二进制文件移动到/usr/local/bin目录下并授予可执行权限mv install.sh k3s /usr/local/bin
chmod +x install.sh k3s
授权 install.sh 执行权限
4.安装k3sINSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='--docker' /usr/local/bin/install.sh
INSTALL_K3S_SKIP_DOWNLOAD:用于离线安装;设置之后不会下载远程工具
INSTALL_K3S_EXEC:用于在服务中启动K3s的后续子命令
可以看到k3s服务已经启动起来了,如此便已经安装成功!
5.node节点加入
准备好k3s二进制文件和安装脚本,并移动到 /usr/local/bin/ 的目录下。
赋予权限:chmod 755 k3s
chmod 755 insatll.sh
修改install.sh文件:export INSTALL_K3S_SKIP_DOWNLOAD=true//
设置跳过下载k3s二进制文件
K3S_TOKEN是server端的, //token是动态的。cat /var/lib/rancher/k3s/server/node-token
获取token
设置token:export INSTALL_K3S_SKIP_DOWNLOAD=trueexport
K3S_TOKEN=K104cf6ea3d543f7d06585137cec3aa4ba49a2a17789d9d191747537bc621078110::server:1bedae728df3ffdd71112b960ea68613
设置server:export K3S_URL=https://192.168.152.134:6443
添加工作节点:./install.sh
在master节点查看:kubectl get nodes
方法2:Containerd + 手动部署镜像方式
- 首先,将下载好的同一版本的 K3s 的安装脚本(k3s-install.sh)、K3s 的二进制文件(k3s)、K3s 依赖的镜像(k3s-airgap-images-amd64.tar)放到/root目录下。
如果你使用的容器运行时为 containerd,在启动 K3s 时,它会检查 /var/lib/rancher/k3s/agent/images/ 是否存在可用的镜像压缩包,如果存在,就将该镜像导入到 containerd 镜像列表中。所以我们只需要下载 K3s 依赖的镜像到 /var/lib/rancher/k3s/agent/images/目录,然后启动 K3s 即可。
需要的文件已经准备好。
- 导入镜像到 containerd 镜像列表。
sudo mkdir -p /var/lib/rancher/k3s/agent/images/ #创建images的文件夹
sudo cp /root/k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/ #将镜像包复制到images文件夹中
- 将 K3s 安装脚本和 K3s 二进制文件移动到对应目录并授予可执行权限。
sudo chmod a+x k3s install.sh #给k3s、install.sh进行授权
sudo cp /root/k3s /usr/local/bin/ #将k3s复制到 /usr/local/bin/ 目录下
- 安装 K3s
INSTALL_K3S_SKIP_DOWNLOAD=true /root/install.sh #安装k3s
INSTALL_K3S_SKIP_DOWNLOAD:用于离线安装;设置之后不会下载远程工具
可以看到K3S已经可以成功启动。
3. 卸载K3s
安装 k3s 的时候,如果之前安装过,再次安装需要卸载干净之前安装过的。
执行此命令:sh /usr/local/bin/k3s-uninstall.sh
rm -rf /root/.kube/*
rm -rf /var/lib/rancher/*
4. FAQ:
安装好后查看pod有时候可能会出现这种情况(centos的系统下)
原因:
由于centos系统在读取时找不到正确的环境变量,查找不到对应的集群,所以会出现这种情况
解决方法:
首先运行起来systemctl start k3s.service
不然不存在/etc/rancher/k3s/k3s.yaml
运行起来后编辑文件设置 vim /etc/profile
在底部增加新的环境变量 export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
或者是
echo "export KUBECONFIG=/etc/rancher/k3s/k3s.yaml" >> /etc/profile
使生效
source /etc/profile
如此便可完美解决