Kubernetes 中的代理

本页解释了与 Kubernetes 一起使用的代理。

代理

在使用 Kubernetes 时,您可能会遇到几种不同的代理。

  1. 您可以在 kubectl proxy

    • 在用户的桌面上或 pod 中运行
    • 从本地主机地址代理到 Kubernetes apiserver
    • 客户端到代理使用 HTTP
    • 代理到 apiserver 使用 HTTPS
    • 定位 apiserver
    • 添加身份验证标头
  2. 您可以在 apiserver 代理

    • 是一个内置于 apiserver 的堡垒
    • 将集群外部的用户连接到集群 IP,否则这些 IP 可能无法访问
    • 在 apiserver 进程中运行
    • 客户端到代理使用 HTTPS(如果 apiserver 如此配置,则使用 http)
    • 代理到目标可能使用 HTTP 或 HTTPS,由代理使用可用信息选择
    • 可用于访问节点、Pod 或服务
    • 在用于访问服务时执行负载均衡
  3. 您可以在 kube 代理

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

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

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

Kubernetes 用户通常不需要担心除前两种类型以外的任何其他类型。集群管理员通常会确保后两种类型已正确设置。

请求重定向

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