1

Ich benutze Helm mit Kubernetes auf Google Cloud-Plattform.SchedulerPredicates fehlgeschlagen aufgrund PersistentVolumeClaim ist nicht gebunden

bekomme ich folgende Fehler für meine Postgres Einsatz:

SchedulerPredicates failed due to PersistentVolumeClaim is not bound

es sieht aus wie es auf den persistenten Speicher verbinden kann nicht, aber ich verstehe nicht, warum, weil die persistenten Speicher fein geladen.

Ich habe versucht, die Helm Release komplett zu löschen, dann auf Google-Cloud-Konsole> compute-engine> Festplatten; Ich habe alle persistente Festplatte gelöscht. und schließlich versucht, aus dem Helm Diagramm zu installieren, aber die Postgres-Bereitstellung noch keine Verbindung zum PVC.

meine Datenbank-Konfiguration:

{{- $serviceName := "db-service" -}} 
{{- $deploymentName := "db-deployment" -}} 
{{- $pvcName := "db-disk-claim" -}} 
{{- $pvName := "db-disk" -}} 

apiVersion: v1 
kind: Service 
metadata: 
    name: {{ $serviceName }} 
    labels: 
    name: {{ $serviceName }} 
    env: production 
spec: 
    type: LoadBalancer 
    ports: 
    - port: 5432 
    targetPort: 5432 
    protocol: TCP 
    name: http 
    selector: 
    name: {{ $deploymentName }} 

--- 

apiVersion: apps/v1beta1 
kind: Deployment 
metadata: 
    name: {{ $deploymentName }} 
    labels: 
    name: {{ $deploymentName }} 
    env: production 
spec: 
    replicas: 1 
    template: 
    metadata: 
     labels: 
     name: {{ $deploymentName }} 
     env: production 
    spec: 
     containers: 
     - name: postgres-database 
     image: postgres:alpine 
     imagePullPolicy: Always 
     env: 
     - name: POSTGRES_USER 
      value: test-user 
     - name: POSTGRES_PASSWORD 
      value: test-password 
     - name: POSTGRES_DB 
      value: test_db 
     - name: PGDATA 
      value: /var/lib/postgresql/data/pgdata 
     ports: 
     - containerPort: 5432 
     volumeMounts: 
     - mountPath: "/var/lib/postgresql/data/pgdata" 
      name: {{ $pvcName }} 
     volumes: 
     - name: {{ $pvcName }} 
     persistentVolumeClaim: 
      claimName: {{ $pvcName }} 

--- 

apiVersion: v1 
kind: PersistentVolumeClaim 
metadata: 
    name: {{ $pvcName }} 
spec: 
    accessModes: 
    - ReadWriteOnce 
    resources: 
    requests: 
     storage: 1Gi 
    selector: 
    matchLabels: 
     name: {{ $pvName }} 
     env: production 

--- 

apiVersion: v1 
kind: PersistentVolume 
metadata: 
    name: {{ .Values.gcePersistentDisk }} 
    labels: 
    name: {{ $pvName }} 
    env: production 
    annotations: 
    volume.beta.kubernetes.io/mount-options: "discard" 
spec: 
    capacity: 
    storage: 10Gi 
    accessModes: 
    - ReadWriteOnce 
    gcePersistentDisk: 
    fsType: "ext4" 
    pdName: {{ .Values.gcePersistentDisk }} 

ist diese Konfiguration für kubenetes richtig? Ich habe die Dokumentation gelesen und es sieht so aus als ob das funktionieren sollte. Ich bin neu zu Kubernetes und Helm, also wird jeder Rat geschätzt.


EDIT:

i ein PersistentVolume hinzugefügt haben und verknüpft es mit dem PersistentVolumeClaim, um zu sehen, ob das hilft, aber es scheint, dass, wenn ich dies tun, die PersistentVolumeClaim Status in „pending“ stecken bleibt (was in derselben Ausgabe wie zuvor).

+0

Wenn Sie 'kubectl erhalten pv' vor der PersistentVolumeClaim erstellt wird, zeigt die PersistentVolume verfügbar? – oe18

+0

Ich erstelle keine PV ... nur ein PVC. 'kubectl get pv' gibt' No resources found' aus. Das gleiche gilt für "kubectl get pvc" (weil ich die gesamte Version gelöscht habe). Aber wenn ich ein neues Release erstelle, wird die Postgres-Bereitstellung fehlschlagen, weil sie keine Verbindung zum PVC herstellen kann. – X0r0N

Antwort

0

Sie haben keinen gebundenen PV für diesen Anspruch. Welchen Speicher verwenden Sie für diesen Anspruch? Sie müssen es in der PVC-Datei erwähnen

+0

Wenn ich ein persistentes Volume hinzufüge, bleibt der PersistentVolumeClaim mit dem Status "ausstehend" hängen. Dies führt auch dazu, dass derselbe Fehler angezeigt wird. Ich habe den Hauptbeitrag aktualisiert, um meine Konfiguration anzuzeigen. – X0r0N

Verwandte Themen