暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

手把手教你使用Rancher快速创建一个kubernetes集群

小咩社长 2021-03-04
2939
阅读提示|本文大概5377字   阅读需要10分钟





写在前面:

    由于前两天公司的服务器崩了,导致我在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.10110.1.11.220
19.3.15
1.19.8
k8s-master
7.9
5.4.10110.1.11.22119.3.15
1.19.8
k8s-node01
7.9
5.4.10110.1.11.22219.3.15
1.19.8
k8s-node02
7.9
5.4.10110.1.11.22319.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


      #关闭selinuxswap分区
      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 -

                推荐阅读  点击标题可跳转

                1、F5 接入安全策略限制

                2一文读懂F5 REST API的细粒度角色访问控制

                3、[玩转k8s系列之入门篇] 搭建k8s基础环境

                4、tcpdump抓包拆解flannel vxlan模式下的容器跨主机通信流程

                5、浅谈AppleCare+ 延保政策发布!裸奔党的福音


                觉得本文对你有帮助,请分享给更多人

                文章转载自小咩社长,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论