在 Kubernetes 中,可以通过 Service 来实现不同命名空间的资源通信。具体步骤如下:
apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: my-namespace
spec:
selector:
app: my-app # 指定要暴露的资源Selector
ports:
- name: http
port: 80
targetPort: 8080 # 指定资源暴露的端口
apiVersion: v1
kind: Endpoints
metadata:
name: my-service
namespace: other-namespace
subsets:
- addresses:
- ip: 10.0.0.1 # 指定资源 IP 地址
ports:
- name: http
port: 80
protocol: TCP
需要注意的是,不同命名空间的资源访问时需要使用全称,即
,例如,在 other-namespace 命名空间访问 my-service 时,应该使用 my-service.my-namespace.svc.cluster.local
。