首页 > 其他分享 >Istio可观测性

Istio可观测性

时间:2022-11-29 18:25:17浏览次数:35  
标签:regex service destination Istio 观测 source prefix tagName

获取命令

kubectl exec sleep-78ff5975c6-75q5z -c istio-proxy -- pilot-agent request GET /stats  # stats格式
kubectl exec sleep-78ff5975c6-75q5z -c istio-proxy -- pilot-agent request GET /stats/prometheus # prometheus格式
kubectl exec sleep-78ff5975c6-75q5z -- curl localhost:15000/stats

查看启用的统计指标

[root@master ~]# istioctl  proxy-config bootstrap  sleep-78ff5975c6-75q5z.default | jq .bootstrap.statsConfig
{
  "statsTags": [
    {
      "tagName": "cluster_name",
      "regex": "^cluster\\.((.+?(\\..+?\\.svc\\.cluster\\.local)?)\\.)"
    },
    {
      "tagName": "tcp_prefix",
      "regex": "^tcp\\.((.*?)\\.)\\w+?$"
    },
    {
      "tagName": "response_code",
      "regex": "(response_code=\\.=(.+?);\\.;)"
    },
    {
      "tagName": "response_code",
      "regex": "_rq(_(\\d{3}))$"
    },
    {
      "tagName": "response_code_class",
      "regex": "_rq(_(\\dxx))$"
    },
    {
      "tagName": "http_conn_manager_listener_prefix",
      "regex": "^listener(?=\\.).*?\\.http\\.(((?:[_.[:digit:]]*|[_\\[\\]aAbBcCdDeEfF[:digit:]]*))\\.)"
    },
    {
      "tagName": "http_conn_manager_prefix",
      "regex": "^http\\.(((?:[_.[:digit:]]*|[_\\[\\]aAbBcCdDeEfF[:digit:]]*))\\.)"
    },
    {
      "tagName": "listener_address",
      "regex": "^listener\\.(((?:[_.[:digit:]]*|[_\\[\\]aAbBcCdDeEfF[:digit:]]*))\\.)"
    },
    {
      "tagName": "mongo_prefix",
      "regex": "^mongo\\.(.+?)\\.(collection|cmd|cx_|op_|delays_|decoding_)(.*?)$"
    },
    {
      "tagName": "reporter",
      "regex": "(reporter=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_namespace",
      "regex": "(source_namespace=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_workload",
      "regex": "(source_workload=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_workload_namespace",
      "regex": "(source_workload_namespace=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_principal",
      "regex": "(source_principal=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_app",
      "regex": "(source_app=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_version",
      "regex": "(source_version=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_cluster",
      "regex": "(source_cluster=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_namespace",
      "regex": "(destination_namespace=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_workload",
      "regex": "(destination_workload=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_workload_namespace",
      "regex": "(destination_workload_namespace=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_principal",
      "regex": "(destination_principal=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_app",
      "regex": "(destination_app=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_version",
      "regex": "(destination_version=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_service",
      "regex": "(destination_service=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_service_name",
      "regex": "(destination_service_name=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_service_namespace",
      "regex": "(destination_service_namespace=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_port",
      "regex": "(destination_port=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_cluster",
      "regex": "(destination_cluster=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "request_protocol",
      "regex": "(request_protocol=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "request_operation",
      "regex": "(request_operation=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "request_host",
      "regex": "(request_host=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "response_flags",
      "regex": "(response_flags=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "grpc_response_status",
      "regex": "(grpc_response_status=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "connection_security_policy",
      "regex": "(connection_security_policy=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_canonical_service",
      "regex": "(source_canonical_service=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_canonical_service",
      "regex": "(destination_canonical_service=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_canonical_revision",
      "regex": "(source_canonical_revision=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_canonical_revision",
      "regex": "(destination_canonical_revision=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "cache",
      "regex": "(cache\\.(.+?)\\.)"
    },
    {
      "tagName": "component",
      "regex": "(component\\.(.+?)\\.)"
    },
    {
      "tagName": "tag",
      "regex": "(tag\\.(.+?);\\.)"
    },
    {
      "tagName": "wasm_filter",
      "regex": "(wasm_filter\\.(.+?)\\.)"
    },
    {
      "tagName": "authz_enforce_result",
      "regex": "rbac(\\.(allowed|denied))"
    },
    {
      "tagName": "authz_dry_run_action",
      "regex": "(\\.istio_dry_run_(allow|deny)_)"
    },
    {
      "tagName": "authz_dry_run_result",
      "regex": "(\\.shadow_(allowed|denied))"
    }
  ],
  "useAllDefaultTags": false,
  "statsMatcher": {
    "inclusionList": {
      "patterns": [
        {
          "prefix": "reporter="
        },
        {
          "prefix": "cluster_manager"
        },
        {
          "prefix": "listener_manager"
        },
        {
          "prefix": "server"
        },
        {
          "prefix": "cluster.xds-grpc"
        },
        {
          "prefix": "wasm"
        },
        {
          "suffix": "rbac.allowed"
        },
        {
          "suffix": "rbac.denied"
        },
        {
          "suffix": "shadow_allowed"
        },
        {
          "suffix": "shadow_denied"
        },
        {
          "safeRegex": {
            "googleRe2": {},
            "regex": "vhost\\.*\\.route\\.*"
          }
        },
        {
          "prefix": "component"
        },
        {
          "prefix": "istio"
        }
      ]
    }
  }
}

 

 在网格上配置代理级指标

