【问题标题】:Host service on Minikube with public available TCP connection?Minikube 上具有公共可用 TCP 连接的主机服务?
【发布时间】:2020-04-11 08:51:56
【问题描述】:

我目前正在制作一个游戏,其中服务器需要在 Minikube 集群内的 pod 上复制(我正在使用 Minikube,因为它只是一个学校项目)。但是,我似乎无法弄清楚如何使这些游戏服务器可以从其他网络访问。我已经尝试制作一个 NodePort 服务,它指向我的服务器映像的部署,并且当使用 Minikube 集群 IP + 我的服务端口时,我可以正常连接。

解决此问题的最佳方法是什么?

【问题讨论】:

    标签: docker kubernetes tcp minikube


    【解决方案1】:

    默认情况下,Pod 只能通过其在 Kubernetes 集群中的内部 IP 地址访问。为了使您的容器可以从 Kubernetes 虚拟网络外部访问,您必须将 Pod 公开为 Kubernetes Service,在此示例中为类型 LoadBalancer

    在支持负载平衡器的云提供商上,将配置一个外部 IP 地址来访问服务。在 Minikube 上,LoadBalancer 类型使服务可以通过minikube service 命令访问。

    Minikube 非常适合本地设置,但不适用于真正的集群。它只启动一个用于开发和测试的单节点集群。如果你想使用多服务器环境,它是没有用的。

    考虑到您希望快速实现跨节点的可扩展性,创建 Kubernetes 集群非常有用 - 使用 Kubespray 或 Kubeadm。 如果要运行实际的本地 Kubernetes,请使用本地 VM,然后使用这些工具创建 K8s 集群以进行自动化部署。

    Kubeadm

    kubeadm 工具非常适合云技术新手——第一次运行 k8s 集群。您可以在各种机器上安装和使用kubeadm:您的笔记本电脑、一组云服务器等等。无论您是部署到云端还是本地,您都可以将 kubeadm 集成到 Ansible 或 Terraform 等供应系统中。 Kubeadm 提供 Kubernetes 集群生命周期管理的领域知识,包括自托管布局、动态发现服务等。

    Kubespray

    Kubespray 支持在 AWS、Google Compute Engine、Microsoft Azure、OpenStack 和裸机上进行部署。它支持部署 Kubernetes 高可用集群。它支持variety of Linux distributions 和 CI。 Kubespray 支持kubeadm

    【讨论】:

    • 嗯,我确实通过使用 0.0.0.0: 服务的 NodePort 作为侦听套接字和 Minikube 内部 IP:NodePort 作为连接套接字进行本地端口转发来使其工作。然后,我在路由器中转发了服务的 NodePort,现在我可以使用我的公共 IP 直接连接到它。当然这不是一个完美的解决方案,我必须为每个服务都这样做,如果 Minikube IP 发生变化,我将不得不重做。
    【解决方案2】:

    没有真正的好方法来做到这一点。 Minikube 用于本地开发。如果要运行实际的本地 Kubernetes,请直接启动本地 VM,并使用 kubeadm 和 kubespray 之类的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 2017-05-22
      • 1970-01-01
      • 2022-07-09
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      相关资源
      最近更新 更多