netstat 将外部端口显示为 kubernetes:port。这是什么意思?
netstat showing foreign ports as kubernetes:port. What does this mean?
我使用的是 Windows 10 Pro 机器。
当我 运行 netstat
时,它在活动连接中显示 kubernetes:port
作为外部地址。
这是什么意思?我已经检查过,我的机器上没有 kubernetes 集群 运行ning。
如何关闭这些连接?
Minikube 状态:
$ minikube status
host:
kubelet:
apiserver:
kubectl:
好的,看来您的 minikube
实例确实已删除。请记住,在 Linux 或其他基于 nix 的系统 中,许多进程使用网络套接字在每个进程之间进行通信是完全正常的其他例如您会看到许多已建立的连接,本地和外部地址都设置为 localhost:
tcp 0 0 localhost:45402 localhost:2379 ESTABLISHED
tcp 0 0 localhost:45324 localhost:2379 ESTABLISHED
tcp 0 0 localhost:2379 localhost:45300 ESTABLISHED
tcp 0 0 localhost:45414 localhost:2379 ESTABLISHED
tcp 0 0 localhost:2379 localhost:45388 ESTABLISHED
tcp 0 0 localhost:40600 localhost:8443 ESTABLISHED
在您的情况下,kubernetes
只不过是您的 machines/VMs/instances 之一的 hostname
。也许您 运行 您的 minikube
上面的那个您调用了 kubernetes
,这就是此主机名当前出现在您的活动网络连接中的原因。基本上跟运行ning kubernetes cluster.
没有关系
为了更清楚,您可以 cat
您的 /etc/hosts
文件的内容并查找条目 kubernetes
。然后您可以将它们与您的网络接口地址 (运行 ip -4 a
) 进行比较。 /etc/hosts
中的 kubernetes
条目很可能映射到其中一个。
如果它澄清了您的疑问,请告诉我。
编辑:
我已经在我的 linux 实例上的 Minikube 上复制了它并注意到完全相同的行为,但看起来 ESTABLISHED 连接仅在成功 minikube stop
。在 minikube delete
之后,它们就消失了。看起来这些连接确实属于 kubernetes 的各个组件,但由于某种原因没有终止。基本上关闭已建立的网络连接是创建它们的应用程序的责任,并且由于某种原因 minikube 似乎没有终止它们。
如果你运行:
sudo netstat -ntp ### important: it must be run as superuser
它还显示 PID/Program name
列,您可以在其中查看特定程序连接是通过哪个程序建立的。您会看到很多 ESTABLISHED
个属于 etcd
和 kube-apiserver
的网络连接。
首先我尝试重启整个实例。它显然关闭了所有连接,但后来我验证了几次,看起来成功执行 minikube delete
也关闭了所有连接。
此外,您可能希望通过 运行ning 检查可用的 docker 容器:
docker ps
或:
docker container ls
停止 minikube 实例后,它仍然显示那些容器,这似乎是 [=32= 仍然显示与某些 kubernetes 组件** 的大量连接的原因]命令。
但是在 minikube delete
之后,与 kubernetes 集群 组件的 containers
和 ESTABLISHED
连接都不再可用。
发生这种情况是因为 netstat
呈现输出的方式。它与实际的 Kubernetes 无关。
我有 Docker 用于 Windows 的桌面,并将其添加到主机文件中:
# Added by Docker Desktop
192.168.43.196 host.docker.internal
192.168.43.196 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section
有一条记录将 127.0.0.1
映射到 kubernetes.docker.internal
。当 netstat
呈现其输出时,它解析外部地址并查看主机文件并看到此记录。它显示 kubernetes
,这就是您在控制台中看到的内容。你可以试试改成
127.0.0.1 tomato.docker.internal
这样,netstat
将打印:
Proto Local Address Foreign Address State
TCP 127.0.0.1:6940 tomato:6941 ESTABLISHED
TCP 127.0.0.1:6941 tomato:6940 ESTABLISHED
TCP 127.0.0.1:8080 tomato:40347 ESTABLISHED
TCP 127.0.0.1:8080 tomato:40348 ESTABLISHED
TCP 127.0.0.1:8080 tomato:40349 ESTABLISHED
所以实际发生的是从本地主机到本地主机的连接(netstat -b
将显示创建它们的应用程序)。与 Kubernetes 无关。
似乎 Windows docker 更改了您的 hosts
文件。
所以,如果你想摆脱这些联系,只需在 hosts
文件中注释掉相应的行即可。
hosts
Windows 10 上的文件位于 C:\Windows\System32\drivers\etc
和
记录可能类似于 127.0.0.1 kubernetes.docker.internal
。
我很确定它会中断你在 Windows 上的 docker 服务(然而,我不是专家),所以不要忘记在你需要获取 docker 时取消注释这些行服务回来。
我使用的是 Windows 10 Pro 机器。
当我 运行 netstat
时,它在活动连接中显示 kubernetes:port
作为外部地址。
这是什么意思?我已经检查过,我的机器上没有 kubernetes 集群 运行ning。
如何关闭这些连接?
Minikube 状态:
$ minikube status
host:
kubelet:
apiserver:
kubectl:
好的,看来您的 minikube
实例确实已删除。请记住,在 Linux 或其他基于 nix 的系统 中,许多进程使用网络套接字在每个进程之间进行通信是完全正常的其他例如您会看到许多已建立的连接,本地和外部地址都设置为 localhost:
tcp 0 0 localhost:45402 localhost:2379 ESTABLISHED
tcp 0 0 localhost:45324 localhost:2379 ESTABLISHED
tcp 0 0 localhost:2379 localhost:45300 ESTABLISHED
tcp 0 0 localhost:45414 localhost:2379 ESTABLISHED
tcp 0 0 localhost:2379 localhost:45388 ESTABLISHED
tcp 0 0 localhost:40600 localhost:8443 ESTABLISHED
在您的情况下,kubernetes
只不过是您的 machines/VMs/instances 之一的 hostname
。也许您 运行 您的 minikube
上面的那个您调用了 kubernetes
,这就是此主机名当前出现在您的活动网络连接中的原因。基本上跟运行ning kubernetes cluster.
为了更清楚,您可以 cat
您的 /etc/hosts
文件的内容并查找条目 kubernetes
。然后您可以将它们与您的网络接口地址 (运行 ip -4 a
) 进行比较。 /etc/hosts
中的 kubernetes
条目很可能映射到其中一个。
如果它澄清了您的疑问,请告诉我。
编辑:
我已经在我的 linux 实例上的 Minikube 上复制了它并注意到完全相同的行为,但看起来 ESTABLISHED 连接仅在成功 minikube stop
。在 minikube delete
之后,它们就消失了。看起来这些连接确实属于 kubernetes 的各个组件,但由于某种原因没有终止。基本上关闭已建立的网络连接是创建它们的应用程序的责任,并且由于某种原因 minikube 似乎没有终止它们。
如果你运行:
sudo netstat -ntp ### important: it must be run as superuser
它还显示 PID/Program name
列,您可以在其中查看特定程序连接是通过哪个程序建立的。您会看到很多 ESTABLISHED
个属于 etcd
和 kube-apiserver
的网络连接。
首先我尝试重启整个实例。它显然关闭了所有连接,但后来我验证了几次,看起来成功执行 minikube delete
也关闭了所有连接。
此外,您可能希望通过 运行ning 检查可用的 docker 容器:
docker ps
或:
docker container ls
停止 minikube 实例后,它仍然显示那些容器,这似乎是 [=32= 仍然显示与某些 kubernetes 组件** 的大量连接的原因]命令。
但是在 minikube delete
之后,与 kubernetes 集群 组件的 containers
和 ESTABLISHED
连接都不再可用。
发生这种情况是因为 netstat
呈现输出的方式。它与实际的 Kubernetes 无关。
我有 Docker 用于 Windows 的桌面,并将其添加到主机文件中:
# Added by Docker Desktop
192.168.43.196 host.docker.internal
192.168.43.196 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section
有一条记录将 127.0.0.1
映射到 kubernetes.docker.internal
。当 netstat
呈现其输出时,它解析外部地址并查看主机文件并看到此记录。它显示 kubernetes
,这就是您在控制台中看到的内容。你可以试试改成
127.0.0.1 tomato.docker.internal
这样,netstat
将打印:
Proto Local Address Foreign Address State
TCP 127.0.0.1:6940 tomato:6941 ESTABLISHED
TCP 127.0.0.1:6941 tomato:6940 ESTABLISHED
TCP 127.0.0.1:8080 tomato:40347 ESTABLISHED
TCP 127.0.0.1:8080 tomato:40348 ESTABLISHED
TCP 127.0.0.1:8080 tomato:40349 ESTABLISHED
所以实际发生的是从本地主机到本地主机的连接(netstat -b
将显示创建它们的应用程序)。与 Kubernetes 无关。
似乎 Windows docker 更改了您的 hosts
文件。
所以,如果你想摆脱这些联系,只需在 hosts
文件中注释掉相应的行即可。
hosts
Windows 10 上的文件位于 C:\Windows\System32\drivers\etc
和
记录可能类似于 127.0.0.1 kubernetes.docker.internal
。
我很确定它会中断你在 Windows 上的 docker 服务(然而,我不是专家),所以不要忘记在你需要获取 docker 时取消注释这些行服务回来。