istio-dapr 構建多運行時服務網格之生產環境部署

之前所有的演示都是在 docker for windows 上進行部署的,沒有真正模擬生產環境,今天我們模擬真實環境在公有云上用 linux 操作如何實現 istio+dapr + 電商 demo 的部署。

附錄:(如果你覺得對你有用,請給個 star)
一、電商 Demo 地址:https://github.com/sd797994/Oxygen-Dapr.EshopSample

二、通訊框架地址:https://github.com/sd797994/Oxygen-Dapr

  我們選用比較常規的公有云平臺阿里雲作爲本次演示的環境提供商。首先我們需要在阿里雲申請幾臺 ecs,由於是演示項目,我就直接選擇了搶佔式實例,選擇 3 臺 ecs 搭建 1 主 2 從的最小 k8s 集羣(對於運行 dapr+istio 多主多從本質上和一主多從無太大區別)

  操作系統:centos 8.3

  docker 環境:20.10.6

  kubernetes:採用 kubeadm 安裝,版本 1.19.7 網絡插件使用 flannel

  安裝步驟可以參見我以前的博客(1.17.3 和 1.19.7 安裝沒有區別,注意安裝時版本號即可):阿里雲搭建 k8s 高可用集羣(1.17.3)

    安裝完成後我們下載 dapr 和 istio 的 ctl,地址:https://github.com/istio/istio/tags  https://github.com/dapr/cli/tags 注意需要下載 linux-amd64.tar.gz。阿里雲沒有梯子比較慢,可以在本地下載好之後 scp 到阿里雲 master 上,然後我們用 tar 解壓,在 dapr 目錄直接使用

dapr init -k

  即可自動安裝完成 dapr, 接着進入 istio-1.10.0/bin 執行

istioctl install --set profile=demo  --set meshConfig.outboundTrafficPolicy.mode=ALLOW_ANY  --set values.global.imagePullPolicy=IfNotPresent

  等待一段時間後,使用 kubectl get po 查看 dapr 和 istio 是否都啓動了。正常應該都可以啓動成功。接着我們在本地將之前 build 過的鏡像拷貝到我們公網的私有倉儲裏。我這裏選擇了阿里雲的容器鏡像服務。在容器鏡像服務創建對應的倉庫,通過 tag 命令給鏡像打上標籤,並 docker push 到我們的倉儲。

docker tag <IMAGE ID> xxx.aliyuncs.com/gmmyeshop/accountservice:release

   接着我們將 basic.yaml 裏 apigateway 以及 deploy.yaml 裏的 accountservice 等幾個 deployment 對應的 image 替換成公網地址。並將這兩個 yaml 上傳到 master 在完成上一章提到的其他 istio 部署細節之後,apply 它們。最後我們在 esc 上暴露 30882 端口並且將任意一臺公網 ip 地址替換本機 host 文件

   等待所有的 dapreshop 下的 pod 啓動完畢,訪問 admin.dapreshop.com:30882,即可看到我們的 demo 正確的在模擬公有云環境正確運行了。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/2DJQ0A6TaRa2b13ZEBQbtg