Kubernetes On Rancher 1.6 2.0 快速搭建

一、缘起

        一直用Rancher 1.x做私有云Docker管理,但一直没用Kubernets做持久交付,主要是觉得Kubernetes手工搭建好烦(纯粹主观感受,主要是要翻墙你懂的)。试了几种容器化安装Kubernetes的方案,但也都不是很满意,在去年底试了一下Rancher的RKE工具,但kubelet worker安装总是失败,就想着是不是测试版不完善,后来就暂时搁下了。今年Rancher 2.0终于发布了,第一时间试用了一下,一如既往地简便,而且确实完全转向kubernetes了。但是很不幸我还是遇到了kubelet worker安装失败的问题,看Rancher官方论坛帖子也不多,不是很景气的样子,估计2.0刚出来,用的人不多,于是发了个求助,但回答没解决我的问题,一度又想放弃。

二、见到曙光

        就在我准备放弃之时,我打开了1.6的管理界面,想着1.6 总归成熟可用,决定试一下,这次多加了几台虚拟机做worker node,幸运的是新加的居然成功了,原来失败的那台还是碰到kubelet worker docker不停重启失败问题。没有对比就没有伤害,仔细检查问题节点的docker logs输出,原来问题出在主机名的DNS设置上,出问题的主机上/etc/hosts里面主机IP地址解析加了私有域名后缀,但DNS服务器内没有该完整域名对应解析,真是低级错误。干脆删掉/etc/hosts里面域名解析条目后,一切都正常了,Kubernetes集群简简单单就起来了,非常方便。接下来趁热打铁试了下Rancher 2.0的搭建,也成功了。

下面记录一下分别在Rancher1.x 和2.0平台完整建立Kubernetes集群的步骤

三、Rancher1.6建立Kubernetes集群

准备环境:

Rancher服务器,用于部署,可以单独也可以混用。

虚拟机或裸机3台,用于kubernetes集群K8s主机,安装Ubuntu 16.04 ,Docker。

1、主机Ubuntu设置

    Ubuntu设置相对Redhat要方便点。

    注意点:设置不同主机名,/etc/hosts可以不管,因为不用ansible不涉及无密码直接互相ssh的问题。

    1.1禁用SWAP:

       直接修改/etc/fstab文件,注释掉swap项。swapoff -a 只是临时禁用,下次关机重启又恢复原样;

    1.2启用Cgroup:

        修改配置文件/etc/default/grub,启用cgroup内存限额功能,配置两个参数:

            GRUB_CMDLINE_LINUX_DEFAULT="cgroup_enable=memory swapaccount=1"

            GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

        执行sudo update-grub 更新grub,然后重启系统后生效。

    1.3 安装docker

        #apt install docker.io

        官方稳定版1.13.1即可 。

2、Rancher 设置

    Rancher 1.6 先要新建一个Kubernetes环境,然后切换到kubernetes环境,加入Host,生成docker run命令,搭建集群。Kubernetes Master 和node 在Rancher可以自由搭配,通过不同Host加入不同标签指派不同角色。

    2.1 Orchestration Plane编排平面

        对应master节点,加入orchestration=true和 etcd=true标签(etcd主机最好3台以上2n+1台,Data Plane 数据平面存放集群配置数据),编排主机建议2台(高可用)。

    2.2 Compute Plane计算平面

        对应node节点,worker node ,加入compute=true标签即可    

    根据自己的主机数量,规划好节点类型,在每台主机上运行对应的docker run 命令后,回到Host主机管理界面,看每台主机上docker运行情况,不正常的话查看logs。然后通过Kubernetes GUI管理/查看集群。

四、Rancher 2.0

    Rancher 2.0已经正式发布,全面转向Kubernetes,目前不兼容1.6平滑升级。

1、准备好Rancher部署服务器(#docker run -d -p 8008:80 -p 8443:443 --name rancher2 --restart=unless-stopped rancher/rancher)和K8s主机同上。

2、第一次进入Rancher管理界面,会要求设置admin口令,新建集群,类型选Custom,建本地私有云集群,按节点角色自由搭配Control,Etcd,Worker,K8s主机上分别运行生成的Docker run命令,保存后退出,看集群构建的Logs输出提示是否都Active,集群就起来了。

2.0里面看不到1.6那种Docker ps运行的细节了,细节隐藏得比较深,kubernetes不直接展示docker,可通过提供的Kubectl窗口进行查看,有问题需要自己看不同K8s上Docker logs 输出。

总之,用Rancher 容器化部署一套完整的本地私有云Kubernetes集群真的很方便。

你可能感兴趣的:(Kubernetes On Rancher 1.6 2.0 快速搭建)