Kubernetes 中的代理

本页面解释了 Kubernetes 中使用的代理。

代理

使用 Kubernetes 时可能会遇到几种不同的代理:

  1. kubectl 代理

    • 在用户的桌面或 Pod 中运行
    • 将来自 localhost 地址的请求代理到 Kubernetes API 服务器
    • 客户端到代理使用 HTTP
    • 代理到 API 服务器使用 HTTPS
    • 定位 API 服务器
    • 添加身份验证头
  2. API 服务器代理

    • 是内置在 API 服务器中的堡垒机
    • 将集群外部的用户连接到可能无法访问的集群 IP
    • 在 API 服务器进程中运行
    • 客户端到代理使用 HTTPS(如果 API 服务器配置为 http 则使用 http)
    • 代理到目标可以根据代理使用可用信息选择使用 HTTP 或 HTTPS
    • 可用于访问节点、Pod 或 Service
    • 在用于访问 Service 时进行负载均衡
  3. kube-proxy

    • 在每个节点上运行
    • 代理 UDP、TCP 和 SCTP
    • 不理解 HTTP
    • 提供负载均衡
    • 仅用于访问 Service
  4. API 服务器前面的代理/负载均衡器

    • 其存在和实现因集群而异(例如 nginx)
    • 位于所有客户端和一个或多个 API 服务器之间
    • 如果存在多个 API 服务器,则充当负载均衡器。
  5. 外部服务上的云负载均衡器

    • 由一些云提供商提供(例如 AWS ELB、Google Cloud Load Balancer)
    • 当 Kubernetes Service 类型为 LoadBalancer 时自动创建
    • 通常只支持 UDP/TCP
    • SCTP 支持取决于云提供商的负载均衡器实现
    • 实现因云提供商而异。

Kubernetes 用户通常只需关注前两种类型。集群管理员通常会确保正确设置后几种类型。

请求重定向

代理已经取代了重定向功能。重定向已被弃用。

最后修改时间:2022 年 10 月 24 日太平洋标准时间下午 1:43:KubeCon Docs Sprint: 更新 content/en/docs/concepts/cluster-administration 的页面权重。(ac5e7c0bd0)