minikube:无法连接本地部署的nginx服务

sou*_*ics 8 docker etcd kubernetes flannel

我在我的ubuntu 16.04机器上安装了minikube并启动了一个集群,并附带一条消息

"Kubernetes is available at https://192.168.99.100:443"

接下来,我使用以下命令部署了nginx服务

> kubectl.sh run my-nginx --image=nginx --replicas=2 --port=80 --expose

> kubectl.sh get  pods -o wide
NAME                        READY     STATUS    RESTARTS   AGE       NODE
my-nginx-2494149703-8jnh4   1/1       Running   0          13m       127.0.0.1
my-nginx-2494149703-q09be   1/1       Running   0          13m       127.0.0.1

> kubectl.sh get  services -o wide
NAME         CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE       SELECTOR
kubernetes   10.0.0.1     <none>        443/TCP   14m       <none>
my-nginx     10.0.0.83    <none>        80/TCP    13m       run=my-nginx

> kubectl.sh get  nodes -o wide
NAME        STATUS    AGE
127.0.0.1   Ready     16m
Run Code Online (Sandbox Code Playgroud)

问题:

1)节点127.0.0.1是我的本地开发机器吗?这让我最困惑.

2)以下理解是否正确:集群(节点,kubernetes API服务器)具有10.0.0.x中的内部IP地址,其对应的外部IP地址为192.168.99.x. 那么2个pod将具有10.0.1.x和10.0.2.x范围内的IP?

3)为什么服务的外部IP不存在?对于kubernetes服务,甚至都没有.这里不是192.168.99.43的外部IP吗?

4)最重要的是,如何从笔记本电脑连接到nginx服务?

Ste*_*oka 13

1)节点127.0.0.1是我的本地开发机器吗?这让我最困惑.

当节点注册时,您提供要注册的IP或名称.默认情况下,节点只是注册127.0.0.1.这是引用运行linux的VM,而不是主机.

2)以下理解是否正确:集群(节点,kubernetes API服务器)具有10.0.0.x中的内部IP地址,其对应的外部IP地址为192.168.99.x. 那么2个pod将具有10.0.1.x和10.0.2.x范围内的IP?

是的,10.0.0.x网络是你的覆盖网络.192.168.99.x是您在群集外可见的"公共"地址.

3)为什么服务的外部IP不存在?对于kubernetes服务,甚至都没有.这里不是192.168.99.43的外部IP吗?

外部IP通常用于通过特定IP进入流量.kubernetes服务使用clusterIP服务类型,这意味着它只对内部集群可见.

4)最重要的是,如何从笔记本电脑连接到nginx服务?

查看nginx服务的最简单方法是进行类型化NodePort,然后部署服务.在此之后,描述服务以获取已分配的端口(或在您创建它之后也会告诉您).然后点击您的VM的IP并提供自动分配的NodePort.

e.g. http://192.168.99.100:30001

  • 谢谢Steve!另一种访问服务的方法(如果您不想使用NodePort)是使用kubectl port-forward来访问底层pod.例如,你可以运行:`kubectl port-forward mypod 8080:8080`,以便在http:// localhost:8080上提供pod (5认同)