背景
k8s
官网部署装置集群的是应用kubeadm
形式,然而该形式比较复杂繁琐,所以产生了一些新的部署装置集群形式,比方k3s
和rke2
等新形式
k3s
有着十分宏大的社区反对,部署装置也非常简单,设计为轻量级的k8s
,能够很好的运行在物联网设施或者边缘计算设施下面
据rke2
官网文档形容说该部署是继承了k3s
的可用性、易操作性和部署模式,继承了与上游 Kubernetes
的严密一致性,在一些中央,K3s
与上游的 Kubernetes
有一致(k3s
魔改了一些k8s
组件),以便为边缘部署进行优化,rke2
同时也预设了平安配置,合乎各项平安测试标准,然而部署形式上比k3s
更简单一些
整体来看抉择k3s
和rke2
都是能够用于生产环境的抉择,如果更重视安全性,能够抉择rke2
硬件资源
3台Ubuntu
服务器,零碎版本22.04
,二核4G
IP
是192.168.100.136
(治理节点),192.168.100.137
(agent
节点),192.168.100.138
(agent
节点)
3台机器能够互相ping
通
执行命令过程当中须要sudo
权限或者切换为root
用户
治理节点配置
节点IP
是192.168.100.136
获取rke2
安装程序
$ curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/rke2/install.sh | INSTALL_RKE2_MIRROR=cn sh -
创立自定义配置文件
$ mkdir -p /etc/rancher/rke2$ vim /etc/rancher/rke2/config.yaml
写入内容如下
- 自定义一个
token
- 配置节点名,该名称是全局惟一的,用于
dns
路由 TLS
证书上增加额定的主机名或IPv4/IPv6
地址作为备用名称,此处填写本机IP
- 配置国内镜像
token: demo-servernode-name: demo-server-nodetls-san: 192.168.100.136system-default-registry: "registry.cn-hangzhou.aliyuncs.com"
启动服务(rke2-server
是采纳systemd
治理,确保节点重启后或过程解体或被杀时主动重启)
$ systemctl start rke2-server$ systemctl enable rke2-server
查看装置的二进制执行文件,rke2
默认是装置到/var/lib/rancher/rke2/bin/
门路上面,然而该门路是不被$PATH
所蕴含的
$ ll /var/lib/rancher/rke2/bin/total 300396drwxr-xr-x 2 root root 4096 Oct 8 08:41 ./drwxr-xr-x 4 root root 4096 Oct 8 08:41 ../-rwxr-xr-x 1 root root 57352072 Oct 8 08:41 containerd*-rwxr-xr-x 1 root root 7381616 Oct 8 08:41 containerd-shim*-rwxr-xr-x 1 root root 11606088 Oct 8 08:41 containerd-shim-runc-v1*-rwxr-xr-x 1 root root 11626984 Oct 8 08:41 containerd-shim-runc-v2*-rwxr-xr-x 1 root root 24838144 Oct 8 08:41 crictl*-rwxr-xr-x 1 root root 20586248 Oct 8 08:41 ctr*-rwxr-xr-x 1 root root 48570656 Oct 8 08:41 kubectl*-rwxr-xr-x 1 root root 114644328 Oct 8 08:41 kubelet*-rwxr-xr-x 1 root root 10973592 Oct 8 08:41 runc*
批改全局PATH
$ vim /etc/profile.d/rke2.sh# 写入如下内容export PATH=$PATH:/var/lib/rancher/rke2/bin
从新加载环境
$ source /etc/profile
当初能够执行kubectl
命令了,然而发现报错如下
$ kubectl get nodesThe connection to the server localhost:8080 was refused - did you specify the right host or port?
这个次要是rke2
应用的配置文件门路问题
能够通过长期指定环境变量
$ KUBECONFIG=/etc/rancher/rke2/rke2.yaml kubectl get nodes
也能够批改/etc/profile.d/rke2.sh
新减少一行
export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
最初验证查看有一个单节点k8s
$ kubectl get nodesNAME STATUS ROLES AGE VERSIONdemo-server-node Ready control-plane,etcd,master 6m27s v1.24.6+rke2r1
Agent
节点配置
Agent
节点共有两个192.168.100.137
,192.168.100.138
获取安装程序
$ curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/rke2/install.sh | INSTALL_RKE2_MIRROR=cn INSTALL_RKE2_TYPE="agent" sh -
创立配置文件
$ mkdir -p /etc/rancher/rke2/$ vim /etc/rancher/rke2/config.yaml
写入内容如下
server
参数示意治理节点的IP
,留神,这个中央应用https
node-name
配置节点名称,两个agent
的配置为不一样的名称token
参数是治理节点192.168.100.136
的地位为/var/lib/rancher/rke2/server/token
的数据,整个粘贴过去就行
server: https://192.168.100.136:9345node-name: demo-agent1token: K101585a6b044d2f961fcffa9b228daa7504c2e5fd5a91c4c80ef2dc87bc757275a::server:demo-serversystem-default-registry: "registry.cn-hangzhou.aliyuncs.com"
启动agent
并配置开机启动
$ systemctl start rke2-agent$ systemctl enable rke2-agent
两台·agent
的操作是根本一样的,惟一区别就是/etc/rancher/rke2/config.yaml
文件中的node-name
参数须要不同
验证集群搭建
在治理节点上执行
$ kubectl get nodesNAME STATUS ROLES AGE VERSIONdemo-agent1 Ready <none> 10m v1.24.6+rke2r1demo-agent2 Ready <none> 67s v1.24.6+rke2r1demo-server-node Ready control-plane,etcd,master 34m v1.24.6+rke2r1
配置kubectl
补全
装置
$ apt-get install bash-completion
配置~/.bashrc
新增如下两行
source /usr/share/bash-completion/bash_completionsource <(kubectl completion bash)
以后shell
失效
$ source ~/.bashrc
参考浏览
kubeadm
部署装置集群
k3s
我的项目
rke2
官网文档
kubectl
补全