gpt4 book ai didi

docker - 如何使用辅助节点的静态外部IPv4-地址将Kubernetes部署公开为服务?

转载 作者:行者123 更新时间:2023-12-02 12:15:44 25 4
gpt4 key购买 nike

我已经在自定义的OpenStack平台上设置了Kubernetes集群,但没有任何管理访问权限。只能创建实例并将防火墙规则分配给它们。每个新实例将由一个静态的外部IPv4地址自动提供,该地址可以全局访问。这意味着,我什至无法创建到内部网络的OpenStack路由器。

到目前为止,到目前为止,我已经使用 kubeadm CoreDNSflanel作为 CNI 设置了Kubernetes集群。群集硬件设置如下:

  • Kubernetes-客户端和服务器版本:1.14.3 linux / amd64
  • 所有服务器都在Fedora Cloud Base 28上运行
  • 1 Kubernetes主站
  • 5个工作节点
  • 6个静态外部IPv4地址(每个节点一个)

    设置完成后,我使用deployment -files部署了所需的服务。一切正常。

    现在的问题是,如何使服务可以从外部访问?由于我没有OpenStack提供的LoadBalancer?最好的方法是什么?

    在询问了四个小时的谷歌搜索时间后,我问了这个问题(也许我对此很不好)。我尝试了从Documentation提出的建议方法,但是对于我来说,对于任务的概念和正确方法是什么,我仍然一无所知。

    例如,我尝试通过使用例如为服务分配外部IP

    kubectl expose deployment $DEPLOYMENT_NAME \
    --name=$SERVICE_NAME \
    --port=$HOST_PORT \
    --target-port=$TARGET_PORT \
    --type=NodePort

    或这个

    kubectl patch service $SERVICE_NAME -p '{"spec":{"externalIPs":["<worker_host_ip>"]}}'

    即使现在已分配了外部IP,到我的目标服务的路由仍然无法正确路由,因为正如我所知道的那样,Kubernetes会自动将主机和随机端口分配给Pod(这是所需的行为),但是请注意,每次重新部署都可能使分配的IP到服务映射崩溃。

    在您的帮助下,大声“谢谢!”预先,我希望我可以将容器的应用程序端口分配给其中一台主机的静态IPv4,并且Kubernetes会自动知道,即使Pod运行在特定的IP上,部署的服务也将通过该特定IP进行路由。不同的 worker 。

  • 最佳答案

    经过一段时间的研究,我偶然发现了针对Kubernetes的裸机负载平衡解决方案的MetalLB实现。
    这帮助我解决了上述问题。
    但是,从我的 Angular 来看,MetalLB应该仅是最后一次机会,因为它尚不具备生产准备,并且需要使用NGINX Ingress Controller解决方案进行过多配置才能正确映射集群的IPv4分布。

    无论如何,非常感谢上述先生,他们愿意支持我并提供建议!

    关于docker - 如何使用辅助节点的静态外部IPv4-地址将Kubernetes部署公开为服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56690471/

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