如何在Kubernetes中访问主机HTTP服务器

问题描述

如果http服务器在主机系统上运行,并且http客户端希望在pod内运行。是否可以使用主机IP地址连接到主机系统服务器。NodePort服务是否适用于连接主机HTTP服务器?

解决方法

确保主机正在侦听所有接口,而不仅仅是localhost。尝试先从另一台机器(而不是Pod)连接到服务以进行测试。从网络的角度来看,它们是两台单独的计算机。参见以下示例:

从OSX进行测试:

$ HOST_IP=$(ifconfig | grep en0 -A 5 | grep 'inet ' | cut -d' ' -f2)
$ brew install nginx
$ nginx
$ curl -I $HOST_IP:8080 2>/dev/null | head -n 1
HTTP/1.1 200 OK

$ docker run -ti --rm centos curl -I $HOST_IP:8080 2>/dev/null | head -n 1
HTTP/1.1 200 OK