写点什么

使用 Rancher Server 部署本地多借点 K8S 集群

  • 2020-05-25
  • 本文字数:1769 字

    阅读完需:约 6 分钟

使用Rancher Server部署本地多借点K8S集群

当我第一次开始我的 Kubernetes 之旅时,我一直在寻找一种设置本地部署环境的方式。很多人常常会使用 minikube 或 microk8s,这两者非常适合新手在单节点集群环境下进行操作。但当我已经了解了基础知识之后,这两者显然不太够用,我需要进一步寻找能够运行本地多节点集群、与生产环境更相似的平台。为此,我查阅了许多参考资料,最后我找到了 Rancher Server。接下来,我要介绍我是如何设置我的本地 K8S 多节点集群的。

准备 master 节点和 worker 节点的虚拟机


上图显示了集群的架构,一个 master 节点和 3 个 worker 节点。要尝试诸如使用 ingress controller 进行负载均衡、会话保持、host 亲和性等跨节点功能,这是最低的配置。


Rancher Server 的安装并不复杂,它被打包为一个 docker 镜像,并且可以作为一个容器运行。一个节点的基本配置是运行在 Linux 虚拟机上的 docker CE 守护进程。在本例中,我选择使用 Ubuntu 18.04 LTS(具体的节点要求请参考 Rancher 的官方文档:https://rancher.com/docs/rancher/v2.x/en/installation/requirements/)。当我完成第一个 VM 设置时,我直接将其复制到另外三个中。如果你和我的操作一样,可以参考下方两个 tips:



最终,4 个节点都在我的电脑(i5,24G RAM)上启动,并分配以下资源。


  • Master 节点(2 core、4G RAM、Ubuntu 18.04 + Docker CE 18.09) x 1

  • Worker 节点(2 core, 3G RAM, Ubuntu 18.04 + Docker CE 18.09) x 3

在 master 节点上启动 Rancher server

sudo docker run --restart=unless-stopped \  -p 81:80 -p 444:443 rancher/rancher
复制代码


以上命令可以启动 Rancher server 容器,并且将其运行在 master 节点上。默认状态下,nginx ingress controller 会嵌入到 worker 节点中,并且绑定端口 80 和 443。因此我将 Rancger server 发布到端口 81 和 444 或其他端口,以避免端口冲突。

完成 Rancher server 初始设置


首先,使用 master 节点 IP 地址和端口 444 启动 Rancher server 控制台,它会要求设置管理员密码。



接着,确认 worker 节点到达 Rancher server 的 URL。这里为了方便我直接使用 master 节点 IP 地址作为 URL。完成了初始设置后,Rancher server 就可以添加新集群了。

创建一个新的 K8S 集群和 master 节点



因为我想要在本地虚拟机上运行 K8S 集群而不是在云端,所以选择“自定义”的选项(即上方说明为“ From my own existing nodes”),然后新集群的云提供商选项选为“None”。



在 ubuntu 虚拟机上复制并运行 docker 命令来启动 master 节点。一个 master 节点至少要有 etcd 和 control,如果你打算创建一个单节点集群,需要选择所有 3 个角色并更改命令。



运行 docker 命令之后,新节点将显示在 Rancher Server 控制台上,配置这一节点需要花费一些时间,一旦配置完成,状态将变为 active。

创建 worker 节点


对于 worker 节点,我们仅需要在节点选项选择“Worker”角色,然后在 3 个 worker 节点的 Ubuntu 虚拟机上复制并运行 docker 命令。



最后,在我的电脑上多节点集群已经准备就绪。

安装 kubectl 工具来管理新的 K8S 集群

新集群的 Kubernetes 版本时 v1.14.6,你可以在上面的截图内看到。为了更好地将 kubectl 工具版本与集群匹配,在 master 节点上运行以下命令,以安装特定版本:


curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.14.6/bin/linux/amd64/kubectlchmod +x ./kubectlsudo mv ./kubectl /usr/local/bin/kubectl
复制代码


Kubectl 工具需要一个 kubeconfig 文件与集群连接,新集群地 kubeconfig 文件可以在 Rancher Server 的控制台中找到。



复制以上 kubeconfig 文件,并保存为~/.kube/config 文件。随后 kubectl 就能够获取集群信息。



有关 kubectl 的安装和配置可以参考以下连接:



原文链接:

https://medium.com/@kwonghung.yip/setup-local-kubernetes-multi-node-cluster-with-rancher-server-fdb7a0669b5c


2020-05-25 16:39790

评论

发布
暂无评论
发现更多内容

架构师训练营第1周学习总结

一叶知秋

架构师训练营 第一周 总结 架构师与架构

CR

极客大学架构师训练营

架构图学习总结

阿布

极客时间-作业一-学习总结

刘柯

架构师训练营第一周【学习总结】

小K

极客大学架构师训练营

如何让自己有机会成为一名架构师?

kk

极客大学架构师训练营

架构师训练营——食堂就餐卡系统设计

养乐多

架构师训练营-第一周学习总结

zongbin

架构总结

架构师训练营-食堂就餐卡系统设计

zongbin

架构文档

食堂就餐卡系统架构设计图

阿布

架构师第一周作业

suke

极客大学架构师训练营

食堂就餐卡系统设计

种个大西瓜

食堂就餐卡系统设计

Arthur.Li

极客大学架构师训练营 UML

作业二:架构师训练营 -第一周

亮灯

软件架构师应该具备哪些素质?

漫步跑小鸡

【第一周】架构训练营总结

星星

【总结】如何成为架构师

Geek_165f3d

第一周作业一:食堂就餐卡系统设计

田振宇

食堂就餐系统

安阳

架构训练学习总结一

mylove321

架构师训练营第一周【作业】

小K

【总结】架构师如何做架构

张金峰

极客大学架构师训练营

架构师训练营0期Week1作业

theivanxu

极客大学架构师训练营

架构师训练营0期Week1总结

theivanxu

第一周作业一:食堂就餐卡系统设计

Larry

架构师训练营第一周-总结

butterfly

【架构课作业-第一周】食堂就餐卡系统设计

Nelson

极客大学架构师训练营

「架构师训练营」第 1 周作业 - 食堂就餐卡系统设计

butterfly

软件架构师的设计语言

dony.zhang

架构师训练营第一周-学习总结

海滨

架构师训练营第一周 - 作业

kk

极客大学架构师训练营

使用Rancher Server部署本地多借点K8S集群_文化 & 方法_Rancher_InfoQ精选文章