istio概念和部署

istio概念

参考网址:https://istio.io/latest/zh/docs/setup/install/helm/

Istio 介绍
Istio 是一个开源服务网格,它透明地分层到现有的分布式应用程序上。 Istio 强大的特性提供了一种统一和更有效的方式来保护、连接和监视服务。 Istio 是实现负载平衡、服务到服务身份验证和监视的路径——只需要很少或不需要更改服务代码。它强大的控制平面带来了重要的特点,包括:

使用 TLS 加密、强身份认证和授权的集群内服务到服务的安全通信
自动负载均衡的 HTTP, gRPC, WebSocket,和 TCP 流量
通过丰富的路由规则、重试、故障转移和故障注入对流量行为进行细粒度控制
一个可插入的策略层和配置 API,支持访问控制、速率限制和配额
对集群内的所有流量(包括集群入口和出口)进行自动度量、日志和跟踪
Istio 是为可扩展性而设计的,可以处理不同范围的部署需求。Istio 的控制平面运行在 Kubernetes 上,您可以将部署在该集群中的应用程序添加到您的网格中,将网格扩展到其他集群,甚至连接 VM 或运行在 Kubernetes 之外的其他端点。

一个由贡献者、合作伙伴、集成商和分销商组成的庞大生态系统将 Istio 扩展和利用到各种各样的场景中。

您可以自己安装 Istio,或者许多供应商都有集成 Istio 并为您管理它的产品。

工作说明
Istio 由两个部分组成:控制平面和数据平面。

数据平面是业务之间的通信平面。如果没有一个服务网格,网络就无法理解正在发送的流量,也无法根据它是哪种类型的流量,或者它从谁那里来,到谁那里去做出任何决定。

服务网格使用代理拦截所有的网络流量,允许根据您设置的配置提供广泛的应用程序感知功能。

代理与您在集群中启动的每个服务一起部署,或者与运行在虚拟机上的服务一起运行。

控制平面获取您所需的配置和服务视图,并动态地对代理服务器进行编程,随着规则或环境的变化更新它们。

在这里插入图片描述

使用 Istio 前

在这里插入图片描述

使用 Istio 后
概念
流量管理
Istio 的流量路由规则可以让您轻松地控制服务之间的流量和 API 调用。 Istio 简化了服务级别属性(如断路器、超时和重试)的配置,并使设置重要任务(如 A/B 测试、canary 部署和基于百分比的流量分割的分阶段部署)变得容易。 它还提供了开箱即用的故障恢复特性,帮助您的应用程序更健壮地应对依赖服务或网络的故障。

可观测性
Istio 为服务网格内的所有通信生成详细的遥测数据。这种遥测技术提供了服务行为的可观测性,使运营商能够排除故障、维护和优化其应用。 更好的是,它不会给服务开发人员带来任何额外的负担。通过 Istio,操作人员可以全面了解被监视的服务如何与其他服务以及 Istio 组件本身交互。

Istio 的遥测技术包括详细的指标、分布式跟踪和完整的访问日志。有了 Istio,您就可以得到全面全面的服务网格可观察性。

安全性能
微服务有特殊的安全需求,包括防止中间人攻击、灵活的访问控制、审计工具和相互的 TLS。 Istio 包括一个全面的安全解决方案,使运营商能够解决所有这些问题。 它提供了强大的身份、强大的策略、透明的 TLS 加密,以及验证、授权和审计(AAA)工具来保护您的服务和数据。

Istio 的安全模型是基于默认安全的,旨在提供深度防御,允许您部署安全的应用程序,甚至跨不可信的网络。

istio部署

添加存储库

helm repo add istio https://istio-release.storage.googleapis.com/charts
helm repo update

创建命名空间

kubectl create namespace istio-system

安装 Istio base chart,它包含了集群范围的自定义资源定义 (CRD),这些资源必须在部署 Istio 控制平面之前安装:

 helm install istio-base istio/base -n istio-system

使用 helm ls 命令验证 CRD 的安装情况

helm ls -n istio-system

安装 Istio discovery chart,它用于部署 istiod 服务:

helm install istiod istio/istiod -n istio-system --wait

验证 Istio discovery chart 的安装情况:

helm ls -n istio-system

检查 istiod 服务是否安装成功,其 Pod 是否正在运行:

kubectl get deployments -n istio-system --output wide

(可选)安装 Istio 的入站网关:

$ kubectl create namespace istio-ingress
$ helm install istio-ingress istio/gateway -n istio-ingress --wait

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值