Service Mesh (ASM)支援兩種Sidecarless模式,Ambient模式和ACMG模式。本文將介紹這兩種模式的入門樣本應用的部署步驟,協助您提前準備環境,以便儘快體驗Sidecarless模式的特性。
前提條件
已建立合格Kubernetes叢集。更多資訊,請參見適合的Kubernetes叢集及配置。
已建立啟用Ambient Mesh模式或ACMG模式的ASM執行個體。
在建立服務網格頁面的資料面模式地區,選中啟用Ambient Mesh模式或啟用ACMG模式,其他配置項請按照實際情況進行配置。具體操作,請參見建立ASM執行個體。
已為ASM執行個體添加ACK叢集。具體操作,請參見添加叢集到ASM執行個體。
已建立入口網關。具體操作,請參見建立入口網關。
部署樣本應用
本文使用bookinfo作為樣本應用。更多資訊,請參見在ASM執行個體關聯的叢集中部署應用。
在ACK叢集中部署樣本應用
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 。
開啟Ambient模式或ACMG模式。
Ambient模式
在全域命名空間頁面的資料面模式列,單擊default命名空間對應的切換為Ambient Mesh模式,然後在確認對話方塊,單擊確定。
ACMG模式
通過ASM執行個體的kubeconfig操作控制面叢集,開啟ACMG模式。
kubectl label namespace default istio.io/dataplane-mode=acmg
從Github的Istio專案庫Bookinfo應用中下載Bookinfo的YAML檔案,然後執行以下命令,在default命名空間中部署該樣本應用。
kubectl apply -f bookinfo.yaml
部署sleep應用。
使用以下內容建立sleep.yaml。
執行以下命令,在default命名空間中部署該樣本應用。
kubectl apply -f sleep.yaml
部署notsleep應用。
使用以下內容建立notsleep.yaml。
執行以下命令,在default命名空間中部署該樣本應用。
kubectl apply -f notsleep.yaml
在ASM執行個體中部署網格資源
使用以下內容,建立bookinfo-gateway.yaml檔案。
YAML檔案用於建立網關規則Gateway對象和虛擬服務VirtualService對象。
在ASM執行個體對應的KubeConfig環境下,執行以下命令,部署網格資源。
kubectl apply -f bookinfo-gateway.yaml
驗證準系統
執行以下命令,設定入口網關的環境變數。
export GATEWAY_HOST=istio-ingressgateway.istio-system export GATEWAY_SERVICE_ACCOUNT=ns/istio-system/sa/istio-ingressgateway
測試bookinfo應用程式,查看在有無網關的情況下能否正常運行。
執行以下命令:
kubectl exec deploy/sleep -- curl -s "http://$GATEWAY_HOST/productpage" | grep -o "<title>.*</title>"
預期輸出:
<title>Simple Bookstore App</title>
執行以下命令:
kubectl exec deploy/sleep -- curl -s http://productpage:9080/ | grep -o "<title>.*</title>"
預期輸出:
<title>Simple Bookstore App</title>
執行以下命令:
kubectl exec deploy/notsleep -- curl -s http://productpage:9080/ | grep -o "<title>.*</title>"
預期輸出:
<title>Simple Bookstore App</title>
以上結果表明在有無網關的情況下,bookinfo應用程式均可以正常運行。