Service Mesh 实战
马若飞
FreeWheel 北京研发中心首席工程师、《Istio 实战指南》作者
11858 人已学习
新⼈⾸单¥59
课程目录
已完结/共 41 讲
Service Mesh 实战
登录|注册
留言
9
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 15 | 服务入口:用Service Entry扩展你的网格服务
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | Service Mesh的起源:为什么会出现Service Mesh技术?
04 | Service Mesh的发展:Service Mesh技术是如何演进的?
05 | 微服务通信的济世良方:什么是Service Mesh?它能帮你做什么?
06 | 列王的纷争:市面上有哪些主流的Service Mesh产品?
07 | 王者的诞生:为什么Istio有如此高的呼声?
08 | Istio的自我救赎:为什么Istio发生了两次重大的架构变更?
09 | 核心功能之流量控制:Istio是如何实现流量控制功能的?
10 | 服务的可观察性:如何理解服务可视化的重要性?
11 | 保卫你的网格:Istio是如何设计安全架构的?
12 | 安装与部署:如何安装Istio?它都支持哪些环境和部署方式?
13 | 动态路由:用Virtual Service和Destination Rule设置路由规则
14 | 网关:用Gateway管理进入网格的流量
15 | 服务入口:用Service Entry扩展你的网格服务
16 | 流量转移:灰度发布是如何实现的?
17 | Ingress:控制进入网格的请求
18 | Egress:用Egress实现访问外部服务
19 | 超时重试:提升系统的健壮性和可用性
20 | 熔断:“秒杀”场景下的过载保护是如何实现的?
21 | 故障注入:在Istio中实现一个“Chaos Monkey”
22 | 流量镜像:解决线上问题排查的难题
23 | 洞察你的服务:使用Kiali观测你的微服务应用
24 | 指标:使用Prometheus收集指标
25 | 监控:使用Grafana查看系统的整体状态
26 | 日志:如何获取Envoy的日志并进行调试
27 | 分布式追踪:使用Jeager对应用进行分布式追踪
28 | 守卫网格:配置TLS安全网关
29 | 双重保障:为应用设置不同级别的双向TLS
30 | 授权策略:如何实现JWT身份认证与授权?
31 | 实战演练(一):项目准备和构建过程
32 | 实战演练(二):实现自动化灰度发布
33 | 实战演练(三):提升系统的弹性能力
34 | 实战演练(四):配置安全策略
35 | 实战演练(五):收集指标并监控应用
36 | 实战演练(六):集成 ELK Stack 日志套件
37 | 实战演练(七):集成分布式追踪工具
38 | 调试工具和方法:调试网格的工具和方法有哪些?
39 | 实践经验总结:实际落地中的常见问题有哪些?
40 | 未来架构——从Service Mesh迈向云原生
41 | 结果测试&结束语
登录 后留言

全部留言(9)

  • 最新
  • 精选
3Golds
1.6默认从configmap过滤不到了, 用1.6的同学可以自行增加以下字段到configmap ``` outboundTrafficPolicy: mode: REGISTRY_ONLY ```

作者回复: 👍

2020-05-24
2
5
骨汤鸡蛋面
老师,我在研究如何将mesh 落地到公司,公司已有的容器集群 没办法一下子全切入到mesh 中来,比如有一部分pod 有envoy sidecar ,有一部分pod 没有envoy,我今天尝试使用istio ingress 访问不带sidecar的pod时,返回no healthy upstream 请问这个问题能用 ServiceEntry 解决嘛?或者更优雅的方式老师可以指点一下嘛?

作者回复: 首先确认一下非mesh的服务是否需要纳入到mesh内进行流控?如果不需要,就不用非得用ServiceEntry。 mesh服务和非mesh服务建议分namespace,方便管理,逐步迁移。

2020-06-01
1
思维决定未来
老师能详细讲下resolution,addresses和endpoint这几个参数的配合使用吗?看了官方文档还是似懂非懂

