美文网首页K8sDockerDocker
使用Rancher部署k8s集群

使用Rancher部署k8s集群

作者: 翟志军 | 来源:发表于2021-09-12 08:17 被阅读0次

    作者:钟贻乾

    nature-6572635_1280.jpg

    使用Rancher部署k8s集群

    概述

    随着容器的普及和Kubernetes 的日渐成熟,企业内部运行多个Kubernetes 集群已变得颇为常见,然而部署kubernetes集群的方式也多样化,二进制部署、rancher、kubeadm、minikube等。然而本篇文章主要讲解的是如何使用rancher快速部署一个k8s集群。Rancher是一个开源的企业级容器管理平台。通过Rancher,我们不必再使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。

    主机整体规划

    image.png

    一、docker容器安装

    每台机器都需要安装。

    1、删除已存在的docker

    yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-selinux \
                      docker-engine-selinux \
                      docker-engine
    

    2、配置repo源和epel源

    先备份原来的源
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    或
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    运行 yum makecache 生成缓存
    yum makecache
    安装epel源
    yum -y install epel-release
    yum的'--showduplicates'选项对于显示软件包的多个版本很有用。当您有非常特定的依赖项并尝试查找要安装的软件包的特定名称时,它将起着非常大的作用
    # yum list docker --show-duplicates
    

    3、安装依赖

    yum -y install yum-utils device-mapper-persistent-data lvm2
    

    4、添加软件源信息

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

    5、更新并安装Docker-CE

    yum makecache fast
    yum list docker-ce --show-duplicates
    yum -y install docker-ce   #这种方式是安装最新的docker-ce
    

    6、安装指定版本的docker

    yum list docker-ce --show-duplicates
    yum -y install docker-ce-19.03.15-3.el7
    

    7、添加镜像加速

    可参考文档:https://www.cnblogs.com/myitnews/p/11509546.html

    mkdir -p /etc/docker/
    cat > /etc/docker/daemon.json << EOF
    {
    "registry-mirrors": ["https://i******.mirror.aliyuncs.com"] //这里请添加自己的阿里云镜像加速
    }
    EOF
    

    8、启动docker

    # 添加开启启动
    systemctl enable docker
    # 更新xfsprogs
    yum -y update xfsprogs   
    # 启动
    systemctl start docker
    docker info
    # 测试docker是否已经能够正常使用
    # 启动第一个容器
    docker run hello-world
    

    二、启动rancher

    1、启动rancher

    在rancher那台机器上运行:

    # docker run -d --restart=unless-stopped --name rancher -p 80:80 -p 443:443 rancher/rancher:stable
    

    2、查看日志

    # docker logs -f rancher
    ERROR: Rancher must be ran with the --privileged flag when running outside o
    

    启动时需要添加 --privileged 参数

    3、再次启动

    # docker run -d --restart=unless-stopped --privileged --name rancher -p 80:80 -p 443:443 rancher/rancher:stable
    

    4、查看日志

    # docker logs -f rancher
    如果不出现明显的错误就可以了
    

    5、查看运行状态

    # docker ps
    CONTAINER ID   IMAGE                    COMMAND           CREATED          STATUS          PORTS                                      NAMES
    9868df9a9a6e   rancher/rancher:stable   "entrypoint.sh"   10 minutes ago   Up 10 minutes   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   rancher
    

    6、在Web界面登录

    https://192.168.241.138/

    因为是使用https的方式登录,所以会报以下错误。点继续前往就可以了。

    Untitled.png

    7、登录设置密码

    Untitled 1.png

    使用默认的url即可

    Untitled 2.png

    8、语言更换

    Untitled 3.png

    三、集群添加

    1、添加一个k8s集群

    Untitled 4.png

    2、选择自定义

    Untitled 5.png

    3、编写集群信息

    这里使用的选择的是kubernetes 1.18.20的版本。

    Untitled 6.png Untitled 7.png

    Master节点上这个control组件是必须的!!!

    Untitled 8.png

    4、登录到master01

    执行上面copy过来的命令

    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.9 --server https://192.168.241.138 --token 4692pw82n2jhm7qmtzz7dptlpvhwz7ls9f27v2mkv5n9s89mwp6684 --ca-checksum 9cfb504b8d3f05bd9e37477173524ccf1a2b24129ffc941f52dcc2e9c9175310 --node-name k8s-master01 --controlplane --worker
    

    然后就是静静等待集群的启动

    Untitled 9.png

    等到显示active就说明部署好了

    Untitled 10.png

    四、worker-node节点的添加

    1、编辑集群

    Untitled 11.png

    2、直接点击保存

    Untitled 12.png

    3、选择组件

    由于机器的限制,etcd就部署在了worker-node上。etcd尽量以单数形式部署1、3、5、7......

    我这里是选择3台机器部署etcd组件。

    Untitled 13.png

    4、登录node01机器

    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.9 --server https://192.168.241.138 --token 4tldjd8szx8ndgk9k88hmscdx46q2k8lf6l9z7kg5mbjgmwpb452nd --ca-checksum 9cfb504b8d3f05bd9e37477173524ccf1a2b24129ffc941f52dcc2e9c9175310 --node-name k8s-worker-node01 --etcd --worker
    

    5、以后添加node节点只需要添加以下参数就可以了

    主机名:

    --node-name k8s-worker-node02

    --node-name k8s-worker-node03

    组件:

    --etcd

    --controlplane

    --worker

    五、kubectl工具的安装

    我这里是将kubectl工具安装在master上

    1、使用wget命令下载或者将它下载到本地再上传到服务器。

    wget https://storage.googleapis.com/kubernetes-release/release/v1.18.20/bin/linux/amd64/kubectl
    

    2、加x权限

    # chmod +x kubectl
    

    3、将二进制文件移到PATH中

    # mv kubectl /usr/local/bin/
    

    4、查看版本

    # kubectl version --client
    Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.20", GitCommit:"1f3e19b7beb1cc0110255668c4238ed63dadb7ad", GitTreeState:"clean", BuildDate:"2021-06-16T12:58:51Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}
    

    5、创建kube目录

    mkdir ~/.kube
    

    6、编辑config文件

    Untitled 14.png Untitled 15.png

    在~/.kube目录下创建config

    vim ~/.kube/config
    
    

    查看node状态

    # kubectl get nodes
    NAME                STATUS   ROLES                 AGE     VERSION
    k8s-master01        Ready    controlplane,worker   30m     v1.18.20
    k8s-worker-node01   Ready    etcd,worker           5m50s   v1.18.20
    k8s-worker-node02   Ready    etcd,worker           5m1s    v1.18.20
    k8s-worker-node03   Ready    etcd,worker           30m     v1.18.20
    

    查看所有pod状态

    # kubectl get pods -A
    NAMESPACE       NAME                                      READY   STATUS      RESTARTS   AGE
    cattle-system   cattle-cluster-agent-66dcc68754-7lp4q     1/1     Running     2          29m
    cattle-system   cattle-node-agent-5twkm                   1/1     Running     0          5m57s
    cattle-system   cattle-node-agent-v7c5l                   1/1     Running     0          29m
    cattle-system   cattle-node-agent-wsnnr                   1/1     Running     0          6m46s
    ........
    

    如下

    Untitled 16.png

    到这里,rancher部署k8s集群就完成了。可以发现我们只需要在rancher控制台上面点点点的操作就可以简单的把k8s集群部署下来。并且还提供了丰富的可视化功能管理模块。非常方便。

    相关文章

      网友评论

        本文标题:使用Rancher部署k8s集群

        本文链接:https://www.haomeiwen.com/subject/zgatwltx.html