要在GKE中为不同命名空间中运行的服务设置路由基础入口,您可以使用Kubernetes Ingress对象和Ingress Controller来实现。
以下是一个示例解决方案,其中假设您已经在GKE集群上安装了一个Ingress Controller(如Nginx Ingress Controller):
apiVersion: v1
kind: Namespace
metadata:
name: my-namespace
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-service
namespace: my-namespace
spec:
replicas: 2
selector:
matchLabels:
app: my-service
template:
metadata:
labels:
app: my-service
spec:
containers:
- name: my-service
image: my-service:latest
ports:
- containerPort: 8080
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
namespace: my-namespace
spec:
rules:
- host: mydomain.com
http:
paths:
- path: /my-service
pathType: Prefix
backend:
service:
name: my-service
port:
number: 8080
在这个示例中,Ingress对象将所有来自mydomain.com/my-service
路径的请求转发到my-service
服务的8080端口。
kubectl apply -f ingress.yaml
kubectl get ingress -n my-namespace
请注意,这只是一个示例解决方案,您可能需要根据自己的需求进行调整。