[英]Apache Druid on Digital Ocean Kubernetes, receiving `Access Denied` when attempting `mkdir /var/druid`
如标题所示。 我正在尝试在 Digital Ocean 上托管的 Kube.netes 上运行 Apache Druid。 在本地,我已经在 Minikube 上运行了这个精确的配置并且它工作正常,但是当我将集群切换到 Digital Ocean 时,我在尝试创建/var/druid
时在每个 pod 上都遇到了 Access Denied 错误。
服务:
apiVersion: v1
kind: Service
metadata:
name: router
labels:
app: router
spec:
ports:
- port: 8888
selector:
app: router
持久卷声明:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: router
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
status: {}
和部署:
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
我是 Druid 和 Kube.netes 的新手,所以我确信其中有些不正确,但这项工作的 scope 实际上只是让配置像在本地一样在 DO 上工作。 谷歌搜索表明德鲁伊版本不正确 - 关于 Docker Compose 的很多问题。 这些似乎都不是很有帮助,因为它确实适用于 Minikube,而且版本没有改变。
IIRC micro quickstart 使用本地深度存储,除非您有 NFS,否则它不适用于 kube 解决方案。 您可能需要配置深度存储https://druid.apache.org/docs/latest/tutorials/cluster.html#deep-storage
你的德鲁伊版本对我来说似乎是正确的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.