k8s targetPort
时间: 2023-10-25 19:02:08 浏览: 37
在 Kubernetes 中,targetPort 是一个 Service 对象的属性,它指定了 Service 所代理的后端 Pod 中的容器所监听的端口。当 Service 接收到请求后,根据其定义的端口和协议,将请求转发到对应的后端 Pod 上。targetPort 可以是任意有效的端口号,但必须与后端 Pod 中容器监听的端口号相匹配。例如,如果后端 Pod 中的容器监听的是 8080 端口,那么 Service 中的 targetPort 应该设置为 8080。
相关问题
k8s中targetPort和containerPort是什么关系
在Kubernetes中,targetPort和containerPort都是用于指定容器中运行的应用程序使用的端口号。
containerPort是容器内部使用的端口号,它定义了容器中运行的应用程序监听的端口号。而targetPort则是Service中使用的端口号,它定义了Service代理请求的端口号。
当一个Service需要代理请求到后端Pod时,它会将请求发送到Pod的IP地址和targetPort指定的端口。然后kube-proxy会将这个请求转发到对应的Pod的containerPort指定的端口上,从而完成请求的转发。
因此,可以将targetPort看作是Service的暴露端口,而containerPort则是Pod内部应用程序的监听端口。
如何看k8s中targetport与containerport是否关联
在Kubernetes中,可以通过以下步骤来确认`targetPort`和`containerPort`是否关联成功:
1. 确认Service名称和Pod名称
使用`kubectl get svc`和`kubectl get pods`命令确认Service名称和Pod名称。
2. 查看Service详情
使用`kubectl describe svc <service-name>`命令查看Service的详情,其中包括了Service关联的Pod以及`targetPort`和`port`的信息。
3. 查看Pod详情
使用`kubectl describe pod <pod-name>`命令查看Pod的详情,其中包括了Pod中容器的信息,包括容器的名称和`containerPort`。
4. 确认关联成功
通过比较Service中的`targetPort`和Pod中的`containerPort`是否一致来确认关联是否成功。如果一致,则表示关联成功,否则需要检查是否配置正确。
需要注意的是,如果使用了`NodePort`或`LoadBalancer`类型的Service,需要在节点或负载均衡器上确认相应的端口是否已经打开,才能够通过外部IP或节点IP访问Service。
阅读全文