通过Rancher部署kubernetes集群

作者:卫珍佑 于 2020年05月20日 发布在分类/ K8S

通过Rancher2.X版本来快速部署一个K8S集群:

一,部署 Docker

yum install -y yum-utils device-mapper-persistent-data lvm2  #安装依赖包

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

yum list docker-ce --showduplicates | sort –r  #查看docker版本

yum install docker-ce-18.06.3.ce –y    #下载指定版本docker

systemctl enable docker && systemctl start docker   #添加开机自启动并启动docker服务

cat << EOF > /etc/docker/daemon.json      #docker配置仓库和加速

{ "registry-mirrors": [ "https://registry.docker-cn.com" ], "insecure-registries": [ "私有仓库地址" ],

"log-driver":"json-file", "log-opts": {"max-size":"100m", "max-file":"3"}, "live-restore": true }

EOF                

systemctl restart docker     #重启docker使加速器生效

# 非管理员使用 docker

chmod 777 /var/run/docker.sock

useradd web

usermod -a -G docker web

#docker 目录迁移

mv /var/lib/docker /data/docker

ln -s /data/docker /var/lib/docker

systemctl restart docker

二,部署 Rancher

   rancher server(1.6版本)有两个不同的tags,

     rancher/server:latest     这个tag是最新的开发版本,不适用于生产环境

    rancher/server:stable    这个tag是最新的稳定版本,建议用于生产环境.

   Rancher/rancher:latest   这个是2.x版本的最新版本

这里我们部署最新版本的 Rancher 来学习了解一下 Rancher 的部署

部署Rancher服务比较简单,只要安装好docker之后,就可以使用以下命令一键运行起来Rancher服务。

docker run -d --restart=always --name rancher -p 80:80 -p 443:443 -v          

/data/rancher:/var/lib/rancher rancher/rancher:latest

参数解析:

--restart=always   #当容器异常退出时,总是尝试重启

-p 80:80  -p 443:443  #映射服务端口,如果主机得80和443被占用,需要修改为其他端口

-v  /data/rancher:/var/lib/rancher  #映射主机的目录到容器内

#等容器运行成功后,就可以通过浏览器访问Rancher UI界面: http://localhostIP

#可以使用docker ps  查看rancher容器是否正常运行

1,第一次访问时,浏览器警告连接不安全:


2,登录第一步,需要设置登录密码:

3,看到下边的页面,就表示Rancher服务部署成功


三,使用 Rancher 部署 kubernetes 服务

1 ,选择自定义来创建一个集群

   也可以选择导入现有的K8S集群,本次以新建集群为例


2 ,为新集群设置一个名称

3 ,为集群选择合适的 K8S 版本号

4 ,选择对应的节点需要安装的服务

   粘贴命令在需要添加进集群的机器上运行即可

5 ,等待运行服务运行成功即可

6 ,之后通过 UI 界面可以看到新节点添加成功,然后等待系统自动部署 kubernetes 服务

#如果出现以下报错,解决方法如下
[etcd] Failed to bring up Etcd Plane: etcd cluster is unhealthy: hosts [10.0.74.160] failed to report healthy. Check etcd container logs on each host for more information      #可能是服务器时间不同步,需要设置同步时间

解决方法: 1,同步各节点的时间  

    2,彻底卸载需要添加的节点上的docker程序,重新安装

Can not find RKE state file: open /var/lib/rancher/management-state/rke/rke-823550682/cluster.rkestate: no such file or directory     

解决方法: 修改主机名,原VM_200_83_centos改为centos83  

7 ,最终 kubernetes 服务部署成功,会显示如下界面


8 ,接下来需要在管理节点安装 kubectl 管理命令,并复制 kubeconfig 文件

   由于Rancher搭建的Kubernetes集群的所有组件全部以容器方式在运行,所以我们不能直接使用kubectl命令来管理集群,但是Rancher也给出了解决方法,可以自己下载kubectl文件到/bin

安装kubectl命令:

方法一:

  cd /etc/yum.repos.d/

  vim kubernetes.repo     #添加yum

  [kubernetes]

name=kubernetes Repository

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

gpgcheck=1

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

        https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

yum list all | grep ^kube   #查看所有kube开头的安装包

yum -y install kubectl-1.16.6      #安装对应版本的kubectl命令

9,复制kubeconfig文件到管理节点

创建~/.kube/config文件,将这里的内容复制进去

mkdir -pv  ~/.kube

vim ~/.kube/config   (#然后粘贴保存的kubeconfig文件就可以开始操作k8s集群)

[root@csx-online-docker-04 ~]# kubectl get nodes

NAME                   STATUS   ROLES                      AGE   VERSION

csx-online-docker-04   Ready    controlplane,etcd,worker   64m   v1.16.6

# 到此,通过 Rancher 安装 kubenetes 就全部完成了!



分享到朋友圈 分享到微信
发表评论
验证码