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
curl localhost:8080
确认API正在运行。
但尝试使用主机的curl dockerHostIp:8080
等IP来访问它会失败:
Failed to connect to ipOfDockerHost port 8080: Connection refused
如何将k8暴露在外? (docker-host是一个ubuntu服务器) 据我所知,使用--net = host应该可以解决这个问题。但在这种情况下它不起作用。
答案 0 :(得分:2)
当您使用docker启动kubernetes时,您可以选择两种模型:
如果查看这些文件,您会发现一个区别:--insecure-bind-address is different
。
当您使用--config=/etc/kubernetes/manifests
时,您只需要本地访问权限。
您应该从--config=/etc/kubernetes/manifests-multi
开始。
请注意: