云原生Istio案例实战 1

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
可观测监控 Prometheus 版,每月50GB免费额度
.cn 域名,1个 12个月
简介: 云原生Istio案例实战

1 Istio监控功能

1.1 prometheus和grafana

  • Prometheus存储服务的监控数据,数据来自于istio组件mixer上报
  • Grafana开源数据可视化工具,展示Prometheus收集到的监控数据

istio已经默认帮我们把grafana和prometheus已经默认部署好了

(1)执行命令查看istio自带的组件

kubectl get pods -n istio-ns

我们打开istio-demo.yaml文件找到找到prometheus和grafana

其实istio已经默认帮我们安装好了grafana和prometheus,只是对应的Service类型是clusterIP类型,表示集群内部可以访问,如果我们需要能够通过浏览器访问,我们只需要ingress访问规则即可,ingress之前已经介绍过了,这边就不在重复了


配置prometheus-ingress.yaml和grafana-ingress.yaml配置文件

prometheus-ingress.yaml

#ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: prometheus-ingress
namespace: istio-system
spec:
rules:
- host: prometheus.istio.qy.com
http:
paths:
    - path: /
  backend:
    serviceName: prometheus
    servicePort: 9090
  • 执行命令
kubectl apply -f prometheus-ingress.yaml和grafana-ingress.yaml

grafana-ingress.yaml

#ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: grafana-ingress
namespace: istio-system
spec:
rules:
- host: grafana.istio.qy.com
http:
paths:
    - path: /
  backend:
    serviceName: grafana
    servicePort: 3000
~                              
  • 执行命令
kubectl get ingress -n istio-system

配置prometheus访问域名

在hosts文件里面增加ip域名的映射关系

192.168.187.137    prometheus.istio.qy.com

配置grafana访问域名

在hosts文件里面增加ip域名的映射关系

192.168.187.137    grafana.istio.qy.com

1.2 访问prometheus

浏览器输入地址:prometheus.istio.qy.com

1.3 访问grafana

  • 设置prometheus地址

找到prometheus在k8s里面服务地址

命令

kubectl get svc -o wide -n istio-system

选择DataSources

选择settings ,把url改成prometheus即可

2 项目案例:bookinfo

2.1 理解什么是bookinfo

这是istio官方给我们提供的案例,Bookinfo 应用中的几个微服务是由不同的语言编写的。 这些服务对 Istio 并无依赖,但是构成了一个有代表性的服务网格的例子:它由多个服务、多个语言构成,并且 `reviews` 服务具有多个版本。

下图展示了这个应用的端到端架构。

这个案例部署了一个用于演示Istio 特性的应用,该应用由四个单独的微服务构成。 这个应用模仿在线书店的一个分类,显示一本书的信息。 页面上会显示一本书的描述,书籍的细节(ISBN、页数等),以及关于这本书的一些评论。


Bookinfo 应用分为四个单独的微服务:


productpage. 这个微服务会调用 details 和 reviews 两个微服务,用来生成页面。

details. 这个微服务中包含了书籍的信息。

reviews. 这个微服务中包含了书籍相关的评论。它还会调用 ratings 微服务。

ratings. 这个微服务中包含了由书籍评价组成的评级信息。

reviews 微服务有 3 个版本:


v1 版本不会调用 ratings 服务。

v2 版本会调用 ratings 服务,并使用 1 到 4个黑色星形图标来显示评分信息。

v3 版本会调用 ratings 服务,并使用 1 到 4个红色星形图标来显示评分信息。

大家一定要从spring cloud思维模式里面跳出来,站着服务网格的立场上思考问题,我们是不需要了解服务的业务代码是什么样的,业务的服务只需要交给istio管理即可


所以大家一定要有一颗拥抱变化的心

2.2 sidecar自动注入到微服务

所以第一步我们需要给每一个服务配置一个Sidecar,但是配置sidecar我们前面也说过,可以有两种方式实现,一种是手动注入,一种是自动注入,如果自动注入需要与命名空间相关,需要准备一个命名空间

  • 查看命名空间:
kubectl get ns

这个时候我们需要创建一个命名空间,需要打上一个lable表示只要是在这个lable的命名空间里面的都自动注入

  • 创建命名空间命令:
kubectl create namespace bookinfo-ns
  • 给命名空间加上label命令
kubectl label namespace bookinfo-ns istio-injection=enabled
  • 查看命名空间下有哪些label命
kubectl get ns bookinfo-ns --show-labels


