【发布时间】:2021-11-10 06:08:49
【问题描述】:
如何在 Kubernetes 中跨 pod 进行跨命名空间通信?假设 webserver & application pod 位于命名空间 A 中,DB 位于命名空间 B 中。我也创建了外部名称,但仍然无法正常工作。
我们可以在 deployments.yaml 中有多个选择器
frontend-service
apiVersion: v1
kind: Service
metadata:
name: mongo-express-service
namespace: db
spec:
type: NodePort
selector:
app: mongo-express
ports:
- protocol: TCP
port: 8081
targetPort: 8081
DB-service.yaml
apiVersion: v1
kind: Service
metadata:
name: mongodb-service
namespace: db
spec:
type: ExternalName
externalName: mongo-express-service.frontend.svc.cluster.local
selector:
app: mongodb
ports:
- protocol: TCP
port: 27017
targetPort: 27017
$ kubectl get svc -n db
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mongo-express-service NodePort 10.103.8.140 <none> 8081:32468/TCP 5h20m
mongodb-service ExternalName <none> mongo-express-service.frontend.svc.cluster.local 27017/TCP 5h19m
$ kubectl get svc -n frontend
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mongo-express-service NodePort 10.102.174.70 <none> 8081:30928/TCP 5h20m
【问题讨论】:
标签: kubernetes amazon-eks kubernetes-networkpolicy