k3s搭建kubernetes集群

680 阅读2分钟

image.png 需要两台ubuntu虚拟机。 集群中每个节点都需要唯一的主机名,这点请记好。 我的两台配置如下:

主机名Linux发行版ip地址节点信息
k3s-node1ubuntu-22.04LTS192.168.10.40docker,master,node
k3s-node2ubuntu-22.04LTS192.168.10.41docker,node

安装k3s server

也就是主节点,或者叫master节点,kubernetes在1.25版本默认使用containerd作为CRI,因此掌握一下containerd的使用是很有必要的,这里我们使用docker来作为CRI安装集群。 docker的安装, 使用以下命令

 curl -fsSL get.docker.com |sh 

k3s-node1上,运行以下命令以安装k3s-server

 curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION=v1.26.1+k3s1 INSTALL_CHANNEL_VERSION=latest sh -s - --docker

实际上,你还需要加上一个token参数,用来帮助agent节点加入server,但这个token值会被记录在/var/lib/rancher/k3s/server/node-token中,所以这个选项不是必须的,如果你想自己配置token,可以加上K3S_TOKEN参数,例如K3S_TOKEN=12345。 只需要稍等片刻,server节点就布置成功了。 image.png

将agent节点加入server

现在我们需要把agent节点同样安装k3s并加入到server中。 在agent节点运行以下命令:

 curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION=v1.26.1+k3s1 INSTALL_CHANNEL_VERSION=latest K3S_URL=https://192.168.10.40:6443 K3S_TOKEN=K103359213688594ace119e90dab2d5dcc95a8f4a504932a0a474cd43f3196dd55f::server:051e00557478475b0a2c1989a70ceca0 sh -s - --docker

其中K3S_URL就是server节点的ip,如果配置了host信息,使用host代替也是可以的。K3S_TOKEN值存储在/var/lib/rancher/k3s/server/agent-token中,完整复制不要省略,如果你在安装的时候指定了K3S_TOKEN,那么使用指定的token值。 稍等片刻,agent就处于可用状态了。 image.png 当然,如果你在agent节点,也就是k3s-node2上运行kubectl命令,将会得到以下信息。 image.png 这不是因为部署错误,而是由于没有集群密钥,如果你需要在agent节点运行kubectl命令,那么执行以下操作。

 mkdir ~/.kube
 scp 192.168.10.40:/etc/rancher/k3s/k3s.yaml ~/.kube/config #替换192.168.10.40为server地址

还有最后一步,就是替换~/.kube/config这个文件中的server地址。 !将标红处,server的ip地址修改为正确地址。 这样在agent节点也可以运行kubectl命令了。 image.png 至此,含有一个agent节点的k3s集群搭建完成。


安装后步骤

k3s安装完成后,删除这两个pod: image.png 这两个pod已经在安装过程中运行完成。使用以下命令删除:

 kubectl delete pod --namespace kube-system helm-install-traefik-crd-kllf2 helm-install-traefik-ckp7x