我在想如何創建多個共享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 –