netstat将外部端口显示为kubernetes:port。这是什么意思?
我使用的是Windows 10 Pro计算机 当我运行netstat将外部端口显示为kubernetes:port。这是什么意思?,kubernetes,tcp,minikube,netstat,Kubernetes,Tcp,Minikube,Netstat,我使用的是Windows 10 Pro计算机 当我运行netstat时,它将kubernetes:port显示为活动连接中的外部地址 这是什么意思?我已经检查过了,我的机器上没有运行kubernetes群集 如何关闭这些连接 Minikube状态: $ minikube status host: kubelet: apiserver: kubectl: 好的,看起来您的minikube实例肯定被删除了。请记住,在Linux或其他基于nix的系统中许多进程使用网络套接字相互通信是完全正常的,例
netstat
时,它将kubernetes:port
显示为活动连接中的外部地址
这是什么意思?我已经检查过了,我的机器上没有运行kubernetes群集
如何关闭这些连接
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
在您的例子中,只不过是您的一台机器/vm/实例的hostname
。可能是您运行minikube
时调用的kubernetes
的主机名,这就是此主机名当前出现在活动网络连接中的原因。基本上,它与运行kubernetes集群无关
为了更清楚,您可以cat
查看/etc/hosts
文件的内容,并查找条目kubernetes
。然后您可以将它们与网络接口地址进行比较(运行ip-4a
)。/etc/hosts
中的kubernetes
条目很可能映射到其中一个
如果能澄清你的疑问,请告诉我
编辑: 我已经在我的linux实例上的Minikube上复制了它,并注意到了完全相同的行为,但是看起来只有在成功地停止Minikube后才能显示已建立的连接。在
minikube删除之后
它们就消失了。看起来这些连接确实属于kubernetes的各个组件,但由于某些原因没有终止。基本上,关闭已建立的网络连接是创建它们的应用程序的责任,看起来出于某种原因minikube并没有终止它们
如果您运行:
sudo netstat -ntp ### important: it must be run as superuser
它还显示PID/Program name
列,在该列中,您可以看到通过哪个程序建立了特定的连接。您将看到许多已建立的网络连接属于etcd
和kube-apiserver
首先,我尝试重新启动整个实例。很明显,它关闭了所有连接,但是我验证了几次,它看起来成功执行了minikube delete
也关闭了所有连接
此外,您可能希望通过运行以下命令来检查可用的docker容器:
docker ps
或:
在停止minikube实例后,它仍然显示这些容器,这似乎是netstat
命令仍然显示与某些kubernetes组件**的大量连接的原因
但是,在minikube delete
之后,无论是容器还是已建立的与kubernetes集群的连接都不再可用。这是由于netstat
呈现输出的方式造成的。这与真正的库伯内特无关
我有Docker Desktop for 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
呈现其输出时,它解析外部地址并查看hosts文件并查看此记录。它说的是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
因此,实际发生的情况是,存在从localhost到localhost的连接(netstat-b
将显示创建这些连接的应用程序)。与Kubernetes无关。看来Windows docker更改了您的主机
文件。
因此,如果您想摆脱这些连接,只需在hosts
文件中注释掉相应的行即可
Windows 10上的hosts
文件位于C:\Windows\System32\drivers\etc
和
这些记录可能类似于127.0.0.1 kubernetes.docker.internal
。
我很确定这会破坏你在Windows上的docker服务(不过,我不是专家),所以当你需要恢复docker服务时,别忘了取消这些行的注释。我可以知道你为什么添加了minikube
标签并说你的机器上没有kubernetes群集吗?我安装了minikube来运行kubernetes,然后我用它停止了minikube和k8s集群。这就是我提到的原因。minikube status
命令的输出是什么?我用minikube status编辑了这个问题。好的,我检查一下。我使用的是windows 10 pro而不是linux。是的,我知道,但如果您使用的是minikube
或docker desktop
,它基本上使用某种虚拟化,并在linux操作系统上运行docker容器。好的,那么您可以在windows命令行或powershell
中运行netstat
,是吗?请看我上次的编辑。谢谢你的详细解释。我检查了主机文件并删除了kubernetes引用,现在没有kube作为外部主机。它无法删除实例或/和端口。他们现在自称cbs:XXXXXX。我猜他们是和多克一起来的。奇怪的是,当firefox被打开时,会出现更多这样的实例。这里有点可疑。
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