15分钟!在Azure上部署Rancher管理Kubernetes
作者简介
作者:Steve Buchanan
Steve Buchanan,Avanade云转型与DevOps团队主管。近20年的IT从业经验,出版过多本云和数据中心管理的技术书籍。从2012年起至今,Steve连续7年成为微软MVP,并在2017年获得过微软"25 ITSM Experts to Watch in 2017"和"IT Unity Community Champ"。
Rancher是一个开源的Kubernetes多集群操作和工作负载管理的解决方案。简而言之,您可以使用Rancher来统一部署和管理公有云(如Azure、AWS、GCP等)上的Kubernetes集群,它们可以是公有云托管的Kubernetes如GCE、EKS、AKS,也可以是用户自己创建的集群。Rancher还集成了许多第三方身份验证解决方案,诸如Active Directory、Azure Active Directory、Github,还有Splunk、Elasticsearch或Syslog端点等日志解决方案。
关于通过Terraform在笔记本电脑或AWS上运行Rancher,我找到了不少现成的的指令和设置脚本可以供用户直接使用,却发现关于Azure + Rancher的相关内容比较少。
我自己尝试后,成功地让我的Rancher环境在Azure上运行了。但我想,如果有一些准备好了的脚本或模板,可以让大家更快速地在Azure上启动Rancher,那就更不错。我找到了一些其他人贡献的ARM模板来驱动Rancher,但是他们部署的是旧版本的Rancher,并且在模板中不清楚如何更新,以部署最新版本的Rancher。于是我决定构建一些可用于在Azure上快速部署Rancher、并将一个Kubernetes主机添加到Rancher的ARM模板。在我构建的这个ARM模板中,它将始终从Docker Hub中拉取Rancher容器,因此它能够保持始终部署了最新版本的Rancher。在这篇文章中,我将详细说明如何让你的Rancher在15分钟内启动并运行。
首先,您可以在我的Github上找到ARM模板:
https://github.com/Buchatech/DeployRanchertoAzure。
这个镜像库中包含了用于部署Rancher的ARM模板和用于Kubernetes的主机VM。注意:我提供的这些模板可以供大家学习使用,但我不建议将其用于生产。
在repo中,名为RancherNode.JSON的ARM模板#1将部署一个带Docker的Ubuntu VM以及最新版的Rancher(https://hub.docker.com/r/rancher/rancher)。名为RancherHost.JSON的ARM模板#2将部署带有Docker的Ubuntu VM,用作为Rancher中的Kubernetes主机。
节点部署
通过"模版部署"或其他部署方法,将RancherNode.JSON的ARM模板部署到Azure订阅中。系统将提示您输入下面这张屏幕截图中显示的信息:
主机部署
通过"模板部署"或其他部署方法,将RancherHost.JSON ARM模板部署到Azure订阅中。需要注意的是,这个操作应该将Rancher Host ARM模版部署到和Rancher Node ARM模板的同一个资源组中。系统将提示您输入下面这张屏幕截图中显示的信息:
部署Rancher Node和Rancher Host ARM模板后,就可以在新资源组中看到以下资源了:
接下来,在Web浏览器中,打开Rancher门户。URL是Rancher Node VM的DNS名称。如果你不知道DNS名称是什么,可以单击概述页面上Azure门户中的Rancher Node VM。以下是URL的示例:
https://ranchernode.centralus.cloudapp.azure.com
Rancher门户将提示您设置密码,就如下图所示:
设置好密码后,Rancher门户将提示您输入正确的Rancher Server URL。这将自动成为Rancher Node VM DNS名称。然后单击"保存URL"。
保存之后,你就会登录到Rancher门户,然后看到集群页面。现在你可以向Rancher添加新的Kubernetes集群了。在这篇文章中,我将展示如何将集群添加到Rancher Host VM。完成所有这一切后,Rancher会成功地将Kubernetes部署到Rancher Host VM。你也可以添加一个托管的Kubernetes,例如AKS,但这篇文章中我们暂时不演示这部分内容了。
单击"添加集群"
在"从我自己的现有节点"下,单击"自定义",为集群命名,然后单击"下一步"。
接下来,检查节点选项的所有可选框,因为所有角色都将在单个Kubernetes集群上。复制页面底部显示的代码,单击"完成",并在Rancher主机上运行代码。
要在Rancher主机上运行代码,您需要SSH并从那里运行它。请按照下列步骤操作:
在Azure门户中,在资源组中点击Rancher Host VM。
在Overview页面上,单击Connect。
稍后会弹出一个"连接到虚拟机"的屏幕,复制屏幕上的"ssh ranchuser@rancherhost.centralus.cloudapp.azure.com"。
通过VS代码,打开Azure云shell的终端或类似终端的终端,然后输入刚刚复制的"ssh ranchuser@rancherhost.centralus.cloudapp.azure.com"。
运行代码将如下所示:
完成后,运行Docker PS,以查看Rancher agent容器是否正在运行:
在集群下的Rancher门户中,可以看到Rancher主机正在配置中:
当Kubernetes部署完成后,状态将发生变化:
完成配置后,Kubernetes集群将处于"活跃"状态了:
现在我们可以看到这个新的Kubernetes集群的大量信息了。我们甚至可以从此处启动Kubectl并开始运行命令!你可以花点时间到处点击试试,看看有哪些是你使用Kubernetes时熟悉的东西。可以说Rancher是真正大幅简化了Kubernetes的管理体验,Cool!
如果要添加更多节点或再次需要配置代码,只需单击我下图框出的省略号按钮,然后进行编辑即可:
在"编辑集群"中,您可以更改集群名称、获取和更改设置、以及复制代码以将更多VM添加到集群中:
本文到此结束,欢迎在作者博客中了解更多有关Azure、Kubernetes、Rancher的技术文章:
http://www.buchatech.com
About Rancher Labs
Rancher Labs由硅谷云计算泰斗、CloudStack之父梁胜创建,致力于打造创新的开源软件,帮助企业在生产环境中运行容器与Kubernetes。旗舰产品Rancher是一个开源的企业级Kubernetes平台,是业界首个且唯一可以管理所有云上、所有发行版、所有Kubernetes集群的平台。解决了生产环境中企业用户可能面临的基础设施不同的困境,改善Kubernetes原生UI易用性不佳以及学习曲线陡峭的问题,是企业落地Kubernetes的不二之选。
Rancher在全球拥有超过一亿的下载量,超过20000家企业客户。全球知名企业如中国人寿、华为、中国平安、民生银行、兴业银行、上汽集团、海尔、米其林、天合光能、丰田、本田、霍尼韦尔、金风科技、普华永道、海南航空、厦门航空、恒大人寿、中国太平、巴黎银行、美国银行、HSCIS恒生指数、中国水利、暴雪、CCTV等均是Rancher的付费客户。