Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database gcloud问题,永久卷运行OracleDB Docker映像(权限被拒绝)_Database_Oracle_Kubernetes_Yaml_Gcloud - Fatal编程技术网

Database gcloud问题,永久卷运行OracleDB Docker映像(权限被拒绝)

Database gcloud问题,永久卷运行OracleDB Docker映像(权限被拒绝),database,oracle,kubernetes,yaml,gcloud,Database,Oracle,Kubernetes,Yaml,Gcloud,我试图在gcloud kubernetes中运行Oracle DB enterprise(docker store的最新OEM映像)。然而,我找不到这种跑步的例子,我是一个遇到很多错误的noob 使用以下部署代码,我可以部署映像,但当容器引导并尝试设置数据库时,我遇到了问题。当容器尝试设置数据库默认值(u01文件系统等)时,我从容器日志中获得了拒绝的权限。这意味着容器进入一个无限的引导循环,试图缝合自身。我可以在docker中正常运行映像,并将其作为默认部署(没有持久性存储,即仅按原样部署映像)

我试图在gcloud kubernetes中运行Oracle DB enterprise(docker store的最新OEM映像)。然而,我找不到这种跑步的例子,我是一个遇到很多错误的noob

使用以下部署代码,我可以部署映像,但当容器引导并尝试设置数据库时,我遇到了问题。当容器尝试设置数据库默认值(u01文件系统等)时,我从容器日志中获得了拒绝的权限。这意味着容器进入一个无限的引导循环,试图缝合自身。我可以在docker中正常运行映像,并将其作为默认部署(没有持久性存储,即仅按原样部署映像),但问题是当我尝试装载持久性存储卷时。就像我说的,我是一个完全的NOOB,所以我只是尝试从我在其他dbyaml示例中看到的内容创建一个工作脚本。我得到了概念,但无法让脚本工作。下面有注释掉的代码也不会在gcloud中运行(它验证并从kubectl运行,但gcloud挂起试图进行配置)

请帮忙



您需要一个
initContainer:
,如本文所述,以确保NFS目录由容器用于
oracle
的UID所有。严格地说,我实际上只希望您必须这样做一次,但在任何Pod start上运行它也不会有任何伤害,只要您不使用我在回答中(可能错误地)建议的
chown-R
。对于只有几个文件的卷来说,这是可以的,但是如果该卷中填充了数百个文件,那么Pod的开始时间就会受到真正的拖累

另外,我已经有一段时间不必使用oracle了,但在尝试在NFS上运行数据库时我会非常谨慎。那
gce-pd
更可能按照您的意愿运行,特别是如果gce像AWS一样提供了配置的IOPS


最后,请不要为oracle使用
部署
:您需要一个,因为Pod的标识很可能在启动时与所连接的文件系统紧密耦合。

谢谢,这为我提供了很多尝试并使其工作的方向
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