今天我們要演示如何在微軟的 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. 公司的部落格網站 。也歡迎掃碼關注我們的微信公眾號:

我們的微信公眾號

翻譯

我們提供了英文版原文和中譯版(本文) 。我們也歡迎讀者提供其他語言的翻譯版本,只要是全文翻譯不帶省略,我們都將會考慮採用,非常感謝!