从主机操作系统访问来宾操作系统中的docker内部运行的kubernetes

时间:2016-01-20 14:34:38

标签: docker vagrant kubernetes

我正在尝试访问由Vagrant从主机操作系统配置的客户操作系统中暴露的kubernetes api。 Vagrantfile通过专用网络公开来宾操作系统的所有端口,并像这样转发端口8080:

config.vm.network "forwarded_port", guest: 8080, host: 8080
config.vm.network "private_network", ip: "192.168.50.4"

使用docker关注kubernetes getting started guide时,我无法通过主机操作系统访问kubernetes api:

但是api只能从http://127.0.0.1:8080来宾操作系统访问...

从这样的客户操作系统运行nginx时

docker run -d -p 8080:80 nginx

可以从http://127.0.0.1:8080http://192.168.50.4:8080主机操作系统访问nginx服务器

我想知道如何在入门指南中缺少什么参数来在docker中运行kubernetes并通过私有网络设置从主机操作系统访问它(就像nginx一样)?< / p>

1 个答案:

答案 0 :(得分:0)

您需要根据http://kubernetes.io/docs/user-guide/services/#external-ips

的服务规范配置ExternalIP

配置服务时,您需要包含类似以下内容的部分(在JSON中,您可能更喜欢yaml)。

{ "kind": "Service", "apiVersion": "v1", "metadata": { "name": "my-service" }, "spec": { "selector": { "app": "MyApp" }, "ports": [ { "name": "http", "protocol": "TCP", "port": 8080, "targetPort": 8080 } ], "externalIPs" : [ 192.168.50.4" ] } }