《2018年基于Istio+on+Kubernetes云原生應用的最佳實踐.pdf》由會員分享,可在線閱讀,更多相關《2018年基于Istio+on+Kubernetes云原生應用的最佳實踐.pdf(29頁珍藏版)》請在三個皮匠報告上搜索。
1、基于Istio on Kubernetes云原生應用的最佳實踐微服務架構-Service Mesh 與 Istio阿里云容器服務在 Istio 上的實踐、優化整合及最新進展基于K8S+Istio的云原生應用負載的實踐分享4東西向與南北向流量管理5公共網絡私有網絡公共IngressGateway私有IngressGatewayMeshGateway(sidecar)MeshGateway(sidecar)Service AService BEgressGateway外部服務服務網格邊界工作負載A工作負載B通過Egress Gateway將 Istio功能(例如監控和路由規則)應用于 Egress
2、流量。直接通過sidecar訪問外部服務從單體應用過渡到微服務架構q帶來的挑戰:服務發現、負載均衡、故障容忍、端到端監測、動態路由等q通過Client Library方式構建在應用程序中q不同編程語言的解決方案差異大、缺少共性6Sidecar71.Service Discovery2.Observability(metrics)3.Rate Limiting4.Circuit Breaking5.Traffic Shifting6.Load Balancing7.Authentication and Authorization8.Distributed TracingService Mesh與
3、 IstioService Mesh服務網格提供了一種透明且語言無關的方式,用于連接、保護、控制和觀測服務。Istio 是一個開放的、與平臺無關的服務網格實現,它提供了:Pilot 流量管理Citadel安全保護Mixer Policy策略執行Mixer Telemetry遙測采集8From https:/www.shantala.io/service-mesh-for-microservices/Istio的工作原理(1)ServiceConsumerServiceProvider01ServiceConsumerServiceProviderEnvoy ProxyEnvoy Proxyca
4、llSidecar部署callPODPOD9PODPODIstio的工作原理(2)2ServiceConsumerServiceProviderEnvoy ProxyEnvoy ProxycallIstioPilotEnvoy Proxy配置管理&服務查詢10Istio的工作原理(3)3ServiceConsumerServiceProviderEnvoy ProxyEnvoy ProxycallMixerPolicyEnvoy ProxyMixerTelemetryEnvoy Proxy策略執行遙測數據收集11Istio的工作原理(4)4ServiceConsumerServiceProvi
5、derEnvoy ProxyEnvoy Proxycall密鑰和證書管理IstioCitadelEnvoy Proxy12Istio下服務間調用過程ServiceConsumerServiceProviderEnvoy ProxyEnvoy ProxyIstioPilotEnvoy ProxyIstioMixerEnvoy ProxyIstioCitadelEnvoy Proxy1235413Service Mesh&Istioq 以Sidecar方式解耦Proxy和應用進程q 應用中服務調用無感知q 兼容通用Proxy,由Pilot管控規則q Telemetry數據統一上報Mixerq 支持
6、多種Service Registry14Istio社區官方支持一鍵部署、開箱即用15Istio社區官方支持阿里云監控Adapter16阿里云容器服務與Istio 服務網格17分布式跟蹤 Jaeger(基于阿里云日志服務)18成本更低廉功能更強大可視化Kiali:服務間的調用與版本切換19基于K8S+Istio的云原生應用負載20Istio+Kubeflow:實現Serving路由管理21部署新版本模型服務,并基于Istio進行流量分發#arena serve tensorflow-enableIstio-servingName=mymnist-servingVersion=v2-modelNa
7、me=mnist-data=myoss1pvc:/data2-modelPath=/data2/models/mnist#arena serve traffic-router-split-servingName=mymnist-servingVersions=v1,v2,v3-weights=90,7,322基于版本與權重#arena serve tensorflow-enableIstio-servingName=mymnist-servingVersion=v3-modelName=mnist-data=myoss1pvc:/data3-modelPath=/data3/models/mn
8、ist佛祖保佑 vs.混沌工程23故障注入云棲系列文章阿里云Kubernetes容器服務Istio實踐之常見問題分析Istio流量管理實踐之(1):通過Istio規則來實現TCP入口流量路由的統一管理Istio流量管理實踐之(2):通過Istio管理應用的灰度發布Istio流量管理實踐之(3):基于Istio實現流量對比分析在阿里云容器服務上基于Istio實現東西向流量管理在阿里云容器服務上基于Istio實現出口Egress流量管理24阿里云容器服務基于Istio實現多Kubernetes集群上的應用服務混合編排阿里云容器服務基于Istio實現Kubernetes與ECS上的應用服務混合編排敬
9、請關注.25From https:/www.shantala.io/service-mesh-for-microservices/Q&A26基于請求內容的分發27基于瀏覽器的分發基于操作系統的分發基于Cookie的分發Cookie*cookie name*包含*string*存在Cookie*cookie name*不存在Cookie*cookie name*基于HTTP請求頭的分發請求頭*header name*包含*string*請求頭中包含*header name*請求頭中不包含*header name*Deploy and serve a TensorFlow model using
10、Istio on K8s28一行命令將TF模型暴露為gRPC/REST API#arena serve tensorflow-enableIstio-servingName=mymnist-servingVersion=v1-modelName=mnist-data=myoss1pvc:/data2-modelPath=/data2/models/mnist-versionPolicy=specific:1#curl-X POST http:/mymnist:8501/v1/models/mnist:predict-d signature_name:predict,instances:sepa
11、l_length:6.8,sepal_width:3.2,petal_length:5.9,petal_width:2.3 29RESTful API RequestKubernetes日志集成方案-Logtail-一條命令一個參數即可實現部署,資源自動初始化-CRD方式配置,支持K8S控制臺、kubectl、kube api等,與K8S發布、部署無縫集成-日志服務Logtail數百萬部署,每天采集10PB+數據,金融級可靠性生態便捷LogHubLogHub通過IOT、智能設備、ECS、容器、移動端等接入實時數據(例如Trace、Metric、TextLog、Click、video、audio)與實時計算及服務對接,并提供SDK/API自定義消費。安恒、Splunk、ELK等Third partyUser CodeAli CloudOpen Source