k8s占用的端口号用 kubectl get svc 和lsof -i、netstat 命令都查不到
时间: 2023-01-11 13:55:36 浏览: 120
如果你使用了 kubectl get svc 和 lsof -i 或 netstat 命令查看端口,却没有查到 Kubernetes 的服务,有可能是因为 Kubernetes 服务运行在容器内部。
在这种情况下,你可以通过以下步骤来查看 Kubernetes 服务所使用的端口号:
1. 使用 kubectl get pods 命令来查看当前集群中的所有容器。
2. 找到你想要查看的容器的名称,然后使用 kubectl describe pod 命令来查看容器的详细信息。
3. 在容器信息中找到「端口映射」(Port Mapping)或「环境变量」(Environment Variables)部分,这里会列出容器内部运行的服务所使用的端口号。
如果你还不清楚怎么操作,可以提供更多的信息,我会尽量帮助你。
相关问题
k8s占用的端口号,使用netstat命令查不到
k8s使用的端口号可能会有很多,因为它是一个容器编排系统,它可以管理和运行大量的容器。这些容器可能会运行在不同的主机上,并且可能使用不同的端口。
如果你想要查看k8s使用的端口号,你可以使用kubectl命令行工具,使用以下命令查看集群中所有的服务:
```
kubectl get svc --all-namespaces
```
这将会列出集群中所有的服务以及它们使用的端口号。
另外,k8s还使用一些特定的端口号来进行内部通信,例如:
- 6443:kube-apiserver使用的端口号,用于集群内部的API服务。
- 10250:kubelet使用的端口号,用于与kube-apiserver通信。
- 10251:kube-scheduler使用的端口号,用于与kube-apiserver通信。
- 10252:kube-controller-manager使用的端口号,用于与kube-apiserver通信。
这些端口号可能不会在netstat命令的输出中出现,因为它们是k8s内部使用的端口,不对外暴露。如果你想要查看这些端口的状态,可以使用lsof命令或者ss命令。
使用netstat -tnlp 看不到k8s占用的端口
使用 netstat -tnlp 命令时,如果看不到 k8s 占用的端口,可能是因为 k8s 使用的是虚拟 IP 地址和虚拟端口。你可以使用命令 `ip addr show` 查看虚拟 IP 地址,然后使用 `lsof -i :端口号` 查看虚拟端口的使用情况。
你也可以使用 `kubectl get svc` 命令查看 k8s 服务的详细信息,包括端口号和 IP 地址。
例如:
```
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d
nginx NodePort 10.100.200.10 <none> 80:30080/TCP 1d
```
在上面的示例中,k8s 使用的是 10.100.200.10 这个虚拟 IP 地址,端口号为 30080。