关于k8s中各种IP的总结

2 阅读2分钟

在 Kubernetes(K8s)集群中,涉及多种 IP 地址类型,每种都有特定的生成方式、使用方法以及与 API Server 的关联。以下是主要的 IP 地址类型及其详细说明:

  1. Node IP(节点 IP)

    • 生成方式:每个节点(物理机或虚拟机)都有一个唯一的 IP 地址,通常由云服务提供商或网络管理员分配。
    • 用途:用于节点间通信和外部访问。外部客户端可以通过 NodeIP:NodePort 访问暴露在节点上的服务。
    • 与 API Server 的关联:API Server 通过节点的 IP 地址与集群中的各个节点通信。
  2. Pod IP(Pod IP)

    • 生成方式:每个 Pod 都有一个唯一的 IP 地址,通常由网络插件(如 CNI 插件)在 Pod 创建时分配。
    • 用途:用于 Pod 间通信。集群内的 Pod 可以直接通过 Pod IP 相互通信。
    • 与 API Server 的关联:API Server 通过 Pod 的 IP 地址管理和调度 Pod。
  3. Cluster IP(集群 IP)

    • 生成方式:为每个 Service 分配的虚拟 IP 地址,通常由 API Server 在 Service 创建时从预配置的 IP 范围内动态分配。
    • 用途:用于集群内部访问。集群内的客户端可以通过 ClusterIP:Port 访问服务。
    • 与 API Server 的关联:API Server 负责为 Service 分配 ClusterIP,并通过该 IP 管理服务的生命周期和配置。需要注意的是这个IP是不支持直接访问的,可以理解成它相当于一个接口形式的IP,负责流量转发到label匹配的Pod的容器应用上。
  4. External IP(外部 IP)

    • 生成方式:由云服务提供商或外部负载均衡器分配的 IP 地址,用于集群外部访问服务。
    • 用途:外部客户端可以通过 ExternalIP:Port 访问服务。
    • 与 API Server 的关联:API Server 通过 ExternalIP 管理服务的暴露和访问控制。
  5. API Server IP(API Server IP)

    • 生成方式:Kubernetes API Server 的 IP 地址,通常由集群管理员在集群初始化时配置。
    • 用途:用于集群内部和外部的 API 请求。客户端和集群组件通过 API Server IP 进行通信。
    • 与 API Server 的关联:API Server 的 IP 地址是集群管理和操作的核心,所有的 API 请求都通过此地址进行。
  6. Ingress IP(Ingress IP)

    • 生成方式:由 Ingress Controller 分配的 IP 地址,用于集群外部访问服务。
    • 用途:外部客户端可以通过 IngressIP:Port 访问服务。