You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K8S部署Elasticsearch时如何正确使用bin/elasticsearch-certutil ca生成证书

根因分析
  • 路径权限问题:Elasticsearch 内置的Java安全管理器默认仅允许读取/usr/share/elasticsearch/config目录下的SSL相关资源,你当前配置的证书路径不在允许范围内,触发了访问权限拒绝。
  • 循环依赖问题:你需要进入运行中的ES Pod生成证书,但未配置证书的Pod启动直接失败,无法进入执行操作。
最优部署方案

1. 预生成证书文件

你可以在本地临时启动一个同版本的ES容器生成证书,无需提前部署集群:

  1. 拉取对应版本的ES镜像,启动临时容器:
    docker run --rm -it docker.elastic.co/elasticsearch/elasticsearch:<你的ES版本号> bash
  2. 容器内执行证书生成命令,这里设置为空密码适配测试/生产通用场景,需要密码可自行调整参数:
bin/elasticsearch-certutil ca --out elastic-stack-ca.p12 --pass ""
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 --ca-pass "" --out elastic-certificates.p12 --pass ""
  1. 新开一个本地终端窗口,将生成的证书拷贝到本地:
    docker cp <临时容器ID>:/usr/share/elasticsearch/elastic-certificates.p12 ./

2. 将证书存入K8S Secret

将证书保存为K8S内置的Secret资源,避免证书明文写在配置文件中:
kubectl create secret generic es-tls-cert --from-file=elastic-certificates.p12=./elastic-certificates.p12 -n <你的ES部署命名空间>

3. 调整StatefulSet配置

3.1 修改xpack证书路径配置

将原有配置中证书路径调整为config目录下:

- name: xpack.security.transport.ssl.keystore.path
  value: '/usr/share/elasticsearch/config/elastic-certificates.p12'
- name: xpack.security.transport.ssl.truststore.path
  value: '/usr/share/elasticsearch/config/elastic-certificates.p12'

3.2 新增证书挂载配置

在StatefulSet的Pod模板中添加Secret挂载配置:

spec:
  template:
    spec:
      # 配置运行用户,适配ES默认非root启动的权限要求
      securityContext:
        runAsUser: 1000
        fsGroup: 1000
      volumes:
        - name: es-tls-cert
          secret:
            secretName: es-tls-cert
            defaultMode: 0400
      containers:
      - name: elasticsearch
        # 其他原有配置保持不变
        volumeMounts:
        # 其他原有挂载配置保持不变
        - name: es-tls-cert
          mountPath: /usr/share/elasticsearch/config/elastic-certificates.p12
          subPath: elastic-certificates.p12
          readOnly: true

4. 重新应用配置

执行kubectl apply -f <你的StatefulSet配置文件路径>即可正常启动ES集群。

内容的提问来源于stack exchange,提问作者Pablo Andrei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 21:45:03