- 快速部署一套應用到ASM的步驟:創建ASM實例,添加集羣到ASM實例,添加入口網關,部署應用到ASM實例,定義istio資源
- 創建ECI Pod後,ASM可以通過sidecar對ECI Pod應用進行數據平面化管理
- 通過ASM管理外部註冊Kubernetes集羣應用,需要使用Kubectl命令行或者登錄到外部接入集羣控制檯(如果存在),部署應用到外部接入集羣中
- 在ASM實例的default命名空間下新建一個istio網關,名爲bookinfo-gateway,訪問productpage頁面,刷新頁面時會輪流顯示reviews的3個版本
- 爲Pod配置ntp服務的前提條件是將virtual-kubelet升級到最新版本
- 刪除ASM實例時,頁面顯示刪除中;成功刪除後,該實例消失
- 在瀏覽器中訪問<入口網關ip地址>/productpage顯示相關頁面,說明在ASM上管理虛擬機的Bookinfo應用成功
- 在網格管理頁面可以看到:日誌信息、ID、安全組,看不到ip地址
- 部署應用到ASM的前提條件:
- 創建至少一個ASM實例,並添加至少一個ACK集羣到該實例中
- 通過kubernetes命令客戶端kubectl連接到ASM實例中新添加的ACK集羣
- 均需要添加入口網關.
- 修改入口網關的前提條件是已添加入口網關
- 通過ASM實現TCP應用流量遷移時,會有80%比例流量流向tcp-echo-v1
- 部署gRPC的服務端之後,可使用kubectl get pod -n grpc-nosidecar
- 自動注入sidecar的標籤:istio-system=enabled
- 創建服務網關gateway時,默認使用80端口
- Virtual service定義來自productpage、static、login、logout、api/v1/products的請求可以訪問到productpage服務
- 集羣流控統計的時間窗口長度,取值範圍爲1秒·24小時
- 使用日誌服務採集數據平面入口網關日誌的前提條件:
- 已創建至少一個ASM實例
- 已添加至少一個ACK集羣到ASM實例
- 已部署至少一個入口網關到ACK集羣
- 調用鏈路的瀑布圖包括:日誌產生時間、IP地址/機器名稱、時間軸
- 集成ARMS Prometheus實現網絡監控的前提條件:已在對應的ACK集羣安裝Prometheus監控插件
- ASK支持的組件:Deployment,DaemonSet,Job/Cronjob,DaemonSet,不支持CRD
- ASM實例的狀態變化時長與添加的集羣數量有關
- 服務網格ASM的RBAC授權作用於kubernetes集羣內資源模型的訪問控制
- 如何正常訪問SLB地址?有相關的後端服務pod
- metadata應該與VirtualService的delegate參數保持一致
- ASM支持的主要場景:多語言應用微服務治理,多集羣應用統一流量管理,端到端的可觀測能力
- 啓動自動注入的步驟:
- 登錄ASM控制檯
- 在左側導航欄,選擇服務網格-網絡管理
- 在網格管理頁面,找到待配置的實例,單擊實例名稱進行管理
- 在網格詳情頁面左側導航欄單擊命名空間
- 在命名空間頁面下找到待注入的命名空間,在自動注入列單擊啓用Sidecar自動注入
- 在確認對話框,點擊確定
- 通過ASM實現跨地域多集羣的全局負載均衡的前提條件:創建一個ASM實例,在兩個VPC下分別創建兩個ACK集羣,兩個VPC通過CEN實現互聯互通
- 通過入口網關訪問網格內gRPC服務時,會有40%比例流向istio-grpc-server-v2,剩餘60%流向istio-grpc-server-v1
- 應用版本升級時,調整流量平滑過渡的過程是通過VirtualService的流量管理完成的
- Productpage默認節點數爲1,需要將實例數擴展到2來驗證多個節點實現路由規則配置灰度策略
- 向自建系統導出ASM鏈路追蹤數據的前提條件:
- 該自建系統支持標準Zipkin協議,並通過標準Zipkin端口9411監聽。
- 該自建系統部署於數據面集羣內
- 已創建一個ACK實例並添加到ASM實例中
- ASM實例部署了入口網關
- 集成自建Prometheus實現網格監控的前提條件:
- 已創建ACK集羣
- 已創建ASM集羣
- 已在ACK集羣中創建Prometheus實例和Grafana實例
- 部署網格內應用Bookinfo的步驟:
- 通過kubectl執行命令,將Bookinfo部署到ASM實例的集羣中
- 部署Bookinfo的VirtualService
- 部署Bookinfo的DestinationRules
- 部署Bookinfo的Gateway
- 使用ASM指標實現工作負載的自動彈性伸縮的前提條件:
- 創建ACK集羣
- 創建ASM實例
- 已集成Prometheus實現網絡監控
- 查看鏈路追蹤的步驟:
- 登錄Tracing Analysis控制檯
- 選擇ExternalProxy
- 選擇相應的traceid
- 開放策略代理(OPA)是一個策略引擎,它可用於爲您的應用程序實現細粒度的訪問控制
- 部署示範應用Bookinfo到ASM實例,確保每個Pod都注入了OPA代理
- 基於開源架構istio,ASM的優勢:將WebAssembly技術引入服務網格,集合WebAssembly技術優勢
- 升級sidecar代理的前提條件:kubectl連接到ACK集羣
- Sidecar升級時,kubeconfig從容器服務控制檯獲取
- 來自應用程序的DNS查詢會被Sidecar代理透明攔截並提供解析能力
- 驗證DNS代理功能的方法:
- 在服務網格中創建ServiceEntry
- 在ACK集羣中部署Sleep應用
- 登錄到Sleep容器中並執行Curl命令訪問https://aliyun.com
- 查看Bookinfo命名空間下的pod,確保Ready的值是44594
- DubboMethodMatch的參數:name(必要),name_match、args、argc、DubboMethodArg[](非必要)
- 以下操作由ASM控制檯完成:創建ASM實例、添加集羣到ASM實例、定義istio資源、添加入口網關
- 網格的基礎選項有:名稱、規格、istio版本、地域、交換機
- 編輯ASM實例時,需要設置外部服務訪問策略:ALLOW_ANY, REGISTER_ONLY
- 提供對istio.alibabacloud.com資源的只讀操作,包括get和list
- 創建服務網格的過程中,ASM會:
- 創建安全組
- 創建VPC路由規則
- 創建RAM角色及相關策略
- 創建專有網SLB,暴露6443和15011端口
- ASM應用場景:流量管理、服務安全、故障恢復、服務可觀測性、微服務架構
- istio架構從邏輯上分爲:數據平面,控制平面
- ASM通過集成的阿里雲鏈路追蹤服務,爲分佈式應用的開發者提供的工具:完整的調用鏈路還原、鏈路拓撲、調用請求量統計、應用依賴分析
- 服務網格ASM支持對實例進行網絡診斷,診斷項包括:服務端口檢查、服務關聯檢查、APP及version標籤檢查、目標地址檢查、虛擬服務衝突檢查
- 通過服務網關啓用HTTPS安全服務的前提條件:
- 創建ACK集羣
- 添加集羣到ASM實例
- 部署入口網關
- 部署應用到ASM實例中
- 用域名時備案
- 爲ASM網關啓用壓縮的前提條件:
- 創建ASM實例
- 創建ACK集羣
- 添加集羣到ASM實例
- 部署入口網關服務
- 用域名時備案
- 通過設置服務網格的istio網關、虛擬服務、目標規則將流量全部指向tcp-echo服務的v1版本
- 使用ASM實現基於位置的路由請求的前提條件:
- 創建ASM實例
- 創建一個多可用區的託管版ACK集羣,集羣使用的節點分別位於同一地域下的不同可用區
- 通過入口網關訪問網格內gRPC服務和websocket的前提條件:
- 創建ASM實例
- 創建ACK集羣
- 添加集羣到ASM實例
- 部署入口網關服務
- 部署應用到ASM實例的集羣中
- 在ASM中使用VirtualService的Delegate能力的前提條件:
- 創建ASM實例
- 創建ACK集羣
- 添加集羣到ASM實例
- 部署入口網關服務
- 部署應用到ASM實例的集羣中
- 通過ScopeConfig配置灰度發佈的前提條件:
- 創建ASM實例
- 創建ACK集羣
- 添加集羣到ASM實例
- 部署入口網關服務
- 部署應用到ASM實例的集羣中
- 實現鏈路追蹤可以看到:應用拓撲、調用鏈路、完整的鏈路、本地請求端、全鏈路聚合
- ASM內置的四個審計報表:審計中心概覽、賬號操作審計、資源操作詳細列表、資源操作概覽
- 使用ingress Gateway訪問Kiali for ASM,需要:
- 添加入口網關服務
- 爲入口網關添加端口配置
- 創建Gateway
- 創建VirtualService
- istio資源包括:VirtualService、Gateway、DestinationRule、EnvoyFilter、Sidecar、ServiceEntry
- 創建一個ASM實例的前提條件:服務網格ASM,彈性伸縮ESS,訪問控制RAM,鏈路追蹤服務
- ASM內置的四個審計報表:審計中心概覽、賬號操作審計、資源操作詳細列表、資源操作概覽
- ASM中實現自定義外部授權的前提條件:
- 創建一個ASM實例,並添加至少一個ACK集羣到實例中
- 通過kubectl連接kubernetes集羣
- 部署應用到ASM實例
- 通過kubectl連接ASM實例
- 定義istio實例
- ASM中使用OPA定義細粒度訪問控制的前提條件:
- 通過kubectl連接kubernetes集羣
- 創建一個ASM實例,並添加至少一個ACK集羣到實例中
- 通過kubectl連接ASM實例
- 在ASM中實現動態更新OPA策略的前提條件:
- 創建ASM實例
- 創建ACK集羣
- 添加集羣到ASM實例
- 在注入OPA代理時,需要定義相應的istio服務、入口網關
- 以下哪個是在ASM中實現JWT請求授權的前提條件:
- 確保istio版本>=1.6
- 創建一個ASM實例,並添加至少一個ACK集羣到實例中
- 服務網格包含傳輸認證(雙向TLS技術,服務之間的認證)、來源認證(JWT,C-S之間的認證)兩種認證方式
- WASM filter下的參數:image,id,patchcontext,parameters
- 通過ASM管理虛擬機上的Bookinfo應用的前提條件:
- 添加入口網關服務
- 創建ECS虛擬機並安裝Docker
- 爲ECS虛擬機創建RAM角色
- 添加ECS虛擬機到ASM
- 已啓動istio proxy
- 在虛擬機上安裝istio proxy的前提條件:
- 添加ECS虛擬機到ASM
- 創建ECS虛擬機並安裝Docker
- 添加入口網關服務
- 添加集羣到ASM
- 創建ASM實例,並將集羣添加到ASM實例
- Istio proxy運行在ECS中,負責與ASM通信獲取xDS信息、劫持非容器應用流量並執行網格化操作,包括:
- 流量管理
- 請求安全認證
- 上報鏈路追蹤數據
- 通過ASM管理VM非應用容器Bookinfo的前提條件:
- 創建一個ASM實例,並將集羣添加到該實例中
- 創建至少一個ECS,並完成istio proxy安裝
- 部署控制平面的過程:
- 通過kubectl連接ASM實例
- 創建Bookinfo命名空間
- 部署入口網關
- 獲取對外服務途徑
- 在瀏覽器中輸入對外服務路徑,訪問對外路徑
- ASM在更新控制平面時,創建Ratings和Reviews的VirtualService
- 自動注入的優先級:通過pod annotations實現自動注入 > 其他自動注入的配置 > 爲所有命名空間開啓自動注入功能
- 對數據平面進行熱升級的步驟:
- 編輯SidecarSet
- 將SideCar的image字段替換爲新的SideCarSet版本的image字段,然後保存退出
- 驗證數據平面熱升級過程中,是否會中斷服務
- 在更新數據平面時,需要創建v2-mysql-vm版本的Ratings
- 過ASM控制檯開啓kiali的可觀測性的前提條件:
- 已創建容器服務託管版集羣
- 已爲集羣添加入口網關
- 已創建ASM實例
- 對接Consol註冊中心如何確保服務網格之外的服務能調用服務網格之內的服務? -- 將服務網格中的服務手動註冊到Consol中心
- Consol中註冊的服務會自動同步爲istio中的ServiceEntry,刪除或更新服務,都會自動同步到istio中的ServiceEntry
- ASM提供了對WASM的支持,可以把擴展的WASM filter通過ASM部署到數據面集羣中相應的Envoy代理中
- 啓用Istio Proxy後,對Bookinfo應用進行網格化,可以實現在ASM調用ECS虛擬機上的應用
- 關於ASM的istio網關,定義了在網格出入口操作的負載均衡器,用於接收傳入或傳出的HTTP/TCP協議:包括:
- 需要公開的一組端口
- 要使用的協議類型
- 負載均衡器的SNI配置
- ASM網關啓用壓縮:ACK集羣中部署Nginx,ASM中創建VirtualService,ASM創建Gateway
- ASM網關高可用性:創建ASM實例,創建ACK或ASK集羣,將集羣添加進ASM實例
- 驗證EnvoyFilter是否生效:通過kubectl連接集羣、向網關發送請求、查看日誌中增加的user_id是否生效
- 在ASM中配置Gateway API的步驟:通過kubectl連接ASM實例,配置Gateway,配置HTTPRoute
- 關於阿里雲服務網格ASM中Sidecar代理的描述:
- Sidecar所支持的功能可以從應用程序的容器中抽象出來,並在作爲同一Pod中的獨立容器提供的代理中實現
- 應用程序中的每個服務都需要在其Pod中運行一個Envoy Sidecar代理
- Envoy代理攔截到該服務的所有入站和出站HTTP通信
- Envoy代理與服務網格ASM提供的控制平面Pilot組件通信
- 阿里雲ASM的產品適用於:
- 故障自動恢復
- 滿足流量管理需求
- 微服務架構
- 服務網格ASM可以通過ASM控制檯給RAM用戶授予的預置角色:網格管理人員、網格受限管理人員、無權限人員
- ASM提供的ScopeConfig,用於描述配置的生效範圍,包括Selector和RollingUpdate兩種配置模式
- 創建服務網格的過程中,根據不同的配置,ASM可能會進行如下操作:
- 創建VPC路由規則
- 創建專有網SLB,暴露6443端口,暴露15011端口
- 創建EIP
- 創建安全組,該安全組允許VPC入方向全部ICMP端口的訪問
- 創建RAM角色及相應策略,該角色擁有SLB的全部權限,雲監控的全部權限,VPC的全部權限,日誌服務的全部權限
- 根據用戶部署的配置相應的動態創建SLB、VPC路由規則等
- 收集被託管管控組件的日誌信息用於穩定性保障
- 託管服務網格的特點:簡單、無需運維管理istio平面、低成本、高可用
- ASM建議爲每個Kubernetes服務分配一個SLB,如果多個Kubernetes服務複用同一個SLB,可能存在以下風險和限制:
- 使用已有的SLB會強制覆蓋已有監聽,可能會導致您的應用不可訪問
- SLB的多個Service不能有相同的前端監聽端口,否則會造成端口衝突
- 通過ASM管理ASK集羣上的ECI Pod應用的前提條件:
- 已創建ASK集羣
- 已添加ASK集羣到ASM實例