Gcloud Проблема с постоянным томом, на котором запущен образ OracleDB Docker (в разрешении отказано)

Я пытаюсь запустить предприятие Oracle DB (последний OEM-образ из магазина докеров) в gcloud kubernetes. Однако я не могу найти примеров такого запуска, и я новичок, сталкивающийся с множеством ошибок.

с помощью следующего кода развертывания я могу развернуть изображение, но у меня возникает проблема, когда контейнер загружается и пытается настроить базу данных. Я получаю отказ в разрешении из журналов контейнера, когда он пытается настроить параметры базы данных по умолчанию (файловая система u01 и т. д.). Это означает, что контейнер входит в бесконечный цикл загрузки, пытаясь зашить себя. Я могу заставить изображение нормально работать в докере и в качестве развертывания по умолчанию (без постоянного хранилища, т.е. просто развертывать образ как есть), но проблема в том, когда я пытаюсь смонтировать постоянный том хранилища. Как я уже сказал, я полный NOOB, поэтому я просто пытаюсь создать рабочий сценарий из того, что я видел с другими примерами DB yaml. Я понимаю концепции, но не могу заставить скрипты работать. Ниже приведен закомментированный код, который не может работать в gcloud (он проверяет и запускается из kubectl, но gcloud зависает, пытаясь подготовить).

пожалуйста помоги....!


apiVersion: "v1"
kind: "Namespace"
metadata:
  name: "oracle"
---
apiVersion: "extensions/v1beta1"
kind: "Deployment"
metadata:
  name: "oracledb2"
  namespace: "oracle"
  labels:
    app: "oracledb2"
spec:
  replicas: 1
  selector:
    matchLabels:
      app: "oracledb2"
  template:
    metadata:
      labels:
        app: "oracledb2"
    spec:
      containers:
      - name: "oracledb"
        image: "eu.gcr.io/leafy-envelope-212213/oracledb:latest"
        ports:
            - containerPort: 1521
            - containerPort: 5500
        volumeMounts:
            - name: "oracledb2-v"
              mountPath: "/ORCL"
      volumes:
      - name: "oracledb2-v"
        persistentVolumeClaim:
          claimName: "nfs-pvc"      

# apiVersion: v1
# kind: "PersistentVolume"
# metadata:
  # name: "nfs-pv"
  # namespace: "oracle"
  # labels:
    # app: "oracledb2"  
# spec:
  # capacity:
    # storage: "10Gi"
  # accessModes:
    # - "ReadWriteOnce"
  # gcePersistentDisk:
    # pdName: "gce-nfs-disk"
    # fsType: "ext4"
# ---
# apiVersion: v1
# kind: "PersistentVolumeClaim"
# metadata:
  # name: "nfs-pvc"
  # annotations:
    # volume.alpha.kubernetes.io/storage-class: faster
  # namespace: "oracle"
  # labels:
    # app: "oracledb2"
# spec:
  # accessModes:
    # - "ReadWriteOnce"
  # storageClassName: "faster" 
  # resources:
    # requests:
      # storage: "10Gi"
  # selector:
    # matchLabels:
      # app: "oracledb2"
---
kind: "StorageClass"
apiVersion: "storage.k8s.io/v1"
metadata:
  name: "faster"
  namespace: "oracle"
provisioner: "kubernetes.io/gce-pd"
parameters:
  type: "pd-ssd"
  zone: "europe-west1-b"
  fsType: "ext4"
---  
apiVersion: v1
kind: "PersistentVolumeClaim"
metadata:
  name: "nfs-pvc"
  namespace: "oracle"
  labels:
    name: "oracledb2"
  annotations:
    volume.alpha.kubernetes.io/storage-class: faster
spec:
  storageClassName: faster
  accessModes: [ReadWriteOnce]
  resources:
    requests:
      storage: 10Gi
---
apiVersion: "v1"
kind: "Service"
metadata:
  name: "oracledb2-service"
  namespace: "oracle"
  labels:
    app: "oracledb2"
spec:
  ports:
  - name: "1521-to-1521-tcp"
    protocol: "TCP"
    port: 1521
    targetPort: 1521
  - name: "5500-to-5500-tcp"
    protocol: "TCP"
    port: 5500
    targetPort: 5500
  selector:
    app: "oracledb2"
  type: "LoadBalancer"
  loadBalancerIP: ""
---
apiVersion: "autoscaling/v1"
kind: "HorizontalPodAutoscaler"
metadata:
  name: "oracledb2-hpa"
  namespace: "oracle"
  labels:
    app: "oracledb2"
spec:
  scaleTargetRef:
    kind: "Deployment"
    name: "oracledb2"
    apiVersion: "apps/v1beta1"
  minReplicas: 1
  maxReplicas: 5
  targetCPUUtilizationPercentage: 80
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
0
0
179
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам понадобится initContainer:, как описано в этом аналогичный обмен вопросами и ответами, чтобы гарантировать, что каталог NFS принадлежит тому UID, который контейнер использует для oracle. Строго говоря, я на самом деле ожидал, что вам придется сделать это только один раз, но запуск его при запуске Pod ничему не повредит, если вы не используете chown -R, как я (возможно, ошибочно) предложил в этом ответе. . Для тома с несколькими файлами это может быть нормально, но если том заполнится сотнями файлов, это может существенно замедлить запуск вашего модуля.

Отдельно, мне давно не приходилось использовать oracle, но я бы сказал очень осторожно о попытке запустить базу данных на NFS. Этот gce-pd с гораздо большей вероятностью будет вести себя так, как вы хотите, особенно если GCE предлагает подготовленные IOPS, как это делает AWS.

И, наконец, пожалуйста, не используйте Deployment для oracle: вместо этого вам нужен StatefulSet, поскольку идентичность Pod, скорее всего, будет тесно связана с прикрепленной файловой системой при загрузке.

Спасибо, что дал мне много указаний, чтобы попытаться заставить его работать

NexusLOQ 09.08.2018 01:01

Другие вопросы по теме