- ASM實例的運行基於kubernetes運行時,可以通過API Server定義執行各種網絡資源包括虛擬服務、目標規則、istio網關
- 通過服務網格ASM,將一個應用的服務組件部署在同VPC的兩個集羣上的前提條件:
- 在同一VPC下創建兩個ACK集羣
- 創建一個ASM實例
- 通過ASM管理外部註冊Kubernetes集羣應用的前提條件:
- 一個可以訪問公網地址的外部Kubernetes集羣,並能夠通過容器服務控制檯進行註冊
- 已開通服務網格功能
- ASM路由一個請求時,會根據固定查找過程查找DestinationRule去完成路由,查找過程包括:
- 從服務命名空間查找(2)
- 從ASM根命名空間查找(3)
- 從客戶端命名空間查找(1)
- 部署DestinationRule時,需要將DestinationRule部署在以下命名空間中才可以避免定義的DestinationRule失效:
- ASM根命名空間
- 服務所在的命名空間
- 發起調用的客戶端所在命名空間
- 一個託管了控制平面的ASM實例可以支持以下場景:
- 來自多個kubernetes集羣的應用服務
- 一些非kubernetes服務(例如運行於虛擬機或物理裸機中的服務)
- 運行於ECI Pod上的應用服務
-
Istio Mixer其他功能可以通過使用限流服務或者OPA策略集成實現
-
服務網格ASM的服務安全體現在:
- 可以實現服務之間的雙向TLS認證
- 可以實現密鑰管理
- 可以實現服務之間的授權
- 網格實例一旦創建後,暫不支持的操作包括:
- 變更網格所依賴的 VPC 與虛擬交換機
- 如果創建時未開啓公網暴露 API Server,暫不支持增加公網 SLB 暴露 API Server
- 如果創建時未開啓公網暴露 Istio Pilot,暫不支持增加公網 SLB 暴露 Istio Pilot
支持的操作:提交工單申請擴大配額
- 添加集羣到ASM實例需要注意:
- 如果應用服務運行於單集羣或者同一VPC下的多集羣時,建議先選中與網格處於同一VPC的集羣
- 確保添加集羣中運行的代理容器能訪問ASM實例暴露的istio pilot地址
-
定義虛擬服務、服務網關、目標規則三種istio資源,可以實現相應的流量路由策略。
-
訪問入口網關的方法:
- 從ASM控制檯訪問
- 從容器服務管理控制檯訪問
- 在ASM實例的詳情頁,可以看到基本信息、數據平面信息、控制平面信息三種信息
- 如果網格實例是由阿里雲賬號創建,並授權給RAM用戶使用,阿里雲賬號需要爲RAM用戶授予相應的RAM和RBAC權限
- 關於配置RAM用戶RBAC權限正確的有:
- 需要擁有一個阿里雲賬戶,並有一個或多個RAM用戶
- RAM用戶的授權需要阿里雲賬號,不支持RAM用戶給其他RAM用戶授權
- 由於阿里雲RAM用戶的安全限制,當您通過ASM控制檯的授權配置涉及到RAM用戶RAM授權的修改時,需要您按照頁面上給出的參考策略內容和操作說明,在RAM控制檯進行目標RAM用戶的手動授權
- 服務網格可以獲得的訪問權限有:阿里雲容器服務ACK、專有網羅VPC、鏈路追蹤服務、負載均衡SLB、日誌服務SLS、應用實時監控服務ARMS、雲企業網CEN等訪問權限
- 服務關聯角色包含的權限策略由對應的雲服務定義和使用,你無法增傷改權限
- 使用AuthorizationPolicy實現訪問控制的前提條件:
- 已創建ASM實例
- 已創建ACK集羣
- 已創建入口網關服務
- 添加集羣到ASM實例
- 如何在ASM中設置路由規則? -- 登錄ASM控制檯,設置VirtualService
- 如何設置AuthorizationPolicy?
- 設置AuthorizationPolicy實現指定的ip訪問應用
- 設置AuthorizationPolicy實現請求的客戶端訪問應用
- 設置AuthorizationPolicy實現指定的ip不可以訪問應用
- ASM支持通過CRD方式管理自定義網關,通過監聽該CRD資源變化事件對應的Controller可以在相應的Kubernetes集羣中同步對應的Service、Deployment、ServiceAccount
- 獲取入口網關服務的地址的方法:通過ASM控制檯查看、通過容器服務控制檯查看
- 通過服務網關啓用TLS透傳的前提條件:創建ACK集羣、部署入口網關服務、域名備案
- ASM網關啓用壓縮:ACK集羣中部署Nginx,ASM中創建VirtualService,ASM創建Gateway
- ASM網關高可用性:創建ASM實例,創建ACK或ASK集羣,將集羣添加進ASM實例
- 驗證EnvoyFilter是否生效:通過kubectl連接集羣、向網關發送請求、查看日誌中增加的user_id是否生效
- 在ASM中配置Gateway API的步驟:通過kubectl連接ASM實例,配置Gateway,配置HTTPRoute
- gRPC服務間調用的負載不均衡的前提條件:
- 已創建至少一個Kubernetes集羣
- 已設置通過kubectl連接該集羣
- 使用ASM實現負載均衡的前提條件:
- 已創建至少一個服務網格ASM實例,並已經添加至少一個集羣到該實例中
- 已設置通過kubectl連接到該集羣
-
應用列表頁面展示的關鍵指標包括健康度得分、本日請求數、本日錯誤數
-
查看鏈路追蹤數據的步驟:
- 獲取Zipkin Service地址
- 使用Zipkin Service地址:9411,訪問Zipkin控制檯,查看追蹤數據
- 在Kubernetes集羣頁面,單擊目標集羣右側可觀測性列下的查看報表,可以選擇查看工作負載統計、網格服務統計
- 創建Skywalking的服務中,在創建服務對話框中配置的參數包括:
- 類型:選擇服務訪問的方式
- 端口映射:添加服務端口和容器端口
- 關聯:選擇服務要綁定的後端應用
-
請求Bookinfo應用的步驟:下載Siege壓測工具、配置環境變量、持續請求bookinfo應用,以便產生流量數據
-
通過Aliyun CLI對接一個Consul Server包括以下3個步驟:
- 通過Aliyun CLI對接一個Consul Server"1.在瀏覽器中輸入Cloud Shell,或者在OpenAPI Explorer中打開命令行操作界面
- 創建config.json
- 執行以下命令,對接Consul註冊中心。aliyun servicemesh SetServiceRegistrySource --ServiceMeshId cf9e58cf8743748b3bd13867d6d87**** --Config
- 如何查看Concul註冊中心對接結果?
- 查看ASM組件安裝情況
- 查看Service Entry同步情況
- 對接Consul註冊中心時如何調用服務?
- 啓用DNS代理後通過ServiceEntry中的hosts名稱和端口調用
- 通過ServiceEntry中的addresses地址調用
- 如何查看Nacos註冊中心對接結果?
- 查看ASM組件安裝情況
- 查看Service Entry同步情況
- 如何啓用Sidecar注入?(Sidecar默認,對所有命名空間禁止Sidecar自動注入)
- 更新Pod的kubernetes配置手動注入Envoy代理
- 使用基於Webhook的機制自動接入
- Envoy是一個高效的L3、L4、L7代理
- 能實現Envoy Proxy-WASM SDK的語言:C++、Rust、AssemblyScript、Golang(測試中)
- 啓動WASM功能的方法:
- 命令行啓用使用WASM功能
- 控制檯選中啓用基於WebAssembly的服務網格擴展
- 啓用服務網格中的DNS代理的前提條件:
- 創建ASM實例,ASM實例必須爲v1.8.3.17-g1399628c-aliyun或者以上版本
- 添加集羣到ASM實例
- ASM數據平面熱升級Beta的前提條件:
- 創建一個1.6.x版本的ASM實例
- 添加集羣到ASM實例
- 添加入口網關服務
- 在數據面集羣部署OpenKruise的步驟:
- 安裝阿里雲Helm插件
- 添加OpenKruise的Helm倉庫
- 在集羣中安裝OpenKruise
- 創建ASM自定義資源的步驟:通過kubectl連接ASM實例,創建yaml文件,部署Gateway和VirtualService
- 配置Dubbo服務的DestinationRule需要重點注意的字段:Round Robin、LEAST_CONN、Random
- 集成自建Prometheus實現Dubbo服務可觀測性的前提條件:創建ASM專業版實例、創建ACK集羣、添加ACK集羣到ASM實例、部署入口網關服務
- ASM定位於以下場景中:混合雲、多集羣、多雲、非容器應用遷移
- 通過ASM實現的基於配置的流量管理包括:
- 簡化服務級屬性的配置
- 管理流量路由
- 管理服務網格的服務發現
- 管理負載均衡
- 使用AuthorizationPolicy實現訪問控制的前提條件:
- 創建ASM實例
- 創建ACK集羣
- 添加ACK集羣到ASM實例
- 部署入口網關服務
- 添加集羣到ASM實例的前提條件:
- 已創建至少一份ASM實例
- 已創建至少一個ACK集羣
- 待添加的ACK集羣和ASM實例處於同一VPC
- 該ACK集羣已開啓公網API Server以方便快速接入
- 通過AHAS對網格實例進行流量控制的前提條件:
- 已創建至少一個ACK集羣
- 已創建一個ASM實例,並已將ACK集羣添加到ASM實例中
- 已爲ACK集羣部署入口網關
- 已開通AHAS專業版
- 集成自建Skywalking實現網格可觀測性的前提條件:
- 已創建ASM實例
- 已創建ACK集羣
- 添加集羣到ASM實例
- 已在ACK集羣中創建SkyWalking
- 在ASM中部署啓用WASM Filter的步驟:
- 創建一個configmap,用於保存WASM過濾器的二進制文件內容
- 使用兩個annotation將WASM過濾器的二進制文件注入到應用程序對應的Kubernetes服務中
- 更新productpage-v1
- 更新details-v1,在istio-proxy容器中的路徑/var/local/lib/wasm-filters下,找到WASM過濾器的二進制文件
- 使WASM過濾器在處理針對應用服務productpage的流量時,能夠以DEBUG
- 服務網格可以通過控制檯完成的操作:
- 定義目標規則
- 定義istio虛擬服務
- 升級服務網格
- 創建服務網格
- 定義入口網關資源
- 通過ASM,可以輕鬆實現開箱即用的故障恢復功能,得益於分佈式系統提供了以下功能:
- 異常檢測故障注入
- 異常檢測實現熔斷能力
- 基於istio的混沌工程能力
- 如何使用連接池配置的能力
- 添加ECS虛擬機到ASM實例的前提條件:
- 已創建ASM實例
- 已創建ECS虛擬機
- 服務網格ASM支持對實例進行網絡診斷,診斷項目有:
- 端口服務檢查
- 服務關聯檢查
- APP及Version標籤檢查
- 目標地址檢查
- 虛擬服務衝突檢查
- 在一個selector中,至少要配置namespaceSelector和objectSelector