#mongodb #kubernetes
Вопрос:
Вот моя конфигурация YAML (все PV, набор состояний и служба создаются нормально, без проблем). Попробовал кучу решений для строки подключения Kubernetes mongo, но ничего не вышло.
Версия Kubernetes (мини-куб): 1.20.1
Хранилище для конфигурации: NFS (работает нормально, протестировано)
ОС: Linux Mint 20
КОНФИГУРАЦИЯ YAML:
apiVersion: v1
kind: PersistentVolume
metadata:
name: auth-pv
spec:
capacity:
storage: 250Mi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: manual
nfs:
path: /nfs/auth
server: 192.168.10.104
---
apiVersion: v1
kind: Service
metadata:
name: mongo
labels:
name: mongo
spec:
ports:
- port: 27017
targetPort: 27017
selector:
role: mongo
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mongo
spec:
selector:
matchLabels:
app: mongo
serviceName: mongo
replicas: 1
template:
metadata:
labels:
app: mongo
spec:
terminationGracePeriodSeconds: 10
containers:
- name: mongo
image: mongo
ports:
- containerPort: 27017
volumeMounts:
- name: mongo-persistent-storage
mountPath: /data/db
volumeClaimTemplates:
- metadata:
name: mongo-persistent-storage
spec:
storageClassName: manual
accessModes: ["ReadWriteMany"]
resources:
requests:
storage: 250Mi
Комментарии:
1. Алеади попробовал mongodb://<имя_службы>:27017 =<имя_службы>> не работает
Ответ №1:
Я обнаружил несколько проблем в вашем файле конфигурации. В файле манифеста службы, который вы используете
selector:
role: mongo
Но в вашем шаблоне модуля с полным набором состояний, который вы используете
labels:
app: mongo
Еще одна вещь, которую вы должны использовать ClusterIP:None
, чтобы использовать безголовую службу, которая рекомендуется для набора состояний, если вы хотите получить доступ к базе данных с помощью dns-имени.
Комментарии:
1. Спасибо пулаку, я постараюсь дать вам знать.
Ответ №2:
Для всех зрителей рабочий YAML находится ниже
right connection string is: mongodb://mongo:27017/<dbname>
apiVersion: v1
kind: PersistentVolume
metadata:
name: auth-pv
spec:
capacity:
storage: 250Mi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: manual
nfs:
path: /nfs/auth
server: 192.168.10.104
---
apiVersion: v1
kind: Service
metadata:
name: mongo
labels:
name: mongo
spec:
ports:
- port: 27017
targetPort: 27017
selector:
app: mongo
clusterIP: None
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mongo
spec:
selector:
matchLabels:
app: mongo
serviceName: mongo
replicas: 1
template:
metadata:
labels:
app: mongo
spec:
terminationGracePeriodSeconds: 10
containers:
- name: mongo
image: mongo
ports:
- containerPort: 27017
volumeMounts:
- name: mongo-persistent-storage
mountPath: /data/db
volumeClaimTemplates:
- metadata:
name: mongo-persistent-storage
spec:
storageClassName: manual
accessModes: ["ReadWriteMany"]
resources:
requests:
storage: 250Mi