启用Minihube入口附加组件的外部IP分配

时间:2017-11-27 00:10:02

标签: kubernetes minikube

出于开发目的,我尝试使用Minikube。我想测试我的应用程序如何捕获暴露服务和分配外部IP的事件。 当我在Google容器引擎快速入门教程中公开服务时,我可以看到外部IP分配事件: kubectl get services --watch

我想用Minikube实现同样的目标(如果可能的话)。

以下是我尝试在OSX开发机器上本地设置的方法:

minikube start --vm-driver=xhyve
minikube addons enable ingress
kubectl run echoserver --image=gcr.io/google_containers/echoserver:1.4 --port=8080
kubectl expose deployment echoserver --type="LoadBalancer"
kubectl get services --watch

我看到以下输出:

NAME         TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)          AGE
echoserver   LoadBalancer   10.0.0.138   <pending>     8080:31384/TCP   11s
kubernetes   ClusterIP      10.0.0.1     <none>        443/TCP          4m

外部-Ip字段永远不会更新,并显示待处理阶段。是否可以使用Minikube实现外部IP分配?

2 个答案:

答案 0 :(得分:1)

在GKE或AWS安装上,外部IP来自云支持,该支持向kube API报告创建的LB已分配的地址。

要在minikube上使用相同的,你必须运行某种LB控制器,即。 haproxy一个,但老实说,对于minikube它没有多大意义,因为你有{1}}提前知道的单个IP,所以你可以使用具有该知识的NodePort。 LB解决方案需要设置一些可以映射到特定节点端口的IP范围,因为这实际上是LB将要做的事情 - 从extIP获取流量:extPort并将其代理到minikubeIP:NodePort。

除非您的使用案例阻止您,否则您应该将Ingress视为摄取迷你管道流量的方式。

答案 1 :(得分:0)

如果您想模拟外部IP分配事件(就像您可以使用GKE或AWS观察到的那样),可以通过在沙盒kubernetes上应用以下补丁来实现:

kubectl run minikube-lb-patch --replicas=1 --image=elsonrodriguez/minikube-lb-patch:0.1 --namespace=kube-system

https://github.com/elsonrodriguez/minikube-lb-patch#assigning-external-ips