我在想如何创建多个共享IP的入口资源。 或者,如果这是不可能的,我想知道是否有某种转发 规则我可以使用与云DNS项目,确保所有流量 IP(我可以使静态)去到一个kubernetes集群。设置多个入口,服务,部署资源和云端DNS
基本上我想设置一个入口,每个服务包含一个或多个子域,并且所有这些入口指向同一个群集。现在 我得到一个不同的短暂的IP与每个入口。我可以创建一些转发 规则,指向一个静态IP的所有流量转到群集,然后 创建一个通配符DNS条目,将所有子域指向静态IP?
下面是类似我使用的是什么比如说配置:
apiVersion: v1
kind: Service
metadata:
name: api-service
labels:
name: api-service
spec:
type: NodePort
ports:
- port: 80
targetPort: 3000
protocol: TCP
selector:
name: api-deployment
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: api-deployment
labels:
name: api-deployment
spec:
template:
metadata:
labels:
name: api
spec:
containers:
- image: us.gcr.io/[project]/hello-world:1.0.0
name: api
ports:
- containerPort: 3000
env:
- name: NAME
value: api
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: api-ingress
spec:
backend:
serviceName: api-service
servicePort: 80
rules:
- host: api.example.com
http:
paths:
- backend:
serviceName: api-service
servicePort: 80
我一个KUBE群集上创建这些资源,像这样:
$ kubectl create -f api.yml
再看到像这样创建的入口:
$ kubectl get ing
NAME RULE BACKEND ADDRESS AGE
api-ingress - api-service:80 130.211.32.223 1h
api.example.com
api-service:80
现在,想象你复制上面的yaml并更改服务,部署a nd 将入口名称添加到api-2并创建它们。你想最终是这样的:
$ kubectl get ing
NAME RULE BACKEND ADDRESS AGE
api-ingress - api-service:80 130.211.32.223 1h
api.example.com
api-service:80
api-2-ingress - api-2-service:80 130.211.22.214 1h
api-2.example.com
api-2-service:80
这很好......但我需要确保所有流量* .example.com的进入到 集群,入节点可以做他们的魔法和路由请求权 服务。
我知道我可以创建一个入口资源并修补该入口,而不是创建一个新入口,但我试图避免这种情况,并希望能够为每个服务创建一个。
这是可能以某种方式?
相关:https://github.com/kubernetes/kubernetes/issues/26935
如果静态IP解决了您的问题,只保留您的项目地址。 https://cloud.google.com/sdk/gcloud/reference/compute/addresses/create –
@VikramTiwari你的意思是采用入口使用的那些短暂的IP之一,对吧?如果是这样,问题是我将继续添加具有不同IP的入口,并且这些入口不会与* .example.com通配符DNS记录相关联。或者我错过了什么? – luisgo
一旦拥有静态IP,您就可以在集群的负载平衡器上使用它,并因此保持产生新的入口并将其添加到负载均衡器。 http://stackoverflow.com/questions/32266053/how-to-specify-static-ip-address-for-kubernetes-load-balancer –