k3s安装使用

K3S是SUSE rancher出的一个k8s轻量版的项目,项目地址: https://github.com/rancher/k3s 。k3s比k8s少了五,代表的意思是去掉了一些k8s臃肿的可能不太用得着的组件,精简的后的k3s二进制文件只有40M左右。如果进行离线安装的话,加上离线镜像airgap一共也不到200M,安装所需的最小内存500M就够了,可以说是一个瑞士军刀级的应用了,对于边缘网络、IOT应用比较有优势,对标华为的kubeEdge项目。k3s精简的内容如下:

一、安装使用

1、安装环境准备

需要先关闭下防火墙和selinxu,步骤这里就省略了,另外需要加载相关内核模块,在/etc/modules-load.d/ 目录下新建k3s.conf文件,内容如下:

重启OS后生效。

2、在线安装

在线安装比较简单,只需要执行一指令,即可完成一个单节点k3s集群的安装:

 

如果有新的node节点需要加入集群,执行如下指令即可:

 

上面安装过程中,无论是master节点还是Node节点,后面可以带的参数,可以参看官方install-options 页

安装rancher

 

sudo docker run –privileged -d –restart=unless-stopped -p 80:80 -p 443:443 -v <主机路径>:/var/lib/rancher/ rancher/rancher:stable

sudo docker run -d –name=rancher2 –restart=unless-stopped -p 9080:80 -p 9443:443 rancher/rancher:stable

3、离线安装

当没有外网访问权限时,可以通过离线方式进行安装,通过github页面需要下载三个安装文件:k3s、k3s-airgap-images-amd64.tar.gz,以及安装脚本install.sh。创建镜像目录并把镜像复制到 /var/lib/rancher/k3s/agent/images/目录:

如果有多块网卡,此时也可以通过指定,给出用于集群管理的网卡名称。也可以给出可以使用的端口范围。例如:

默认状态下,K8S只能允许node port的端口绑定到 30000-32767 这个范围, 但是,对于简单的实验,有时需要简单的绑定到 80、443 等端口,这时就可以通过设置 apiserver 的参数来实现自定义绑定范围。

K3S_TOKEN来自于Master节点安装时,生成的token文件:/var/lib/rancher/k3s/server/node-token,所以node节点的安装为:

如果需要指定网卡和相关参数,可以使用如下指令安装:

4、使用

安装完成后,可以使用如下命令查看k3s信息:

在/usr/local/bin/ 目录会发现,kubelet和crictl命令都是k3s的软链接。由于默认k3s没有使用docker,而是使用的containerd,而对应的对容器管理使用的是crictl命令,如果不习惯,也可以使用k3s建一个docker命令的软链接,这里的大部分指令和docker是兼容的。具体如下:

二、发布一个Nginx应用测试

新建如下两个Yaml文件,内容如下:

使用使用kubectl create -f指令应用两个文件,使用kubectl get deployment和kubectl get svc查看状态。

这时候使用http://kube-master:30246或者http://kube-node1:30246都可以正常查看到nginx的默认页面