将外部http负载均衡器映射到Kubernetes Cluster

时间:2016-04-12 06:30:26

标签: google-cloud-platform kubernetes

我在Google Cloud上创建了我的第一个Kubernetes群集

gcloud config set compute/zone europe-west1-c
gcloud config set compute/region europe-west1
gcloud container clusters create ___-cluster --num-nodes 1 --machine-type n1-standard-1

开始使用多个广告连播:

kubectl run ___-wui --image=eu.gcr.io/____________/___-wui:latest --port=80
kubectl run rabbitmq --image=eu.gcr.io/____________/rabbitmq:latest --port=15672

使用kubectl get pods我可以看到两个pod正在运行

NAME             READY     STATUS    RESTARTS   AGE
___-wui-ihggr    1/1       Running   0          1h
rabbitmq-fzt4q   1/1       Running   0          4m

现在我公开这两个豆荚:

kubectl expose rc ___-wui --type="LoadBalancer"
kubectl expose rc rabbitmq --type="LoadBalancer"

使用kubectl cluster-info我可以看到信息中心的网址,我可以从那里访问这两个应用程序。

查看网络负载平衡部分,我可以看到我的两个应用程序都有自己的IP地址。

我现在想要做的是将我的域上的这些网址映射到这些应用,例如在端口80上:

http://example.com/rabbitmq -> rabbitmqapp
http://example.com/___-wui -> wui-app 

我将如何实现这一目标?我唯一的经验是将URL映射到实例组,我在Kubernetes中没有看到。

1 个答案:

答案 0 :(得分:4)

您可以通过创建Ingress http://kubernetes.io/docs/user-guide/ingress/来实现此目的。应该已经在kube系统中运行了l7控制器。

绊倒用户的一些常见警告是: 1.配额
2.防火墙规则
3.健康检查

这些记录在此处:https://github.com/kubernetes/contrib/blob/master/ingress/controllers/gce/BETA_LIMITATIONS.md

如果您只想在不使用GCE配额的情况下熟悉Ingress资源,也可以调低GCE ingress controller并部署nginx contorller