我有一个交付的应用程序,其中一个 URL 是硬编码的“upload.mydomain.io:123123/myRoute”。
此 DNS 指向 NGINX 将流量分配给服务的 VM。
现在我需要在虚拟机前面放置一个高度可扩展的服务,而不能更改硬编码的 URL。到目前为止我已经尝试过:
作为 DNS 分发器,我使用 Cloudflare,我还尝试使用 Page Rules 做一些事情。
功能 -> 在欧盟没有域名
云运行 -> 仅端口 80
App Engine -> 仅端口 8080
Kubernetes Ingress -> 我可以打开我的域,也可以将端口作为服务端口,但是在 URL 中端口消失了
这是我的 Kubernetes list :
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: myApp-api
name: myApp-api
spec:
replicas: 3
strategy:
type: Recreate
template:
metadata:
creationTimestamp: null
labels:
app: myApp-api
spec:
containers:
- name: myApp-api
env:
- name: NODE_ENV
value: production
image: eu.gcr.io/myApp-123/myApp-api:latest
imagePullPolicy: Always
ports:
- containerPort: 21337
restartPolicy: Always
status: {}
---
apiVersion: v1
kind: Service
metadata:
labels:
app: myApp-api-service
name: myApp-api-service
spec:
ports:
- name: myApp-api-port
port: 21337
targetPort: 21337
selector:
app: myApp-api
type: LoadBalancer
status:
loadBalancer: {}
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: myApp-api-ingress
spec:
tls:
- hosts:
- upload.myDomain.io
secretName: tls-secret
rules:
- host: upload.myDomain.io
http:
paths:
- path: /*
backend:
serviceName: myApp-api-service
servicePort: myApp-api-port
是否有可能通过某种服务以某种方式创建这条路线?
最佳答案
您可以使用 Loadbalancer 类型的 Kubernetes 服务来实现相同的目的。
例如
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: MyApp
ports:
- protocol: TCP
port: 123123
targetPort: 8000
引用:https://cloud.google.com/kubernetes-engine/docs/concepts/service &
https://kubernetes.io/docs/concepts/services-networking/#loadbalancer
关于kubernetes - 在具有固定域和端口的 GKE 中运行可扩展服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57741402/