--- title: Kubernetes 中的代理 content_type: concept weight: 100 --- 本文讲述了 Kubernetes 中所使用的代理。 ## 代理 {#proxies} 用户在使用 Kubernetes 的过程中可能遇到几种不同的代理(proxy): 1. [kubectl proxy](/zh-cn/docs/tasks/access-application-cluster/access-cluster/#directly-accessing-the-rest-api): - 运行在用户的桌面或 pod 中 - 从本机地址到 Kubernetes apiserver 的代理 - 客户端到代理使用 HTTP 协议 - 代理到 apiserver 使用 HTTPS 协议 - 指向 apiserver - 添加认证头信息 2. [apiserver proxy](/zh-cn/docs/tasks/access-application-cluster/access-cluster-services/#discovering-builtin-services): - 是一个建立在 apiserver 内部的“堡垒” - 将集群外部的用户与集群 IP 相连接,这些 IP 是无法通过其他方式访问的 - 运行在 apiserver 进程内 - 客户端到代理使用 HTTPS 协议 (如果配置 apiserver 使用 HTTP 协议,则使用 HTTP 协议) - 通过可用信息进行选择,代理到目的地可能使用 HTTP 或 HTTPS 协议 - 可以用来访问 Node、 Pod 或 Service - 当用来访问 Service 时,会进行负载均衡 3. [kube proxy](/zh-cn/docs/concepts/services-networking/service/#ips-and-vips): - 在每个节点上运行 - 代理 UDP、TCP 和 SCTP - 不支持 HTTP - 提供负载均衡能力 - 只用来访问 Service 4. apiserver 之前的代理/负载均衡器: - 在不同集群中的存在形式和实现不同 (如 nginx) - 位于所有客户端和一个或多个 API 服务器之间 - 存在多个 API 服务器时,扮演负载均衡器的角色 5. 外部服务的云负载均衡器: - 由一些云供应商提供 (如 AWS ELB、Google Cloud Load Balancer) - Kubernetes 服务类型为 `LoadBalancer` 时自动创建 - 通常仅支持 UDP/TCP 协议 - SCTP 支持取决于云供应商的负载均衡器实现 - 不同云供应商的云负载均衡器实现不同 Kubernetes 用户通常只需要关心前两种类型的代理,集群管理员通常需要确保后面几种类型的代理设置正确。 ## 请求重定向 代理已经取代重定向功能,重定向功能已被弃用。