2016-03-15 118 views
2
docker run \ 
    --volume=/:/rootfs:ro \ 
    --volume=/sys:/sys:ro \ 
    --volume=/var/lib/docker/:/var/lib/docker:rw \ 
    --volume=/var/lib/kubelet/:/var/lib/kubelet:rw \ 
    --volume=/var/run:/var/run:rw \ 
    --net=host \ 
    --pid=host \ 
    --privileged=true \ 
    -d \ 
    gcr.io/google_containers/hyperkube-amd64:v${K8S_VERSION} \ 
    /hyperkube kubelet \ 
     --containerized \ 
     --hostname-override="127.0.0.1" \ 
     --address="0.0.0.0" \ 
     --api-servers=http://localhost:8080 \ 
     --config=/etc/kubernetes/manifests \ 
     --cluster-dns=10.0.0.10 \ 
     --cluster-domain=cluster.local \ 
     --allow-privileged=true --v=2 

A curl localhost:8080确认API正在运行。外部访问kubernetes

但是,试图与主机的IP来访问它像curl dockerHostIp:8080失败:

Failed to connect to ipOfDockerHost port 8080: Connection refused 

我如何可以公开K8S到外面? (码头主机是一个Ubuntu服务器) 据我了解使用--net =主机应该解决这个问题。但在这种情况下它不起作用。

回答

2

当你开始使用泊坞窗kubernetes,你们两个型号之间进行选择:

如果你看看这些文件,你会发现一个区别:--insecure-bind-address is different

当您使用--config=/etc/kubernetes/manifests时,您只需要本地访问权限。

您应该从--config=/etc/kubernetes/manifests-multi开始。

需要注意的是:

  • 您需要的时候使用手动启动ETCD --config =的/ etc/kubernetes /体现的多
  • 遵循this post如码头工人的支持是不工作的,现在
+0

还有一件事:执行'kubectl get ep'也可能有帮助。 –

+0

@geoHeil。 'kubectl get ep'返回安全端口。你如何获得证书?现在,我将它们放在由hyperkube启动的'setup-files.sh'容器中的'/ data'中。但我真的不知道如何翻译他们... –

+0

[这里](https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/admin/authentication.md)肯定是很好的文档起点 –