我在GKE中名为数据库的名称空间之一中有多个数据库,并尝试从服务名称空间容器连接到数据库名称空间。服务名称空间中的微服务中的数据库连接失败。如果我将相同的微服务Pod移至数据库名称空间,则连接将正常进行。不确定在同一群集中的名称空间之间发生了什么网络问题。
我能够从服务名称空间ping数据库名称空间中的所有Pod,但是连接失败,主要是我看到基于套接字连接的数据库连接池无法连接。任何帮助都会很棒。
从1.15升级到最新的GKE K8s版本-1.16.10-gke.8后,这种情况开始发生。*
我甚至添加了网络策略,以允许所有进入数据库名称空间的操作。
apiVersion: v1
kind: Service
metadata:
name: order
namespace: devservice
labels:
app: order
spec:
ports:
- port: 3000
name: http
selector:
app: order
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: order-v1
namespace: devservice
labels:
app: order
version: v1
spec:
replicas: 1
selector:
matchLabels:
app: order
version: v1
template:
metadata:
labels:
app: order
version: v1
spec:
nodeSelector:
cloud.google.com/gke-nodepool: pool-b
containers:
- name: order
image: docker/imageforservertorunnodeservices
imagePullPolicy: Always
ports:
- containerPort: 3000
initContainers:
- name: install
image: docker/imagefornodenpm
volumes:
- name: workdir
emptyDir: {}
imagePullSecrets:
- name: prod-key
---