简体   繁体   English

Apache Digital Ocean Kube.netes 上的 Druid,在尝试 `mkdir /var/druid` 时收到 `Access Denied`

[英]Apache Druid on Digital Ocean Kubernetes, receiving `Access Denied` when attempting `mkdir /var/druid`

As the title indicates.如标题所示。 I'm attempting to run Apache Druid on Kube.netes hosted on Digital Ocean.我正在尝试在 Digital Ocean 上托管的 Kube.netes 上运行 Apache Druid。 Locally I've run this exact configuration on Minikube and had it work fine, but when I switch the cluster to Digital Ocean I get an Access Denied error on each pod when attempting to create /var/druid .在本地,我已经在 Minikube 上运行了这个精确的配置并且它工作正常,但是当我将集群切换到 Digital Ocean 时,我在尝试创建/var/druid时在每个 pod 上都遇到了 Access Denied 错误。

Service:服务:

apiVersion: v1
kind: Service
metadata:
  name: router
  labels:
    app: router
spec:
  ports:
    - port: 8888
  selector:
    app: router

PersistentVolumeClaim:持久卷声明:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: router
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 100Mi
status: {}

And Deployment:和部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: router
spec:
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 2
      maxUnavailable: 1
  selector:
    matchLabels:
      app: druid
  replicas: 3
  template:
    metadata:
      labels:
        app: druid
    spec:
      containers:
        - name: router
          image: apache/druid:24.0.2
          args:
            - router
          env:
            - name: AWS_REGION
              value: us-west-2
            - name: DRUID_LOG4J
              value: <?xml version="1.0" encoding="UTF-8" ?><Configuration status="WARN"><Appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d{ISO8601} %p [%t] %c - %m%n"/></Console></Appenders><Loggers><Root level="info"><AppenderRef ref="Console"/></Root><Logger name="org.apache.druid.jetty.RequestLog" additivity="false" level="DEBUG"><AppenderRef ref="Console"/></Logger></Loggers></Configuration>
            - name: DRUID_SINGLE_NODE_CONF
              value: micro-quickstart
            - name: druid_coordinator_balancer_strategy
              value: cachingCost
            - name: druid_emitter_logging_logLevel
              value: debug
            - name: druid_extensions_loadList
              value: '["druid-histogram", "druid-datasketches", "druid-lookups-cached-global", "postgresql-metadata-storage", "druid-multi-stage-query", "druid-s3-extensions", "druid-parquet-extensions"]'
            - name: druid_indexer_fork_property_druid_processing_buffer_sizeBytes
              value: 256MiB
            - name: druid_indexer_logs_directory
              value: /opt/shared/indexing-logs
            - name: druid_indexer_logs_type
              value: file
            - name: druid_indexer_runner_javaOptsArray
              value: '["-server", "-Xmx1g", "-Xms1g", "-XX:MaxDirectMemorySize=3g", "-Duser.timezone=UTC", "-Dfile.encoding=UTF-8", "-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager", "-Daws.region=us-west-2"]'
            - name: druid_metadata_storage_connector_connectURI
              value: jdbc:postgresql://postgres.druid.svc.cluster.local:5432/druid
            - name: druid_metadata_storage_connector_password
              value: FoolishPassword
            - name: druid_metadata_storage_connector_user
              value: druid
            - name: druid_metadata_storage_host
            - name: druid_metadata_storage_type
              value: postgresql
            - name: druid_processing_numMergeBuffers
              value: "2"
            - name: druid_processing_numThreads
              value: "2"
            - name: druid_storage_storageDirectory
              value: /opt/shared/segments
            - name: druid_storage_type
              value: local
            - name: druid_zk_service_host
              value: zk-cs.druid.svc.cluster.local
          ports:
            - containerPort: 8888
          volumeMounts:
            - mountPath: /opt/druid/var
              name: router
          resources:
            limits:
              memory: "512Mi"
              cpu: "500m"
      restartPolicy: Always
      volumes:
        - name: router
          persistentVolumeClaim:
            claimName: router

I am very new to Druid and Kube.netes, so I'm sure some of this isn't correct, but the scope of this work is literally just getting the configuration to work as it did locally, on DO.我是 Druid 和 Kube.netes 的新手,所以我确信其中有些不正确,但这项工作的 scope 实际上只是让配置像在本地一样在 DO 上工作。 Googling suggests something about the Druid version being incorrect - lots of questions about Docker Compose.谷歌搜索表明德鲁伊版本不正确 - 关于 Docker Compose 的很多问题。 None of this seems very helpful as it did work on Minikube and the version hasn't changed.这些似乎都不是很有帮助,因为它确实适用于 Minikube,而且版本没有改变。

IIRC micro quickstart uses the local deep storage which does not work on kube solutions unless you have an NFS. IIRC micro quickstart 使用本地深度存储,除非您有 NFS,否则它不适用于 kube 解决方案。 You might want to configure deep storage https://druid.apache.org/docs/latest/tutorials/cluster.html#deep-storage您可能需要配置深度存储https://druid.apache.org/docs/latest/tutorials/cluster.html#deep-storage

Your druid version seems correct to me.你的德鲁伊版本对我来说似乎是正确的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM