L7路由支援多種能力,例如URI路徑匹配、要求標頭匹配等。本文介紹實現L7路由相關能力的準備工作。
前提條件
已建立ASM企業版執行個體,並選中啟用Ambient Mesh模式。具體操作,請參見建立ASM執行個體。
已建立Kubernetes叢集,且滿足Kubernetes叢集及配置要求。關於建立叢集的具體操作,請參見建立ACK專有叢集(已停止建立)或建立ACK託管叢集。
已按照實際作業系統及平台,下載Istioctl服務網格調試工具。詳細資料,請參見Istio。
步驟一:將資料面模式設定為Ambient
將全域命名空間default的資料面模式設定為Ambient。
登入ASM控制台,在左側導覽列,選擇。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇。
在全域命名空間頁面的資料面模式列,單擊default命名空間對應的切換為Ambient Mesh模式,在確認對話方塊,單擊確定。
步驟二:為default命名空間啟用Waypoint
Ambient模式下L7功能依賴Waypoint。本步驟為default命名空間下所有的服務啟用Waypoint。
建立Gateway資源,ASM會根據該資源建立一個Waypoint代理。
kubectl apply -f - <<EOF apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: name: waypoint spec: gatewayClassName: istio-waypoint listeners: - name: mesh port: 15008 protocol: HBONE EOF為default命名空間下所有的服務啟用Waypoint。
kubectl label namespace default istio.io/use-waypoint=waypoint --overwrite
步驟三:在資料面叢集中部署服務
請結合實際情境,按需部署helloworld、sleep、httpbin、nginx或mocka服務。
部署helloworld服務
使用以下內容,建立helloworld-application.yaml。
部署helloworld應用。
kubectl apply -f helloworld-application.yaml
部署sleep服務
建立sleep-application.yaml。
部署sleep應用。
kubectl apply -f sleep-application.yaml
部署httpbin服務
建立httpbin-application.yaml。
部署httpbin應用。
kubectl apply -f httpbin-application.yaml
部署nginx服務
建立nginx應用。
部署nginx應用。
kubectl apply -f nginx.yaml
部署mocka服務
建立mocka-application.yaml。
部署mocka應用。
kubectl apply -f mocka-application.yaml