Развертывание кластера CouchDB в Kubernetes

#kubernetes #couchdb #kubernetes-statefulset

#кубернетес #couchdb #kubernetes-набор состояний

Вопрос:

Я развертываю кластер CouchDB в Kubernetes, и при настройке этого кластера я получаю ошибку.

  • Версия Kubernetes: 1.22.4
  • Докер версии 20.10.11, сборка dea9396
  • Ubuntu 20.04

Когда я запускаю « kubectl exec couchdb-0 -i -t -- bash » и « curl -X POST -H "Content-Type: application/json" http://admin:admin@127.0.0.1:5984/_cluster_setup -d '{"action": "enable_cluster", "bind_address":"0.0.0.0", "username": "admin", "password":"admin", "node_count":"3"}' » для настройки кластера…

Я получаю эту ошибку « curl: (7) Failed to connect to 127.0.0.1 port 5984: Connection refused »

Я думаю, что CouchDB все еще не установлен успешно. Когда я проверю это с помощью команды « curl http://127.0.0.1:5984/ «. Это показывает ошибку « curl: (7) Failed to connect to 127.0.0.1 port 5984: Connection refused »

Как я могу это исправить !?

Это «pv.yaml».

 ---  apiVersion: v1  kind: PersistentVolume  metadata:  name: couch-vol-0  labels:  volume: couch-volume  spec:  capacity:  storage: 10Gi  accessModes:  - ReadWriteOnce  nfs:  server: 192.168.1.100  path: "/var/couchnfs/couchdb-0"  ---  apiVersion: v1  kind: PersistentVolume  metadata:  name: couch-vol-1  labels:  volume: couch-volume  spec:  capacity:  storage: 10Gi  accessModes:  - ReadWriteOnce  nfs:  server: 192.168.1.100  path: "/var/couchnfs/couchdb-1"  ---  apiVersion: v1  kind: PersistentVolume  metadata:  name: couch-vol-2  labels:  volume: couch-volume  spec:  capacity:  storage: 10Gi  accessModes:  - ReadWriteOnce  nfs:  server: 192.168.1.100  path: "/var/couchnfs/couchdb-2"  

Это «couchdb-statefulset.yaml»

 --- apiVersion: apps/v1 kind: StatefulSet metadata:  name: couchdb  labels:  app: couch spec:  replicas: 3  serviceName: "couch-service"  selector:  matchLabels:  app: couch  template:  metadata:  labels:  app: couch # pod label  spec:  containers:  - name: couchdb  image: couchdb:2.3.1  command: [ "/bin/bash", "-ce", "tail -f /dev/null" ]  env:  - name: NODE_NETBIOS_NAME  valueFrom:  fieldRef:  fieldPath: metadata.name  - name: NODENAME  value: $(NODE_NETBIOS_NAME).couch-service # FQDN in vm.args  - name: COUCHDB_USER  value: admin  - name: COUCHDB_PASSWORD  value: admin  - name: COUCHDB_SECRET  value: couchsecret  - name: ERL_FLAGS  value: "-name couchdb@$(NODENAME)"  - name: ERL_FLAGS  value: "-setcookie couchsecret" # the “password” used when nodes connect to each other.  ports:  - name: couchdb  containerPort: 5984  - name: epmd  containerPort: 4369  - containerPort: 9100  volumeMounts:  - name: couch-pvc  mountPath: /opt/couchdb/data  volumeClaimTemplates:  - metadata:  name: couch-pvc  spec:  accessModes: ["ReadWriteOnce"]  resources:  requests:  storage: 10Gi  selector:  matchLabels:  volume: couch-volume  

Это «сервис.yaml».

 --- apiVersion: v1 kind: Service metadata:  name: couch-service  namespace: default  labels:  app: couch spec:  type: ClusterIP  clusterIP: None  ports:  - port: 5984  protocol: TCP  targetPort: 5984  selector:  app: couch # label selector --- kind: Service apiVersion: v1 metadata:  name: couch-nodep-svc   labels:  app: couch spec:  type: NodePort # NodePort service  ports:  - port: 5984  nodePort: 30984 # external port  protocol: TCP  selector:  app: couch # label selector  

Комментарии:

1. command: [ "/bin/bash", "-ce", "tail -f /dev/null" ] — это означает запуск tail -f /dev/null от имени команды вместо запуска couchdb.

2. Мой модуль получит ошибку «CrashLoopBackOff» без этой строки. Так как же мне это исправить?!

3. Проверьте describe выходные данные модуля и журналы модуля, чтобы выяснить, почему происходит сбой цикла.