写在前面:
由于前两天公司的服务器崩了,导致我在esxi上部署的K8s环境顷刻间灰飞烟灭,之前的LAB 环境是使用kubeadm搭建的k8s集群环境,本着老一辈好马不吃回头草的精神,于是就用Rancher创建了个新的k8s集群环境,并输出了整个k8s集群部署过程,本篇文章仅供学习交流,切勿直接用于生产。
部署环境说明:
集群环境部署在ESXI 6.0环境中,配置为4C8G,通过Rancher Server自动化构建一个集群环境(1个Master、2个Node)。
Hostname | Centos | Kernel | IP | Docker | Kubernetes |
k8s-rancher | 7.9 | 5.4.101 | 10.1.11.220 | 19.3.15 | 1.19.8 |
k8s-master | 7.9 | 5.4.101 | 10.1.11.221 | 19.3.15 | 1.19.8 |
k8s-node01 | 7.9 | 5.4.101 | 10.1.11.222 | 19.3.15 | 1.19.8 |
k8s-node02 | 7.9 | 5.4.101 | 10.1.11.223 | 19.3.15 | 1.19.8 |
安装Ranhcer Server:
根据Ranhcer官方推荐部署环境,本篇部署Rancher Server v2.5.5 ,部署环境为Centos 7.9 Docker版本19.3.15。
由于Rancer Server是以容器的方式部署运行,所以部署起来非常简单。
一、部署Rancer Server(在k8s-rancher主机上进行):
#修改主机名
hostnamectl set-hostname k8s-rancher
===============================================================
#安装Docker 19.3.5
yum install docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io
===============================================================
#部署Rancher v2.5.5
docker run --privileged -itd -p 80:80 -p 443:443 \
--restart=unless-stopped \
-e CATTLE_AGENT_IMAGE="registry.cn-hangzhou.aliyuncs.com/rancher/rancher-agent:v2.5.5" \
registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.5.5
===============================================================
[root@k8s-rancher ~]# docker -v
Docker version 19.03.15, build 99e3ed8919
复制
二、通过浏览器访问Rnacer Server:
rancher server部署完毕
服务器节点初始设置:
一、k8s节点基础配置(在三台主机上操作):
#修改两台机器的Hostname
hostnamectl set-hostname k8s-master01
hostnamectl set-hostname k8s-node01
hostnamectl set-hostname k8s-node02
#修改hosts文件
vi etc/hosts
10.1.11.220 k8s-rancher
10.1.11.221 k8s-master01
10.1.11.222 k8s-node01
10.1.11.223 k8s-node02
#安装依赖环境
yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git iproute lrzsz bash-completion tree bridge-utils unzip bind-utils gcc
#安装Docker 19.3.5
yum install docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io
#重启docker服务
systemctl restart docker && systemctl enable docker
#安装iptables,设置开机自启,清空iptables规则,保存当前规则到默认规则
systemctl stop firewalld && systemctl disable firewalld
yum -y install iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save
#关闭selinux和swap分区
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' etc/selinux/config
#升级linux内核
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install -y kernel-lt
grub2-set-default 'CentOS Linux (5.4.101-1.el7.elrepo.x86_64) 7 (Core)'
#设置时区
timedatectl set-timezone Asia/Shanghai
timedatectl set-local-rtc 0
#重启依赖于系统时间的服务
systemctl restart rsyslog
systemctl restart crond
#重启设备
reboot
复制
使用Rancer部署K8s集群:
使用rancher部署k8s-master01节点:
一、登陆Rancher管理界面,Global菜单下点击add cluster选项,如图所示
二、在Creat a new Kubernetes cluster选项处点击Existing nodes
三、创建集群设置:定义集群名称、kubernetes版本、组网模式基本信息即可(可按需选择),本篇文章安装的组件信息如下图所示。
四、创建Master节点:在Node Options选项处勾选etcd、Control Plane,然后将命令在k8s-master01机器上执行,然后点击Done,剩下工作就是下楼抽根烟,等待Master节点部署完毕。(部署时间和网路质量有关系,因为会pull一些镜像)。
五、Master节点部署完毕,如下图所示
使用rancher部署k8s-node节点:
一、点击编辑集群选项,如下图所示。
二、添加Worker节点:将命令复制到两台k8s-node01和k8s-node02机器分别执行,如下图所示。
三、等待集群部署完毕:部署过程可以查看安装提示信息,如下图所示。
四、集群部署完毕,如下图所示。
按照以上的步骤输出下来,其实整个集群已经搭建完毕。可以通过Rancher的管理端进行集群状态监测、管理和配置。如果你想在master节点上直接执行kubectl 命令的话还需要在master节点上进行kubectl的相关配置,为了后续可以和F5负载均衡设备进行功能测试,本篇选择了坑比较少的calico BGP组网方案,所以后面还会安装calicoctl命令工具。
Master节点kubectl配置:
一、Master节点安装kubectl
#安装kubectl 1.19.8
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.19.8/bin/linux/amd64/kubectl
chmod +x ./kubectl
mv ./kubectl usr/local/bin/kubectl
复制
二、在Master节点上配置Kubeconfig:在Global处选择创建的k8s集群,然后点击kubeconfig File,复制文本内容,在Master节点上生成config文件。
[root@k8s-master01 .kube]# pwd
/root/.kube
[root@k8s-master01 .kube]# ls
cache config
复制
三、现在可以使用kubectl愉快的操作了
[root@k8s-master01 ~]# kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s-master01 Ready controlplane,etcd 6h21m v1.19.8 10.1.11.221 <none> CentOS Linux 7 (Core) 5.4.101-1.el7.elrepo.x86_64 docker://19.3.15
k8s-node01 Ready worker 6h15m v1.19.8 10.1.11.222 <none> CentOS Linux 7 (Core) 5.4.101-1.el7.elrepo.x86_64 docker://19.3.15
k8s-node02 Ready worker 6h15m v1.19.8 10.1.11.223 <none> CentOS Linux 7 (Core) 5.4.101-1.el7.elrepo.x86_64 docker://19.3.15
复制
Master节点calicoctl配置
一、Master节点安装calicoctl
#安装calicoctl命令行工具
curl -O -L https://github.com/projectcalico/calicoctl/releases/download/v3.13.3/calicoctl
chmod +x calicoctl
mv calicoctl /usr/local/bin/
#设置calicoctl环境变量
DATASTORE_TYPE=kubernetes KUBECONFIG=~/.kube/config calicoctl get nodes
export CALICO_DATASTORE_TYPE=kubernetes
export CALICO_KUBECONFIG=~/.kube/config
复制
二、现在可以使用calicoctl愉快的操作了
[root@k8s-master01 ~]# calicoctl node status
Calico process is running.
IPv4 BGP status
+--------------+-------------------+-------+----------+-------------+
| PEER ADDRESS | PEER TYPE | STATE | SINCE | INFO |
+--------------+-------------------+-------+----------+-------------+
| 10.1.11.222 | node-to-node mesh | up | 02:28:43 | Established |
| 10.1.11.223 | node-to-node mesh | up | 02:29:02 | Established |
+--------------+-------------------+-------+----------+-------------+
IPv6 BGP status
No IPv6 peers found.
复制
总结
以上是本篇使用rancher部署kubernetes集群的全部过程,使用rancher的确可以大大简化集群部署过程,rancher更多的牛逼的功能且学且分享吧。另外多说一嘴,据说rancher后续版本会集成了F5 CIS插件,以后在K8s集群环境中使用Rancher的功能菜单,点点点就能丝滑的下发F5配置的日子指日可待了。期待!
参考链接:
https://rancher.com/support-maintenance-terms/all-supported-versions/rancher-v2.5.5/
https://mp.weixin.qq.com/s/Xpcu1f2jJYDiSKai4-cq2A
https://blog.51cto.com/14268033/2493173
- EOF -
觉得本文对你有帮助,请分享给更多人