目录
相关文章
|
1月前
|
监控 安全 Cloud Native
云原生安全:Istio在微服务架构中的安全策略与实践
【10月更文挑战第26天】随着云计算的发展,云原生架构成为企业数字化转型的关键。微服务作为其核心组件,虽具备灵活性和可扩展性,但也带来安全挑战。Istio作为开源服务网格,通过双向TLS加密、细粒度访问控制和强大的审计监控功能,有效保障微服务间的通信安全,成为云原生安全的重要工具。
45 2
|
4月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19365 30
|
3月前
|
运维 Cloud Native Docker
云原生技术入门:Docker容器化实战
【9月更文挑战第20天】本文将引导你走进云原生技术的世界,通过Docker容器化技术的实战演练,深入理解其背后的原理和应用。我们将一起探索如何在云平台上利用Docker简化部署、扩展和管理应用程序的过程,并揭示这一技术如何改变现代软件的开发和运维模式。
|
4月前
|
Kubernetes Cloud Native Docker
云原生入门:Docker容器化部署实战
【8月更文挑战第31天】在数字化浪潮中,云原生技术成为企业转型的助推器。本文通过Docker容器化部署的实践案例,引导读者从零基础到掌握基础的云原生应用部署技能。我们将一起探索Docker的魅力,学习如何将一个应用容器化,并在云平台上运行起来,为深入云原生世界打下坚实基础。
|
5月前
|
Kubernetes Cloud Native 微服务
企业级容器部署实战:基于ACK与ALB灵活构建云原生应用架构
这篇内容概述了云原生架构的优势,特别是通过阿里云容器服务Kubernetes版(ACK)和应用负载均衡器(ALB)实现的解决方案。它强调了ACK相对于自建Kubernetes的便利性,包括优化的云服务集成、自动化管理和更强的生态系统支持。文章提供了部署云原生应用的步骤,包括一键部署和手动部署的流程,并指出手动部署更适合有技术背景的用户。作者建议在预算允许的情况下使用ACK,因为它能提供高效、便捷的管理体验。同时,文章也提出了对文档改进的建议,如添加更多技术细节和解释,以帮助用户更好地理解和实施解决方案。最后,展望了ACK未来在智能化、安全性与边缘计算等方面的潜在发展。水文一篇,太忙了,见谅!
|
7月前
|
Cloud Native 测试技术 数据库
【云原生之Docker实战】使用Docker部署flatnotes笔记工具
【5月更文挑战第17天】使用Docker部署flatnotes笔记工具
251 8
|
7月前
|
Cloud Native 关系型数据库 分布式数据库
【PolarDB开源】PolarDB数据迁移实战:平滑过渡至云原生数据库
【5月更文挑战第24天】本文介绍了如何平滑迁移数据至阿里云的云原生数据库PolarDB,包括迁移准备、策略选择、步骤、验证及示例代码。通过需求分析、环境准备和数据评估,选择全量、增量或在线迁移策略。使用数据导出、导入及同步工具(如DTS)完成迁移,并在完成后验证数据一致性、性能和安全。正确执行可确保业务连续性和数据完整性。
233 1
|
7月前
|
存储 弹性计算 Kubernetes
【阿里云云原生专栏】深入解析阿里云Kubernetes服务ACK:企业级容器编排实战
【5月更文挑战第20天】阿里云ACK是高性能的Kubernetes服务,基于开源Kubernetes并融合VPC、SLB等云资源。它提供强大的集群管理、无缝兼容Kubernetes API、弹性伸缩、安全隔离及监控日志功能。用户可通过控制台或kubectl轻松创建和部署应用,如Nginx。此外,ACK支持自动扩缩容、服务发现、负载均衡和持久化存储。多重安全保障和集成监控使其成为企业云原生环境的理想选择。
521 3
|
7月前
|
监控 安全 Cloud Native
【云原生之Docker实战】使用Docker部署Ward服务器监控工具
【5月更文挑战第11天】使用Docker部署Ward服务器监控工具
222 4
|
7月前
|
弹性计算 Cloud Native 安全
【阿里云云原生专栏】云原生与芬克斯:阿里云函数计算在金融行业的应用案例
【5月更文挑战第26天】阿里云函数计算在金融行业数字化转型中发挥关键作用,提供高可用、安全、灵活且成本效益的解决方案。通过事件驱动架构和弹性伸缩,适应业务波动,确保服务连续性。在实时风控系统案例中,函数计算实现低延迟评估,提升风控效率。此技术助力金融企业快速创新,增强市场竞争力。
361 0