在网格上启用更多的统计指标
  Istio上与网格代理相关的默认配置定义在MeshConfig.defaultConfig配置段中,而每个Pod之上Sidecar Envoy的指标定义则要通过Annotations完成

  要自定义启用的统计指标可以使用MeshConfig.defautConfig.proxyStatsMatcher进行定义

    inclusionRegexps:基于正则表达式模式指定要启用的统计指标键

    inclusionPrefixes:基于前缀匹配指定要启用的统计指标键

    inclusionSuffixes:基于后缀匹配指定要启用的统计指标键

 第一种

[root@master ~]# vim profile-demo.yaml
  meshConfig:
    outboundTrafficPolicy:
      mode: REGISTRY_ONLY
    accessLogFile: /dev/stdout
    defaultConfig:
      proxyMetadata: {}
      proxyStatsMatcher:
        inclusionPrefixes:
          - "upstream_rq_retry"
          - "upstream_cx"

第二种

  meshConfig:
    outboundTrafficPolicy:
      mode: REGISTRY_ONLY
    accessLogFile: /dev/stdout
    defaultConfig:
      proxyMetadata: {}
      proxyStatsMatcher:
        inclusionRegexps:
          - ".*circuit_breakers.*"
        inclusionPrefixes:
          - "upstream_rq_retry"
          - "upstream_cx"

[root@master ~]# istioctl apply -f profile-demo.yaml 
This will install the Istio 1.16.0 demo profile with ["Istio core" "Istiod" "Ingress gateways" "Egress gateways"] components into the cluster. Proceed? (y/N) y
✔ Istio core installed                                                                                                                         
✔ Istiod installed                                                                                                                             
✔ Ingress gateways installed                                                                                                                   
✔ Egress gateways installed                                                                                                                    
✔ Installation complete                                                                                                                        Making this installation the default for injection and validation.

Thank you for installing Istio 1.16.  Please take a few minutes to tell us about your install/upgrade experience!  https://forms.gle/99uiMML96AmsXY5d6

 前后对比

在bootstrap文件生成时进行配置的,因而只会对配置后创建的Pod有效

