在K8S中启动Elasticsearch时如何正确禁用身份认证
解决方案
你使用Elastic官方ECK Operator部署ES集群时,Operator默认会接管所有Xpack安全相关的配置项,禁止用户在nodeSet.config下直接修改xpack.security开头的参数,所以会触发保留配置禁止修改的校验报错。同时你看到的资源被修改的报错是因为前一次提交的资源版本和集群当前存储的版本不一致导致的。
正确配置步骤
- 第一步:先删除之前创建失败的ES资源,避免版本冲突
kubectl delete elasticsearch datasource
- 第二步:使用修改后的配置文件重新部署,核心修改点如下:
- 在
metadata.annotations添加跳过安全校验的标注,允许自定义安全相关参数 - 在spec顶层分别关闭HTTP层和传输层的TLS配置
- 保留
xpack.security.enabled: false即可实现无密码访问
- 在
完整配置示例:
apiVersion: elasticsearch.k8s.elastic.co/v1 kind: Elasticsearch metadata: name: datasource annotations: # 跳过安全配置校验,允许自定义Xpack安全参数 eck.k8s.elastic.co/skip-validations: "security" spec: version: 7.14.0 # 关闭HTTP层TLS http: tls: enabled: false # 关闭传输层TLS transport: tls: enabled: false nodeSets: - name: node count: 2 config: node.store.allow_mmap: false xpack.security.enabled: false volumeClaimTemplates: - metadata: name: elasticsearch-data spec: accessModes: - ReadWriteOnce storageClassName: ebs-sc resources: requests: storage: 1024Gi
该配置仅适用于开发测试环境,生产环境禁用TLS和身份认证会导致集群完全暴露,存在严重的数据安全风险。
内容的提问来源于stack exchange,提问作者Joey Yi Zhao
相关产品推荐
相关产品推荐

