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并从那里运行它。请按照下列步骤操作:

  1. 在Azure门户中,在资源组中点击Rancher Host VM。

  2. 在Overview页面上,单击Connect。

  3. 稍后会弹出一个“连接到虚拟机”的屏幕,复制屏幕上的“ssh ranchuser@rancherhost.centralus.cloudapp.azure.com”。

  4. 通过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

1 个评论

有任何疑问或者想法,欢迎添加微信助手(rancher2),进官方技术群,和大家一起交流~

要回复文章请先登录注册