作者回复: 简单来说: 1. 如果resolution配的是DNS,没有配置endpoint,它会配合hosts字段进行解析; 2. 如果设置了endpoint为具体IP,resolution就要设置为STATIC,表示直接使用IP,不用解析; 3. 如果resolution配的是DNS,也配置了endpoint,会解析endpoint里设置的地址; 4. address这个字段是关联服务的VIP地址,对HTTP是不生效的。 可以再仔细琢磨下这个示例: apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: external-svc-mongocluster spec: hosts: - mymongodb.somedomain # not used addresses: - 192.192.192.192/24 # VIPs ports: - number: 27018 name: mongodb protocol: MONGO location: MESH_INTERNAL resolution: STATIC endpoints: - address: 2.2.2.2 - address: 3.3.3.3

2020-04-24
2
1
肥小肉
安装istio1.7,按照命令帮助提示用下列命令安装demo配置 istioctl install --set profile=demo --skip-confirmation 安装好后只有istiod ingress egress三个服务,那些demo应该有的kiali,jager等都没有

作者回复: 这个不应该啊,istioctl profile diff default demo 看看是不是profile有什么问题。不行再重新安装一下

2020-09-12
3
彬少
课后习题,配置针对https协议的服务入口。 apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: baidu-portal spec: hosts: - www.baidu.com ports: - number: 443 name: https-port protocol: HTTPS resolution: DNS 另外想请教一下老师,serviceEntry在生产环境应用得多不多,有什么具体的业务场景适用?感觉如果只是控制外部资源是否可访问,一般都会在安全工具上添加限制;如果是外部资源处理能力不佳需要限流,也是要结合具体业务在业务系统中进行控制比较合适。

作者回复: 你说的都对,主要是看你需不需要把外部流量纳入到mesh统一管理,如果不需要,你的解决方案都ok。

2020-08-16
龚巧
我 istio 1.5.1 版本 configmap outboundTrafficPolicy: mode: REGISTRY_ONLY 没有定义服务入口还是直接可以访问外网?哪里设置的有问题?

作者回复: kubectl get configmap istio -n istio-system -o yaml | sed 's/mode: ALLOW_ANY/mode: ALLOW_ANYREGISTRY_ONLY/g' | kubectl replace -n istio-system -f - 先看看configmap生效没; 另外你是怎么访问的?访问外网的服务是否注入了sidecar?

2020-06-27
3
Geek_2655db
老师,请教下,我们现在有存量系统,我想是不是可以基于serviceEntry来管理这些存量系统的底层通讯和流量,当然,前提条件是对这些存量系统没有任何的侵入性改造,是否可以实现,有没有什么需要满足的前置条件?

作者回复: 咱们先确定一个问题:存量系统的部署环境是什么?是云上?实体机?K8s?如果不是基于k8s的,istio是没法管理的,不过可以选择托管的mesh服务,比如aws appmesh。 假设第一个问题满足要求(k8s),那么第二点:“管理底层通讯和流量” ,我理解没错的话,是有其他系统(或服务)通过ServiceEntry访问存量系统?如果是这样的话,这个访问存量系统的,是下游系统(服务),需要接入istio,存量系统不需要任何侵入。当然前提是它能提供可支持的协议(http/grpc等)

2020-04-28
3
Brilliant
``` $ kc exec -it sleep-5887ccbb67-gqkdw -c sleep -- curl http://httpbin.org/headers curl: (6) Could not resolve host: httpbin.org ``` 版本信息如下: istio相关 client version: 1.14.3 control plane version: 1.14.3 data plane version: 1.14.3 (9 proxies) k8s相关 Client Version: v1.24.3 Kustomize Version: v4.5.4 Server Version: v1.24.3+k3s1 这边做了如下尝试 1. 进入sleep容器中`$cat /etc/resolv.conf`, nameserver为kube-dns的serivce地址,在该容器中,直接curl同样提示无法解析 2. 进入注入的istio-proxy容器中`$cat /etc/resolv.conf`, nameserver同上,在该容器中curl, 可以正常拿到数据
2022-08-30
Amosヾ
老师,如果想使用类似k8s endpoint的方式将外部流量管理起来,应该是使用se吧?那host该如何指定?
2022-02-23
收起评论