我使用Bitnami的Helm图表在我的K8s集群上安装了3副本的MongoDB副本集。
这样我就得到了以下这些Pod:
mongodb-0.mongodb-headless.mongodb.svc.cluster.local:27017
mongodb-1.mongodb-headless.mongodb.svc.cluster.local:27017
mongodb-2.mongodb-headless.mongodb.svc.cluster.local:27017
现在我想使用Mongodb Compass获取访问权限。 我设置了端口转发(在27017上运行本地mongodb)。
kubectl port-forward svc/mongodb-headless -n mongodb 27018:27017
并尝试将指南针与URI连接
mongodb://localhost:27018
但是这会导致我出现错误
getaddrinfo ENOTFOUND mongodb-0.mongodb-headless.mongodb.svc.cluster.local
我在使用Compass连接我的k8s集群的mongodb时出了什么问题?
更新
% kubectl get all -n mongodb
NAME READY STATUS RESTARTS AGE
pod/mongodb-0 1/1 Running 0 25h
pod/mongodb-1 1/1 Running 0 25h
pod/mongodb-2 1/1 Running 0 25h
pod/mongodb-arbiter-0 1/1 Running 0 2d14h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/mongodb-arbiter-headless ClusterIP None <none> 27017/TCP 2d14h
service/mongodb-headless ClusterIP None <none> 27017/TCP 2d14h
NAME READY AGE
statefulset.apps/mongodb 3/3 2d14h
statefulset.apps/mongodb-arbiter 1/1 2d14h
Bitnami Helm Chart 的 values.yaml
image:
registry: docker.io
repository: bitnami/mongodb
digest: "sha256:916202d7af766dd88c2fff63bf711162c9d708ac7a3ffccd2aa812e3f03ae209" # tag: 4.4.15
pullPolicy: IfNotPresent
architecture: replicaset
replicaCount: 2
updateStrategy:
type: RollingUpdate
containerPorts:
mongodb: 27017
auth:
enabled: true
rootUser: root
rootPassword: "password"
usernames: ["user"]
passwords: ["userpass"]
databases: ["db"]
service:
portName: mongodb
ports:
mongodb: 27017
persistence:
enabled: true
accessModes:
- ReadWriteOnce
size: 8Gi
volumePermissions:
enabled: true
livenessProbe:
enabled: false
readinessProbe:
enabled: false
kubectl get all
此外,展示svc YAML也是有用的。 - Konstantin Vustin