Error: 0/3 nodes are available: 3 pod has unbound immediate PersistentVolumeClaims

9.7k Views Asked by At

I am deploying a CouchDB cluster on Kubernetes. It worked and I got an error when I tried to scale it.

I try scale my Statefulset and I am getting this error when I desscribe couchdb-3:

0/3 nodes are available: 3 pod has unbound immediate PersistentVolumeClaims.

And this error when I describe hpa:

invalid metrics (1 invalid out of 1), first error is: failed to get cpu utilization: missing request for cpu

failed to get cpu utilization: missing request for cpu

I run "kubectl get pod -o wide" and receive this result:

NAME                   READY   STATUS    RESTARTS       AGE    IP            NODE            NOMINATED NODE   READINESS GATES
couchdb-0              1/1     Running   0              101m   10.244.2.13   node2           <none>           <none>
couchdb-1              1/1     Running   0              101m   10.244.2.14   node2           <none>           <none>
couchdb-2              1/1     Running   0              100m   10.244.2.15   node2           <none>           <none>
couchdb-3              0/1     Pending   0              15m    <none>        <none>          <none>           <none>

How can I fix it !?

  • Kubernetes Version: 1.22.4
  • Docker Version 20.10.11, build dea9396
  • Ubuntu 20.04

My hpa file:

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: hpa-couchdb
spec:
  maxReplicas: 16
  minReplicas: 6
  scaleTargetRef:
    apiVersion: apps/v1
    kind: StatefulSet
    name: couchdb
  targetCPUUtilizationPercentage: 50

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"

I set nfs in /etc/exports: /var/couchnfs 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)

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
        imagePullPolicy: "Always"
        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: b1709267
        - name: ERL_FLAGS
          value: "-name couchdb@$(NODENAME)"
        - name: ERL_FLAGS
          value: "-setcookie b1709267" #   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
0

There are 0 best solutions below