[root@master ~]# istioctl  proxy-config bootstrap  client-74cf5679fd-vrqjj | jq .bootstrap.statsConfig
{
  "statsTags": [
    {
      "tagName": "cluster_name",
      "regex": "^cluster\\.((.+?(\\..+?\\.svc\\.cluster\\.local)?)\\.)"
    },
    {
      "tagName": "tcp_prefix",
      "regex": "^tcp\\.((.*?)\\.)\\w+?$"
    },
    {
      "tagName": "response_code",
      "regex": "(response_code=\\.=(.+?);\\.;)"
    },
    {
      "tagName": "response_code",
      "regex": "_rq(_(\\d{3}))$"
    },
    {
      "tagName": "response_code_class",
      "regex": "_rq(_(\\dxx))$"
    },
    {
      "tagName": "http_conn_manager_listener_prefix",
      "regex": "^listener(?=\\.).*?\\.http\\.(((?:[_.[:digit:]]*|[_\\[\\]aAbBcCdDeEfF[:digit:]]*))\\.)"
    },
    {
      "tagName": "http_conn_manager_prefix",
      "regex": "^http\\.(((?:[_.[:digit:]]*|[_\\[\\]aAbBcCdDeEfF[:digit:]]*))\\.)"
    },
    {
      "tagName": "listener_address",
      "regex": "^listener\\.(((?:[_.[:digit:]]*|[_\\[\\]aAbBcCdDeEfF[:digit:]]*))\\.)"
    },
    {
      "tagName": "mongo_prefix",
      "regex": "^mongo\\.(.+?)\\.(collection|cmd|cx_|op_|delays_|decoding_)(.*?)$"
    },
    {
      "tagName": "reporter",
      "regex": "(reporter=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_namespace",
      "regex": "(source_namespace=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_workload",
      "regex": "(source_workload=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_workload_namespace",
      "regex": "(source_workload_namespace=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_principal",
      "regex": "(source_principal=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_app",
      "regex": "(source_app=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_version",
      "regex": "(source_version=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_cluster",
      "regex": "(source_cluster=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_namespace",
      "regex": "(destination_namespace=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_workload",
      "regex": "(destination_workload=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_workload_namespace",
      "regex": "(destination_workload_namespace=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_principal",
      "regex": "(destination_principal=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_app",
      "regex": "(destination_app=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_version",
      "regex": "(destination_version=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_service",
      "regex": "(destination_service=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_service_name",
      "regex": "(destination_service_name=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_service_namespace",
      "regex": "(destination_service_namespace=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_port",
      "regex": "(destination_port=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_cluster",
      "regex": "(destination_cluster=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "request_protocol",
      "regex": "(request_protocol=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "request_operation",
      "regex": "(request_operation=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "request_host",
      "regex": "(request_host=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "response_flags",
      "regex": "(response_flags=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "grpc_response_status",
      "regex": "(grpc_response_status=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "connection_security_policy",
      "regex": "(connection_security_policy=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_canonical_service",
      "regex": "(source_canonical_service=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_canonical_service",
      "regex": "(destination_canonical_service=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_canonical_revision",
      "regex": "(source_canonical_revision=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_canonical_revision",
      "regex": "(destination_canonical_revision=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "cache",
      "regex": "(cache\\.(.+?)\\.)"
    },
    {
      "tagName": "component",
      "regex": "(component\\.(.+?)\\.)"
    },
    {
      "tagName": "tag",
      "regex": "(tag\\.(.+?);\\.)"
    },
    {
      "tagName": "wasm_filter",
      "regex": "(wasm_filter\\.(.+?)\\.)"
    },
    {
      "tagName": "authz_enforce_result",
      "regex": "rbac(\\.(allowed|denied))"
    },
    {
      "tagName": "authz_dry_run_action",
      "regex": "(\\.istio_dry_run_(allow|deny)_)"
    },
    {
      "tagName": "authz_dry_run_result",
      "regex": "(\\.shadow_(allowed|denied))"
    }
  ],
  "useAllDefaultTags": false,
  "statsMatcher": {
    "inclusionList": {
      "patterns": [
        {
          "prefix": "reporter="
        },
        {
          "prefix": "cluster_manager"
        },
        {
          "prefix": "listener_manager"
        },
        {
          "prefix": "server"
        },
        {
          "prefix": "cluster.xds-grpc"
        },
        {
          "prefix": "wasm"
        },
        {
          "suffix": "rbac.allowed"
        },
        {
          "suffix": "rbac.denied"
        },
        {
          "suffix": "shadow_allowed"
        },
        {
          "suffix": "shadow_denied"
        },
        {
          "safeRegex": {
            "googleRe2": {},
            "regex": "vhost\\.*\\.route\\.*"
          }
        },
        {
          "prefix": "component"
        },
        {
          "prefix": "istio"
        }
      ]
    }
  }
}


