今天我们要演示如何在微软的 Azure 云上部署自主部署版的 OpenResty XRay。视频演示中用到的命令说明,详见文档

创建订阅和资源组

第一步我们要创建订阅和资源组,打开 Azure 首页,点击订阅图标。

Screenshot

这里我们已经提前创建好了订阅,名字叫 Azure subscription 1。

Screenshot

再返回 Azure 首页。

Screenshot

准备创建资源组,点击资源组图标。

Screenshot

这里我们已经创建好了资源组,名字叫 AKS。资源组 AKS 隶属于刚刚创建好的订阅 Azure subscription 1。

Screenshot

创建 Azure Kubernetes 服务

第二步,我们来创建 Azure Kubernetes 服务。我们返回 Azure 首页,点击 Kubernetes 服务图标。

Screenshot

点击创建按钮,选择创建 Kubernetes cluster。

Screenshot

选择刚刚创建好的资源组,名为 AKS。

Screenshot

这里选择群组的配置,这里按照自己的需求选择即可。

Screenshot

这里根据需求来选择节点的大小。

Screenshot

其他的配置根据自己的需求调节,然后点击 Review + Create 即可。

Screenshot

Screenshot

等待部署完成。

Screenshot

Screenshot

准备环境变量

第三步,准备后面要用到的环境变量。

打开一个终端,登录 Linux 机器。

我们使用 .env.sample 文件来做演示。

Screenshot

这些环境变量的使用说明详见文档

Screenshot

通过命令行登录 Azure

第四步,通过命令行登录 Azure。

注意,我们需要事先安装好 Azure 的命令行工具 az。

具体安装文档详见 Azure 官方文档

这里我们使用 az login 命令,打开提示的 URL。

Screenshot

登录成功后,界面如下:

Screenshot

执行 az account 命令绑定订阅。

Screenshot

Screenshot

接下来,执行 az aks 命令,获取 Kubernetes 的访问配置。

Screenshot

为 Kubernetes 创建 namespace 和 secret

第五步,为 Kubernetes 创建 namespace 和 secret。

先创建 Kubernetes namespace。

Screenshot

再创建 Kubernetes Secret。

Screenshot

创建 Azure Disk

第六步,创建 Azure Disk。

先获取节点的资源组名称。

Screenshot

再使用命令创建 Azure Disk。

Screenshot

使用相同的命令创建要使用的多块硬盘,这些命令在我们的文档中都有说明。

Screenshot

更新持久化卷的配置文件

第七步,更新持久化卷的配置文件。

这一步使用我们提供的配置文件即可。

Screenshot

获取节点的资源组名称。

Screenshot

用 sed 命令替换持久化卷的的配置。

Screenshot

更新 kubernetes 的配置文件

第八步,更新 kubernetes 的配置文件。

Screenshot

XRAY_CONSOLE_HOST 变量是部署好 OpenResty XRay 服务后,要使用的域名。

Screenshot

用 sed 命令替换 kubernetes 配置。

Screenshot

创建持久化卷

第九步,创建持久化卷。

使用 kubectl apply 命令即可。

Screenshot

持久化卷创建成功后,可以使用 kubectl get 命令查看。

Screenshot

部署 Kubernetes 服务

第十步,部署 Kubernetes 服务。

这里也是使用 kubectl apply 命令部署 Kubernetes 服务。

Screenshot

使用 kubectl get 命令查看服务状态为 Running 即为部署成功。

Screenshot

配置应用网关

最后一步,是配置应用网关。

打开 Azure 管理界面首页。打开 Kubernetes 服务。

Screenshot

Screenshot

选择 Networking 来配置网络。

Screenshot

勾选 Enable ingress controller。

Screenshot

保存。

Screenshot

保存后,会创建一个 ingress controller。

Screenshot

选中刚创建的 ingress controller,选择 Backend pool 配置。

Screenshot

编辑已经存在的后端池。

Screenshot

后端的 IP 地址通过文档中所示的命令可以获取到。

Screenshot

Screenshot

保存。

Screenshot

接下来,选择 Health Probes 进行配置 这一步是配置到后端的健康检查。

Screenshot

按图示填好保存即可。

Screenshot

Screenshot

Screenshot

接下来,我们开始配置 Listeners 即配置网关的监听端口以及服务。

Screenshot

可以看到默认已经配置了监听 80 端口的 http 服务。

Screenshot

我们再添加一个监听 443 端口的 https 服务。

Screenshot

Screenshot

这里需要上传 https 服务所需的证书。

Screenshot

Screenshot

按照文档中说明的命令可以转换普通证书为 pfx 格式。

Screenshot

Password 处填写 pfx 格式的证书密码。

Screenshot

我们选择 Rules 来配置转发规则。

Screenshot

修改默认的规则。

Screenshot

将 Listener 改为我们刚刚创建的 443 端口的 https 服务。

Screenshot

再选择 Backend target 子选项卡 确认 Backend target 和 Backend settings 选择正确。

Screenshot

点击保存。

Screenshot

选择 Health Probe,查看健康检查是否通过。

Screenshot

Screenshot

这里的 Status 显示通过。

Screenshot

确认要访问的域名已经解析到网关的公有 IP 地址。

Screenshot

好了,我们访问域名来确认 OpenResty XRay 服务是否部署成功。

当我们看到如下的登录界面就是已经部署成功了。

Screenshot

关于作者

章亦春是开源 OpenResty® 项目创始人兼 OpenResty Inc. 公司 CEO 和创始人。

章亦春(Github ID: agentzh),生于中国江苏,现定居美国湾区。他是中国早期开源技术和文化的倡导者和领军人物,曾供职于多家国际知名的高科技企业,如 Cloudflare、雅虎、阿里巴巴, 是 “边缘计算“、”动态追踪 “和 “机器编程 “的先驱,拥有超过 22 年的编程及 16 年的开源经验。作为拥有超过 4000 万全球域名用户的开源项目的领导者。他基于其 OpenResty® 开源项目打造的高科技企业 OpenResty Inc. 位于美国硅谷中心。其主打的两个产品 OpenResty XRay(利用动态追踪技术的非侵入式的故障剖析和排除工具)和 OpenResty Edge(最适合微服务和分布式流量的全能型网关软件),广受全球众多上市及大型企业青睐。在 OpenResty 以外,章亦春为多个开源项目贡献了累计超过百万行代码,其中包括,Linux 内核、Nginx、LuaJITGDBSystemTapLLVM、Perl 等,并编写过 60 多个开源软件库。

关注我们

如果您喜欢本文,欢迎关注我们 OpenResty Inc. 公司的博客网站 。也欢迎扫码关注我们的微信公众号:

我们的微信公众号

翻译

我们提供了英文版原文和中译版(本文) 。我们也欢迎读者提供其他语言的翻译版本,只要是全文翻译不带省略,我们都将会考虑采用,非常感谢!