rancher2.5.x发布,除了新的feature外,更加简洁,体验/研究/熟悉一下,方便后续的落地使用。感觉:太爽了
相关版本信息:
rancher:v2.5.5
helm3:v3.5.1
kubernetes:1.19.7
目录:
(1).rancher部署并在rancher上创建kubernetes单节点集群
(2).宿主机接入kubectl与helm3
1.部署helm3
2.部署kubectl
(3).相关参考
(1).rancher部署并在rancher上创建kubernetes单节点集群
rancher从2.5.5开始使用rancher/rancher的镜像名称。
docker pull rancher/rancher:v2.5.5
在开发和测试环境中,运行单个 Docker 容器安装 Rancher。
与 2.4.x 或之前的版本相比,使用docker run命令安装 Rancher 2.5.x 时,需要添加--privileged标志变量,启用特权模式安装 Rancher。
docker run -d --restart=unless-stopped \
-p 81:80 -p 444:443 \
--privileged \
rancher/rancher:v2.5.5
注意要使用宿主机的81,444端口,避免和后续安装的ingress-nginx发生端口冲突。
然后浏览器中访问:
https://ip:444
第一次访问需要设置admin密码。设置后进入下一步:
提示v2.5的新变化:
主界面:忽略名为local的cluster name,目前还没有使用rancher创建k8s集群。
现在开始创建一个k8s单节点集群,点击“Add Cluster”:
选择创建一个新集群:
除集群名称外都保留默认值:
另外,要记住这个版本号,我们之后要下载这个版本的kubectl:
注意最后的那行命令,需要在k8s的work节点上执行,这样才能将k8s的节点纳入到rancher管理;
一个master节点至少要有etcd和control,如果你打算创建一个单节点集群,需要选择所有3个角色并更改命令:
回到主界面:
注意此时再点击集群进入,你会看到etcd和control plane是未勾选状态:
然后在节点执行如下命令,rancher就会通过RKE在这个节点部署kubernetes:
sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.5.5 --server https://192.168.111.31 --token hh288bh6w5tgcch484tkr6wpz66xmgxw8n5qd7xbpgschc945cfd28 --ca-checksum e30e6c39cec618f2c913e50e4592d71b8186d15c246c0f4ba615524a9c522632 --etcd --controlplane --worker
需要一些时间,稍等即可。
安装过程中的主界面变化:
、
至此,完成rancher搭建kubernetes单节点集群。
关于RKE:
RKE是一个用Golang编写的Kubernetes安装程序,极为简单易用,用户不再需要做大量的准备工作,即可拥有闪电般快速的Kubernetes安装部署体验。
RKE是一款经过CNCF认证的开源Kubernetes发行版,可以在Docker容器内运行。它通过删除大部分主机依赖项,并为部署、升级和回滚提供一个稳定的路径,从而解决了Kubernetes最常见的安装复杂性问题。
(2).宿主机接入kubectl与helm3
1.部署helm3
https://github.com/helm/helm/releases
wget https://get.helm.sh/helm-v3.5.1-linux-amd64.tar.gz
解压后将helm拷贝到/usr/local/bin
helm version验证是否work:
2.部署kubectl
参见文档:
Install and Set Up kubectl
https://kubernetes.io/docs/tasks/tools/install-kubectl/
选择匹配集群的kubectl版本:
curl -LO https://dl.k8s.io/release/v1.19.7/bin/linux/amd64/kubectl
下载后赋权后移动至/usr/local/bin
chmod 755 kubectl
验证:kubectl version
获取rancher搭建的kubernetes集群的kube-config文件:
将kube-config文件放到宿主机这个目录位置:~/.kube/config
现在,通过在宿主机上执行kubectl相关命令,就可以对rancher搭建的kubernetes集群进行操作了。
kubectl get nodes
kubectl get pods --all-namespaces
注意上图中,ingress-nginx的pod是创建失败的,这是因为我们在创建rancher时使用的是80,443端口,而ingress-nginx也是使用的80,443端口,所以在创建ingress-nginx时发生了冲突而创建失败。
任何程序错误,以及技术疑问或需要解答的,请添加