Kubernetes 如何在kuebernetes中跨presto群集分发文件
我是库伯内特斯的新手。我们在Kubernetes部署了一个presto starburst集群,我们正在尝试为presto集群实现SSL证书 根据下面的URL,我在本地计算机中创建了一个密钥库,并且必须将此密钥库路径填充到“http server.https.keystore.path” 但是,此文件必须跨集群分发。如果我输入本地路径,那么Kubernetes将抛出“未找到文件”错误。你能告诉我如何在库伯内特斯的presto集群中分发这个吗 我尝试将密钥库创建为机密,并将其装载到卷中Kubernetes 如何在kuebernetes中跨presto群集分发文件,kubernetes,presto,kubernetes-pod,starburst,Kubernetes,Presto,Kubernetes Pod,Starburst,我是库伯内特斯的新手。我们在Kubernetes部署了一个presto starburst集群,我们正在尝试为presto集群实现SSL证书 根据下面的URL,我在本地计算机中创建了一个密钥库,并且必须将此密钥库路径填充到“http server.https.keystore.path” 但是,此文件必须跨集群分发。如果我输入本地路径,那么Kubernetes将抛出“未找到文件”错误。你能告诉我如何在库伯内特斯的presto集群中分发这个吗 我尝试将密钥库创建为机密,并将其装载到卷中 kubec
kubectl create secret generic presto-keystore --from-file=./keystore.jks
还尝试创建配置并将其作为卷装入。但是仍然得到“由:java.io.FileNotFoundException:/jks/keystore.jks没有这样的文件或目录引起的”
如果我遗漏了什么,请告诉我好吗
谢谢您可以使用密钥库创建机密或配置映射,并将其装载为卷,然后使用文件中的路径 如何在k8s中创建和使用configMap 如何在k8s中配置密码
您可以在自定义资源中以与在任何其他资源中类似的方式使用这两者。我看到了一个与之相关的附加卷和文档选项您可以使用密钥库创建一个机密或配置映射,并将其装载为卷,然后使用文件中的路径 如何在k8s中创建和使用configMap 如何在k8s中配置密码
您可以在自定义资源中以与在任何其他资源中类似的方式使用这两者。我看到一个与之相关的附加卷和文档选项您可以在K8s中创建一个秘密,并使用additionalVolumes属性将其装载到Presto部署中。
在上签出有关附加卷的文档您可以在K8s中创建一个秘密,并使用additionalVolumes属性将其装载到Presto部署中。 在以下位置签出有关附加卷的文档: 从文件创建机密: 在上面yaml:per-Karol的URL的additionalVolumes部分中添加秘密 将jks文件添加到yaml中的coordinator additionalProperties部分: 从文件创建机密: 在上面yaml:per-Karol的URL的additionalVolumes部分中添加秘密 将jks文件添加到yaml中的coordinator additionalProperties部分:
当您使用Starburst时,正确的文档链接是我也在上面为子孙后代更新了它。已创建configMap kubectl创建configMap presto密钥库-从文件=/cert/keystore.jks 2。在下面的Presto yaml文件中使用additionalBootstrapScriptVolume:configMap:name:Presto密钥库3。此外,在同一Presto yaml文件中使用了协调器和辅助对象的属性。additionalProperties:| internal communication.https.keystore.path=presto keystore,但仍存在“未找到文件”问题。如果我遗漏了什么,请告诉我好吗。感谢您使用Starburst's,正确的文档链接是我也在上面为子孙后代更新了它。嗨@PiotrFindeisen,我已经尝试了Tarun在下面提到的方法1。已创建configMap kubectl创建configMap presto密钥库-从文件=/cert/keystore.jks 2。在下面的Presto yaml文件中使用additionalBootstrapScriptVolume:configMap:name:Presto密钥库3。此外,在同一Presto yaml文件中使用了协调器和辅助对象的属性。additionalProperties:| internal communication.https.keystore.path=presto keystore,但仍存在“未找到文件”问题。如果我遗漏了什么,请告诉我好吗。谢谢,我已经按照你提到的步骤做了。但还是有同样的问题。用我尝试过的步骤更新了我的问题。谢谢,豆荚放对了吗?您可以通过执行:kubectl exec-it bash进入协调器pod,然后执行ls/jks,查看jks文件是否在那里。我还将从https服务器开始,而不是内部通信。事实上,在pod之间进行加密太过分了。嗨,我已经检查了协调器pod,我看不到/jks卷…不确定丢失了什么…采用了与上述相同的方法。我们是否必须将上述额外体积添加到每个容器中?谢谢,我已经按照你提到的步骤做了。但还是有同样的问题。用我尝试过的步骤更新了我的问题。谢谢,豆荚放对了吗?您可以通过执行:kubectl exec-it bash进入协调器pod,然后执行ls/jks,查看jks文件是否在那里。我还将从https服务器开始,而不是内部通信。事实上,在pod之间进行加密太过分了。嗨,我已经检查了协调器pod,我看不到/jks卷…不确定丢失了什么…采用了与上述相同的方法。我们必须登广告吗 d上述额外体积是否装入每个容器?谢谢
kind: Presto
metadata:
name: stg-presto
spec:
clusterDomain: cluster.local
nameOverride: stg-presto
additionalVolumes:
- path: /jks
volume:
secret:
secretName: presto-keystore
additionalJvmConfigProperties: |
image:
name: xxxxx/presto
pullPolicy: IfNotPresent
tag: 323-e.8-k8s-0.20
prometheus:
enabled: true
additionalRules:
- pattern: 'presto.execution<name=TaskManager><>FailedTasks.TotalCount'
name: 'failed_tasks'
type: COUNTER
service:
type: NodePort
name: stg-presto
memory:
nodeMemoryHeadroom: 30Gi
xmxToTotalMemoryRatio: 0.9
heapHeadroomPerNodeRatio: 0.3
queryMaxMemory: 1Pi
queryMaxTotalMemoryPerNodePoolFraction: 0.333
coordinator:
cpuLimit: "5"
cpuRequest: "5"
memoryAllocation: "30Gi"
image:
pullPolicy: IfNotPresent
additionalProperties: |
http-server.http.enabled=false
node.internal-address-source=FQDN
http-server.https.enabled=true
http-server.https.port=8080
http-server.https.keystore.path=/jks/keystore.jks
http-server.https.keystore.key=xxxxxxx
internal-communication.https.required=true
internal-communication.https.keystore.path=/jks/keystore.jks
internal-communication.https.keystore.key=xxxxxxx
kubectl create secret generic cluster-keystore --from-file=./docker.cluster.jks
additionalVolumes:
- path: /jks
volume:
secret:
secretName: "cluster-keystore"
coordinator:
cpuRequest: 25
cpuLimit: 25
memoryAllocation: 110Gi
additionalProperties: |
http-server.https.enabled=true
http-server.https.port=8443
http-server.https.keystore.path=/jks/docker.cluster.jks
http-server.https.keystore.key=xxxxxxxxxxx
http-server.authentication.type=PASSWORD