📜  Kubernetes – 集群 IP 与节点端口(1)

📅  最后修改于: 2023-12-03 15:17:10.919000             🧑  作者: Mango

Kubernetes – 集群 IP 与节点端口

Kubernetes是Google开源的容器编排工具,它可以管理容器的自动部署、容器的自动伸缩以及负载均衡等功能。在Kubernetes集群中,每个节点都可以通过唯一的IP地址和端口访问到集群中的服务。本文将介绍Kubernetes集群IP与节点端口的相关知识。

集群IP

在Kubernetes集群中,每个节点都有一个唯一的IP地址,称为节点IP。这个IP地址是可以直接访问到节点上的所有服务的。除此之外,Kubernetes还提供了集群IP,也称为虚拟IP或者服务IP。

集群IP是由Kubernetes控制面的kube-proxy组件负责维护的。当创建一个Kubernetes服务时,kube-proxy会为这个服务分配一个唯一的虚拟IP地址。所有访问这个虚拟IP地址的请求都会被转发到集群中的对应服务。

集群IP有以下几个特点:

  • 集群IP是唯一的,在整个集群中具有全局唯一性。
  • 集群IP是由kube-proxy动态分配的,可以自动根据服务的创建、删除等情况进行调整。
  • 集群IP是对外隐藏的,外部无法直接访问到集群IP,只能通过节点IP访问到服务。
节点端口

在Kubernetes集群中,除了节点IP和集群IP之外,每个节点还有一个范围为30000-32767的端口区间,称为节点端口。

节点端口是由Kubernetes控制面的kubelet组件负责维护的。当创建一个Kubernetes服务时,kubelet会为这个服务分配一个唯一的节点端口号。所有访问这个节点端口号的请求都会被转发到对应服务的Pod实例上。

节点端口有以下几个特点:

  • 节点端口是唯一的,在整个集群中具有全局唯一性。
  • 节点端口是由kubelet动态分配的,可以自动根据服务的创建、删除等情况进行调整。
  • 节点端口是对外隐藏的,外部无法直接访问到节点端口,只能通过节点IP访问到服务。
使用集群IP和节点端口

在Kubernetes集群中,可以使用集群IP和节点端口来访问服务。如果使用集群IP来访问服务,可以使用Service主机名或者集群IP直接访问。如果使用节点端口来访问服务,可以使用节点IP和节点端口号的组合来访问。

示例代码片段:

使用集群IP来访问服务:

$ curl http://<service-name>.<namespace>.svc.cluster.local

使用节点端口来访问服务:

$ curl http://<node-ip>:<node-port>

在Kubernetes集群中,使用集群IP和节点端口来访问服务是非常常见的操作。通过了解集群IP和节点端口的相关知识,可以更好地理解Kubernetes集群的工作原理,进一步提高Kubernetes的使用效率。