在本地部署在minikube上
我已经通过minikube
直接通过minikube
-files部署和创build了socketcluster
, scc-broker
和scc-state
服务(请参阅.yaml
文件的链接 )。 而且我还在同一个集群中创build了一个ingress
服务,其中提到的链接中提供了.yaml
文件。 据我了解默认这些服务是ClusterIP
types。
服务的部署在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: LoadBalancer
的Service
来获取连接到云服务的公共IP。 这在minikube上不可用 - 使用
type: NodePort
的Service
在每个节点的公共networking上公开一个端口。 这是build议在minikube上执行的方法( https://github.com/kubernetes/minikube#networking ) - 使用
hostNetwork: true
创build您的PodhostNetwork: 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: LoadBalancer
的Service
或type: NodePort
将其暴露给外部networking。
如果您按照minikube文档https://github.com/kubernetes/minikube#quickstart ,它会告诉您创build一个type: NodePort
的Service
。
然后运行kubectl get services
,为您的服务查找分配的IP地址,并使用minikube ip
查找minikube虚拟机的IP地址。 然后把这两个一起,并从您的笔记本电脑访问服务。