Kubernetes集群管理 —追踪 Kubernetes 系统组件、代理

这篇具有很好参考价值的文章主要介绍了Kubernetes集群管理 —追踪 Kubernetes 系统组件、代理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、追踪 Kubernetes 系统组件

特性状态: Kubernetes v1.27 [beta]

系统组件追踪功能记录各个集群操作的时延信息和这些操作之间的关系。

Kubernetes 组件基于 gRPC 导出器的 OpenTelemetry 协议 发送追踪信息,并用 OpenTelemetry Collector 收集追踪信息,再将其转交给追踪系统的后台。

1、追踪信息的收集

关于收集追踪信息、以及使用收集器的完整指南,可参见 Getting Started with the OpenTelemetry Collector。 不过,还有一些特定于 Kubernetes 组件的事项值得注意。

默认情况下,Kubernetes 组件使用 gRPC 的 OTLP 导出器来导出追踪信息,将信息写到 IANA OpenTelemetry 端口。 举例来说,如果收集器以 Kubernetes 组件的边车模式运行, 以下接收器配置会收集 span 信息,并将它们写入到标准输出。

receivers:
  otlp:
    protocols:
      grpc:
exporters:
  # 用适合你后端环境的导出器替换此处的导出器
  logging:
    logLevel: debug
service:
  pipelines:
    traces:
      receivers: [otlp]
      exporters: [logging]

2、组件追踪

2.1 kube-apiserver 追踪

kube-apiserver 为传入的 HTTP 请求、传出到 webhook 和 etcd 的请求以及重入的请求生成 span。 由于 kube-apiserver 通常是一个公开的端点,所以它通过出站的请求传播 W3C 追踪上下文, 但不使用入站请求的追踪上下文。

2.2 在 kube-apiserver 中启用追踪

要启用追踪特性,需要使用 --tracing-config-file=<<配置文件路径> 为 kube-apiserver 提供追踪配置文件。下面是一个示例配置,它为万分之一的请求记录 span,并使用了默认的 OpenTelemetry 端点。

apiVersion: apiserver.config.k8s.io/v1beta1
kind: TracingConfiguration
# 默认值
#endpoint: localhost:4317
samplingRatePerMillion: 100

有关 TracingConfiguration 结构体的更多信息,请参阅 API 服务器配置 API (v1beta1)。

2.3 kubelet 追踪

特性状态: Kubernetes v1.27 [beta]

kubelet CRI 接口和实施身份验证的 HTTP 服务器被插桩以生成追踪 span。 与 API 服务器一样,端点和采样率是可配置的。 追踪上下文传播也是可以配置的。始终优先采用父 span 的采样决策。 用户所提供的追踪配置采样率将被应用到不带父级的 span。 如果在没有配置端点的情况下启用,将使用默认的 OpenTelemetry Collector 接收器地址 “localhost:4317”。

2.4 在 kubelet 中启用追踪

要启用追踪,需应用追踪配置。 以下是 kubelet 配置的示例代码片段,每 10000 个请求中记录一个请求的 span,并使用默认的 OpenTelemetry 端点:

apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
featureGates:
  KubeletTracing: true
tracing:
  # 默认值
  #endpoint: localhost:4317
  samplingRatePerMillion: 100

如果 samplingRatePerMillion 被设置为一百万 (1000000),则所有 span 都将被发送到导出器。

Kubernetes v1.27 中的 kubelet 从垃圾回收、Pod 同步例程以及每个 gRPC 方法中收集 span。CRI-O 和 containerd 这类关联的容器运行时可以将链路链接到其导出的 span,以提供更多上下文信息。

请注意导出 span 始终会对网络和 CPU 产生少量性能开销,具体取决于系统的总体配置。 如果在启用追踪的集群中出现类似性能问题,可以通过降低 samplingRatePerMillion 或通过移除此配置来彻底禁用追踪来缓解问题。

3、 稳定性

追踪工具仍在积极开发中,未来它会以多种方式发生变化。 这些变化包括:span 名称、附加属性、检测端点等等。 此类特性在达到稳定版本之前,不能保证追踪工具的向后兼容性。

二、代理

用户在使用 Kubernetes 的过程中可能遇到几种不同的代理(proxy):

  1. kubectl proxy:
  2. 运行在用户的桌面或 pod 中
  3. 从本机地址到 Kubernetes apiserver 的代理
  4. 客户端到代理使用 HTTP 协议
  5. 代理到 apiserver 使用 HTTPS 协议
  6. 指向 apiserver
  7. 添加认证头信息
  1. apiserver proxy:
  2. 是一个建立在 apiserver 内部的“堡垒”
  3. 将集群外部的用户与集群 IP 相连接,这些 IP 是无法通过其他方式访问的
  4. 运行在 apiserver 进程内
  5. 客户端到代理使用 HTTPS 协议 (如果配置 apiserver 使用 HTTP 协议,则使用 HTTP 协议)
  6. 通过可用信息进行选择,代理到目的地可能使用 HTTP 或 HTTPS 协议
  7. 可以用来访问 Node、 Pod 或 Service
  8. 当用来访问 Service 时,会进行负载均衡
  1. kube proxy:
  2. 在每个节点上运行
  3. 代理 UDP、TCP 和 SCTP
  4. 不支持 HTTP
  5. 提供负载均衡能力
  6. 只用来访问 Service
  1. apiserver 之前的代理/负载均衡器:
  2. 在不同集群中的存在形式和实现不同 (如 nginx)
  3. 位于所有客户端和一个或多个 API 服务器之间
  4. 存在多个 API 服务器时,扮演负载均衡器的角色
  1. 外部服务的云负载均衡器:
  2. 由一些云供应商提供 (如 AWS ELB、Google Cloud Load Balancer)
  3. Kubernetes 服务类型为 LoadBalancer 时自动创建
  4. 通常仅支持 UDP/TCP 协议
  5. SCTP 支持取决于云供应商的负载均衡器实现
  6. 不同云供应商的云负载均衡器实现不同

