gpt4 book ai didi

docker - 外部访问kubernetes

转载 作者:行者123 更新时间:2023-12-02 11:41:45 24 4
gpt4 key购买 nike

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正在运行。

但是尝试使用主机的IP(例如 curl dockerHostIp:8080)访问它失败:
Failed to connect to ipOfDockerHost port 8080: Connection refused

如何将k8s暴露在外面? (docker-host是一个Ubuntu服务器)
据我了解,使用--net = host应该可以解决此问题。但这在这种情况下不起作用。

最佳答案

当您使用docker启动kubernetes时,您可以在以下两种模型之间进行选择:

  • --config=/etc/kubernetes/manifests
  • --config=/etc/kubernetes/manifests-multi

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

    使用 --config=/etc/kubernetes/manifests时,您仅要求本地访问。

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

    注意:
  • 使用--config = / etc / kubernetes / manifests-multi
  • 时,您将需要手动启动etcd
  • 按照this post进行操作,因为Docker支持暂时不起作用
  • 关于docker - 外部访问kubernetes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36005970/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com