[root@master ~]# istioctl  proxy-config bootstrap  client-74cf5679fd-68xpm  | jq .bootstrap.statsConfig
{
  "statsTags": [
    {
      "tagName": "cluster_name",
      "regex": "^cluster\\.((.+?(\\..+?\\.svc\\.cluster\\.local)?)\\.)"
    },
    {
      "tagName": "tcp_prefix",
      "regex": "^tcp\\.((.*?)\\.)\\w+?$"
    },
    {
      "tagName": "response_code",
      "regex": "(response_code=\\.=(.+?);\\.;)"
    },
    {
      "tagName": "response_code",
      "regex": "_rq(_(\\d{3}))$"
    },
    {
      "tagName": "response_code_class",
      "regex": "_rq(_(\\dxx))$"
    },
    {
      "tagName": "http_conn_manager_listener_prefix",
      "regex": "^listener(?=\\.).*?\\.http\\.(((?:[_.[:digit:]]*|[_\\[\\]aAbBcCdDeEfF[:digit:]]*))\\.)"
    },
    {
      "tagName": "http_conn_manager_prefix",
      "regex": "^http\\.(((?:[_.[:digit:]]*|[_\\[\\]aAbBcCdDeEfF[:digit:]]*))\\.)"
    },
    {
      "tagName": "listener_address",
      "regex": "^listener\\.(((?:[_.[:digit:]]*|[_\\[\\]aAbBcCdDeEfF[:digit:]]*))\\.)"
    },
    {
      "tagName": "mongo_prefix",
      "regex": "^mongo\\.(.+?)\\.(collection|cmd|cx_|op_|delays_|decoding_)(.*?)$"
    },
    {
      "tagName": "reporter",
      "regex": "(reporter=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_namespace",
      "regex": "(source_namespace=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_workload",
      "regex": "(source_workload=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_workload_namespace",
      "regex": "(source_workload_namespace=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_principal",
      "regex": "(source_principal=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_app",
      "regex": "(source_app=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_version",
      "regex": "(source_version=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_cluster",
      "regex": "(source_cluster=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_namespace",
      "regex": "(destination_namespace=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_workload",
      "regex": "(destination_workload=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_workload_namespace",
      "regex": "(destination_workload_namespace=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_principal",
      "regex": "(destination_principal=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_app",
      "regex": "(destination_app=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_version",
      "regex": "(destination_version=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_service",
      "regex": "(destination_service=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_service_name",
      "regex": "(destination_service_name=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_service_namespace",
      "regex": "(destination_service_namespace=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_port",
      "regex": "(destination_port=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_cluster",
      "regex": "(destination_cluster=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "request_protocol",
      "regex": "(request_protocol=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "request_operation",
      "regex": "(request_operation=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "request_host",
      "regex": "(request_host=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "response_flags",
      "regex": "(response_flags=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "grpc_response_status",
      "regex": "(grpc_response_status=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "connection_security_policy",
      "regex": "(connection_security_policy=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_canonical_service",
      "regex": "(source_canonical_service=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_canonical_service",
      "regex": "(destination_canonical_service=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "source_canonical_revision",
      "regex": "(source_canonical_revision=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "destination_canonical_revision",
      "regex": "(destination_canonical_revision=\\.=(.*?);\\.;)"
    },
    {
      "tagName": "cache",
      "regex": "(cache\\.(.+?)\\.)"
    },
    {
      "tagName": "component",
      "regex": "(component\\.(.+?)\\.)"
    },
    {
      "tagName": "tag",
      "regex": "(tag\\.(.+?);\\.)"
    },
    {
      "tagName": "wasm_filter",
      "regex": "(wasm_filter\\.(.+?)\\.)"
    },
    {
      "tagName": "authz_enforce_result",
      "regex": "rbac(\\.(allowed|denied))"
    },
    {
      "tagName": "authz_dry_run_action",
      "regex": "(\\.istio_dry_run_(allow|deny)_)"
    },
    {
      "tagName": "authz_dry_run_result",
      "regex": "(\\.shadow_(allowed|denied))"
    }
  ],
  "useAllDefaultTags": false,
  "statsMatcher": {
    "inclusionList": {
      "patterns": [
        {
          "prefix": "reporter="
        },
        {
          "prefix": "upstream_rq_retry"
        },
        {
          "prefix": "upstream_cx"
        },
        {
          "prefix": "cluster_manager"
        },
        {
          "prefix": "listener_manager"
        },
        {
          "prefix": "server"
        },
        {
          "prefix": "cluster.xds-grpc"
        },
        {
          "prefix": "wasm"
        },
        {
          "suffix": "rbac.allowed"
        },
        {
          "suffix": "rbac.denied"
        },
        {
          "suffix": "shadow_allowed"
        },
        {
          "suffix": "shadow_denied"
        },
        {
          "safeRegex": {
            "googleRe2": {},
            "regex": ".*circuit_breakers.*"
          }
        },
        {
          "safeRegex": {
            "googleRe2": {},
            "regex": "vhost\\.*\\.route\\.*"
          }
        },
        {
          "prefix": "component"
        },
        {
          "prefix": "istio"
        }
      ]
    }
  }
}

 