Kubernetes 用户通常只需要关心前两种类型的代理,集群管理员通常需要确保后面几种类型的代理设置正确文章来源地址https://www.toymoban.com/news/detail-620841.html

到了这里,关于Kubernetes集群管理 —追踪 Kubernetes 系统组件、代理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Kubernetes 集群管理—日志架构

    应用日志可以让你了解应用内部的运行状况。日志对调试问题和监控集群活动非常有用。 大部分现代化应用都有某种日志记录机制。同样地,容器引擎也被设计成支持日志记录。 针对容器化应用,最简单且最广泛采用的日志记录方式就是写入标准输出和标准错误流。 但是,

    2024年01月17日
    浏览(29)
  • Kubernetes 集群管理和编排

    第一章:引入 Kubernetes 引言: 在本章中,我们将引入 Kubernetes,这是一个强大而受欢迎的容器编排和管理平台。我们将探讨 Kubernetes 的定义、作用以及为什么它成为现代容器编排和管理的事实标准。通过本章,您将对 Kubernetes 的背景和优势有一个全面的了解。 大纲: 什么是

    2024年02月16日
    浏览(44)
  • Rancher 管理 Kubernetes 集群

    //Rancher 简介 Rancher 是一个开源的企业级多集群 Kubernetes 管理平台,实现了 Kubernetes 集群在混合云+本地数据中心的集中部署与管理, 以确保集群的安全性,加速企业数字化转型。超过 40000 家企业每天使用 Rancher 快速创新。 官网:https://docs.rancher.cn/ //Rancher 和 k8s 的区别 Ranch

    2024年02月16日
    浏览(81)
  • 使用Rancher管理Kubernetes集群

    整个部署包括2个部分,一是管理集群部署,二是k8s集群部署。管理集群功能主要提供web界面方式管理k8s集群。正常情况,管理集群3个节点即可,k8s集群至少3个。本文以3节点管理集群,3节点k8s集群为例 说明部署过程 管理集群需要通过域名的方式访问,需要在访问客户端添加

    2024年01月22日
    浏览(24)
  • 4.2 Kubernetes 集群管理和编排

    第一章:引入 Kubernetes 引言: 在本章中,我们将引入 Kubernetes,这是一个强大而受欢迎的容器编排和管理平台。我们将探讨 Kubernetes 的定义、作用以及为什么它成为现代容器编排和管理的事实标准。通过本章,您将对 Kubernetes 的背景和优势有一个全面的了解。 大纲: 什么是

    2024年02月13日
    浏览(28)
  • 云原生Kubernetes:K8S集群各组件服务重启

    目录 一、理论 1.各组件服务重启命令 (1)Master节点+Node节点共同服务 (2)Master节点独有服务 (3)Node节点独有服务

    2024年02月03日
    浏览(35)
  • Kubernetes 多集群管理工具 - Kuboard

    Kuboard 是Kubernetes 多集群管理工具,是一个界面化的web网站,使用起来非常方便。在Kuboard中可以导入集群,在kuboard上可以完成很多的运维工作,比如创建命名空间、创建标签、运行服务、修改pod数量等等。 Kuboard目前已经发展到了v3.x版本了。Kuboard v3.x 支持 amd64 (x86) 架构和

    2024年02月09日
    浏览(25)
  • kubesphere多集群管理,实现kubernetes多集群同时应用部署

    测试kubesphere多集群管理功能,至少需要两套kubesphere集群环境。 1、准备环境 执行以下命令,集群的节点都需要执行。 2、下载kubesphere安装工具KubeKey 这里我先下载好安装工具,在部署操作系统上进行解压,解压出来就具有了 kk 命令。如果没有执行权限,执行如下命令。 3、准

    2024年02月06日
    浏览(35)
  • Kubernetes 集群管理:Kurator or Kubespray

    摘要: Kubespray 和 Kurator 就是这类开源工具的典型代表。本文将对这两款工具进行比较。 本文分享自华为云社区《Kubernetes 集群管理:Kurator or Kubespray-华为云云原生团队》,作者: 云容器大未来 。 随着云计算技术的飞速发展,Kubernetes 已经成为了容器编排领域的事实标准。用

    2024年02月08日
    浏览(31)
  • 【云原生 | 从零开始学Kubernetes】二十、Service代理kube-proxy组件详解

    该篇文章已经被专栏《从零开始学k8s》收录 上一篇文章:Kubernetes核心技术Service实战 点击跳转 Kubernetes service 只是把应用对外提供服务的方式做了抽象,真正的应用跑在 Pod 中的 container 里,我们的请求转到 kubernetes nodes 对应的 nodePort 上,那么 nodePort 上的请求是如何进一步转

    2024年02月03日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包