在本地部署在minikube上

我已经通过minikube直接通过minikube -files部署和创build了socketclusterscc-brokerscc-state服务(请参阅.yaml文件的链接 )。 而且我还在同一个集群中创build了一个ingress服务,其中提到的链接中提供了.yaml文件。 据我了解默认这些服务是ClusterIPtypes。

服务的部署在vm(minikube)上正常工作。 状态设置为在Kubernetes仪表板上运行

  • 部署

但是我面临的问题是没有从scc-state,scc-broker,socketcluster服务器暴露的公共端点。 所以目前我无法理解如何访问外部服务,即在虚拟机之外(在minikube上运行)。

图像是直接从kubernetes yml文件构build的,入口TLS安全性被禁用。

我是否错过了如何访问主机上的socketcluster? 我应该指定服务types为除ClusterIP以外的任何其他types,因为我知道使用此types可确保该服务仅在群集内暴露。 但是我的疑惑是,如果我使用ingress ,它应该有助于访问虚拟机之外的服务。 我是否需要单独配备ingress controller例如NGINX?

任何主angular都会很感激。

谢谢!

PS按照本指南进行部署。

Kubernetes除非您明确告诉它,否则不会在私有集装箱networking之外暴露任何东西。 通常的做法是

  • 使用type: LoadBalancerService来获取连接到云服务的公共IP。 这在minikube上不可用
  • 使用type: NodePortService在每个节点的公共networking上公开一个端口。 这是build议在minikube上执行的方法( https://github.com/kubernetes/minikube#networking
  • 使用hostNetwork: true创build您的Pod hostNetwork: true跳过容器networking并使用主机networking(例如与节点本身共享相同的IP)。 除了非常特殊的情况之外,这通常比前两个选项有用。

Ingress资源与外部连接无关。 如果部署了入口控制器,它将使用您创build的Ingress资源来configuration自身。 例如,nginx-ingress-controller( https://github.com/kubernetes/ingress/tree/master/controllers/nginx )实际上将为每个Ingress在nginxconfiguration中创build一个server块。 但是,入口控制器本身仍然需要使用type: LoadBalancerServicetype: NodePort将其暴露给外部networking。

如果您按照minikube文档https://github.com/kubernetes/minikube#quickstart ,它会告诉您创build一个type: NodePortService

然后运行kubectl get services ,为您的服务查找分配的IP地址,并使用minikube ip查找minikube虚拟机的IP地址。 然后把这两个一起,并从您的笔记本电脑访问服务。