首页 > 解决方案 > 在 Kubernetes 容器上自动调用 bash 命令

问题描述

我在 Kubernetes 上运行带有 Kibana 和 Fluent Bit 的 Elasticsearch 堆栈。要设置安全性,我使用以下命令设置密码:

kubectl exec -it $(kubectl get pods -n logging | grep elasticsearch-client | sed -n 1p | awk '{print $1}') -n logging -- bin/elasticsearch-setup-passwords auto -b

按照本教程

在开发过程中,我必须经常进行此设置,我想自动执行此步骤,但我无法使其正常工作。当我使用Tiltfiles时,我的第一直觉是从那里调用一个 bash 脚本,但由于Starlark不支持这个,所以它不是一个选项。我的下一个尝试是尝试它,Init Containers但由于他们无法访问其他容器,这也不起作用。有谁知道这样做的正确方法是什么?

标签: elasticsearchkubernetes

解决方案


正如@David Maze 指出的那样,我应该将(引导)密码放入secret.

我最初的问题是我认为该elasticsearch-setup-passwords工具是设置(用户)密码的唯一方法。

换句话说,在程序启动之前我不知道密码。但是我只是在这里找到了一种预先更改引导密码的方法,因此问题解决了。


推荐阅读