我正在尝试访问由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:8080和http://192.168.50.4:8080的主机操作系统访问nginx服务器
我想知道如何在入门指南中缺少什么参数来在docker中运行kubernetes并通过私有网络设置从主机操作系统访问它(就像nginx一样)?< / p>
答案 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"
]
}
}