我如何找出主机上的端口属于哪个端口或服务

时间:2019-07-13 02:24:51

标签: kubernetes

我通过kubeadm设置了一个kubernetes,一切正常。 我只是一时兴起:我如何找到一些由本地主机上由kube-proxy启动的端口所依赖的pod或服务?

[root@k8s-node1 ~]# netstat -tnlp|grep 80
tcp        0      0 172.19.5.38:8080        0.0.0.0:*               LISTEN      13918/kube-proxy    
tcp        0      0 172.19.5.38:80          0.0.0.0:*               LISTEN      13918/kube-proxy 

我想知道80或8080属于哪个吊舱或服务?假设我已经忘记了我提交给kubernetes的哪个Yaml文件。

thx

1 个答案:

答案 0 :(得分:0)

您始终可以在Kubernetes中describe个对象。

例如,如果要检查服务上正在使用哪些端口,则必须使用以下命令。

$ kubectl get svc -o wide --all-namespaces
NAMESPACE     NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE     SELECTOR
default       kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP                  3m39s   <none>
kube-system   kube-dns     ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP,9153/TCP   3m38s   k8s-app=kube-dns

如果要从部署中检查Ports,可以使用kubectl describe deploy <deploymentName>并将其grep用作上下文。它将同样适用于Pod

$ kubectl describe deploy <deploymentName>| grep Port
    Port:         80/TCP
    Host Port:    0/TCP

此外,如果您不记得用来创建Pod / Deployment的Yaml,可以使用edit进行检查。

$ kubectl edit deployment <deploymentName> -o yaml

它将显示YAML文件(在VI中),该文件是根据部署和一些其他状态显示的。

让我知道这是帮助还是您还有其他疑问。