istio-生产环境搭建

本文详细介绍了如何在生产环境中搭建istio,包括prometheus、jaeger、elasticsearch等组件的部署。istio的Prometheus集成需要自定义配置以满足生产需求,jaeger则需要单独拆分部署。elasticsearch用于存储链路追踪数据。文章还涵盖了各个组件的部署步骤和注意事项,如prometheus的serviceMonitor配置以及istio的Helm模板安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相关组件

整个 istio 环境需要以下组件

  • prometheus -- 用于 K8s 平台和 istio 平台监控
  • jaeger -- 用于服务间的链路追踪
  • elasticsearch -- 用于存储链路追踪的数据,(也可增加部署 fluntd 和 kibana 收集监控 K8s 平台日志)
  • istio -- 平台本体

由于需要用于生产环境中,istio 部署包中所集成的 Prometheus 和 jaeger 均无法满足需求,其中平台中其他服务需要复用 Prometheus;istio 中集成的 jaeger 为 allinone 模式(用于测试),无法满足生产需求,因此单独拆出来。

Prometheus 搭建

Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。

2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目,且在开源社区相当活跃。

Prometheus和Heapster(Heapster是K8S的一个子项目,用于获取集群的性能数据。)相比功能更完善、更全面。Prometheus性能也足够支撑上万台规模的集群。

其基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等

部署

Prometheus 此处采用的是 coreos 提供的 kube-prometheus,其定义了一组 CRD,且提供了 Operator 便于部署。

git clone 下来项目后,就可以无脑部署了:

# 部署 Prometheus 所需的 crd 和 namespace(monitoring)
kubectl create -f manifests/setup
# 检查 crd serverMonitor 是否可用
until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done
# 部署其他组件
kubectl create -f manifests/

在 kube-prometheus 中,主要定义了 以下几个 crd:

# 常用
prometheusrules.monitoring.core
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值