标签:regex,service,destination,Istio,观测,source,prefix,tagName
From: https://www.cnblogs.com/zyyang1993/p/16935164.html

相关文章

  • istio --- 云原生时代到来
    ​​微服务​​对于每个功能的开发细化了,但是对与系统的管理复杂度增强了,尤其是网络流量的管理。试想一下:黑名单,导流,加密,访问控制,流量监控,熔断,限速,收费功能,数据流阶段延迟......
  • Istio Meetup China(2021-7)课件学习
    张伟(华为云容器网格数据平面技术专家)交流视频学习:​​Envoy原理介绍及线上问题采坑-张伟_哔哩哔哩_bilibili​​1、五元组<源IP地址、目的IP地址、协议号、源端口、目的端口......
  • 拓端tecdat|R语言编程指导对混合分布中的不可观测与可观测异质性因子分析
    R语言对混合分布中的不可观测与可观测异质性因子分析今天上午,在课程中,我们讨论了利率制定中可观察和不可观察异质性之间的区别(从经济角度出发)。为了......
  • Istio架构与机制
    *:Lens(推荐的KubernetesUI)1、Istio的架构与部署模式:Sidecar、Proxyless和Ambient模式2、Ambient模式3、Envoy架构图4、控制平面将数据推送至数据平面,XDS示意图5、将来推......
  • Istio-proxy容器及Listener
    istio-proxy即所谓的sidecar容器,它运行两个进程  pilot-agent    基于k8sapiserver为envoy初始化出可用的boostrap配置文件并启动envoy;    监控并管理......
  • Istio详解
    目录1.前言2.什么是istio?3.什么是servicemesh?4.再来看istio5.istio解决什么问题6.用什么姿势接入istio?7.总结1.前言如果你比较关注新兴技术的话,那么很可能在不同的......
  • 阿里云可观测 10 月功能快报&优惠快讯
    ......
  • Istio基础概念
    各类服务网格的实现在特性上重叠性颇高,他们几乎都具有下列功能  流量治理    对哪些流量进行治理    动态路由:条件式路由,基于权重的流量分发,流量镜像   ......
  • 基于云原生网关的可观测性最佳实践
    作者: 井轶为什么要进行可观测性建设可观测性并不是一个新词,该词来源于控制理论,是指系统可以由其外部输出推断其其内部状态的程度,随着IT行业几十年的发展,IT系统的监控,告......
  • k8s集群可观测性
    k8s集群健康来源当把应用迁移到Kubernetes之后,要如何去保障应用的健康与稳定呢?其实很简单,可以从两个方面来进行增强:首先是提高应用的可观测性;第二是提高应用的可恢复......