我目前正在制作一个游戏,其中的服务器需要在Minikube集群内的Pod上复制(我正在使用Minikube,因为它只是一个学校项目)。但是,我似乎无法弄清楚如何使这些游戏服务器可从其他网络访问。我曾尝试制作一个NodePort服务,该服务指向服务器映像的部署,并且当使用Minikube群集IP +服务的端口时,我可以正常连接。
解决此问题的最佳方法是什么?
答案 0 :(得分:1)
默认情况下,只能通过Kubernetes集群中的内部IP地址访问Pod。为了使您的容器可以从Kubernetes虚拟网络外部访问,您必须在此示例中将Pod公开为Kubernetes Service,类型为LoadBalancer。
在支持负载平衡器的云提供商上,将提供一个外部IP地址来访问服务。在Minikube上,通过LoadBalancer
命令可以访问minikube service
类型的服务。
Minikube 非常适合本地设置,但不适用于实际集群。它仅启动一个单节点群集进行开发和测试。如果要使用多服务器环境,则没有用。
考虑到您想在节点之间快速地使用可伸缩性,使用Kubespray或Kubeadm创建Kubernetes集群非常有用。 如果要运行实际的本地Kubernetes,请使用本地VM,然后使用这些工具创建K8s集群以进行自动部署。
库贝姆
如果您是第一次使用云技术-运行k8s集群,那么kubeadm
工具会很好。您可以在各种计算机上安装和使用kubeadm
:便携式计算机,一组云服务器等等。无论是部署到云中还是本地,您都可以将kubeadm
集成到诸如Ansible或Terraform之类的资源调配系统中。
Kubeadm提供了Kubernetes集群生命周期管理的领域知识,包括自托管布局,动态发现服务等。
Kubespray
Kubespray支持在AWS,Google Compute Engine,Microsoft Azure,OpenStack和裸机上的部署。它可以部署Kubernetes高可用性集群。它支持variety of Linux distributions和CI。 Kubespray支持kubeadm
。
答案 1 :(得分:0)
没有一个真正好的方法来做到这一点。 Minikube用于本地开发。如果要运行实际的本地Kubernetes,请直接启动本地VM,并使用诸如kubeadm和kubespray之类的东西。