《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署——3.4.1.8. ECK 安装(17) https://developer.aliyun.com/article/1231263
接入 Istio 服务网格
随着云原生概念的火热,应用开始大规模地从单体转向分布式微服务架构,与此同时产生了服务网格的概念。服务网格是用来描述组成这些应用程序的微服务网络以及它们之间的交互关系。随着服务网格的规模和复杂性不断地增长,将会变得越来越难管理,它的需求包括服务发现、负载均衡、故障恢复、度量和监控等等。服务网格通常还有更复杂的运维需求,比如 A/B 测试、金丝雀发布、速率限制、访问控制和端到端认证。
Istio 提供了对整个服务网格的行为洞察和操作控制的能力,以及一个完整的满足微服务应用各种需求的解决方案。
Istio 服务网格从逻辑上分为数据平面和控制平面:
l 数据平面由一组智能代理(Envoy)组成,以 Sidecar 容器的方式部署在 Pod 中。Envoy 代理负责协调和控制微服务之间的所有网络通信,提供丰富的流量控制功能、网络弹性特性、安全和身份认证以及流量的可观察性。
l 控制平面管理并配置代理来进行流量路由。Istiod 将控制流量行为的高级路由规则转换为
l Envoy 特定的配置,并在运行时将其传播给 Sidecar。
部署 Istio
本实验选择通过 Helm 部署 Istio,更多安装方式参考 Istio 安装。在 istio 目录下已经准备了、Istio 实验所需的相关资源文件。
为 Istio 组件创建命名空间 istio-system:
kubectl create namespace istio-system
安装 Istio base chart,其中包含了 Istio 控制平面用到的集群范围的 RBAC 资源。
helm install istio-base istio/istio-1.11.1/manifests/charts/base \ --set global.jwtPolicy=first-party-jwt -n istio-system
安装 Istio discovery chart,用于部署 istiod 服务:
helm install istiod \ istio/istio-1.11.1/manifests/charts/istio-control/istio-discovery \ --set global.hub="docker.io/istio" \ --set global.tag="1.11.1" \ -n istio-system
确保 istiod 成功运行:
> kubectl get pod -n istio-system NAME READY STATUS RESTARTS AGE istiod-75c9fcbbd6-w6tjb 1/1 Running 0 2m23s
《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署——3.4.1.8. ECK 安装(19) https://developer.aliyun.com/article/1231261