密码修改 #
Operator 将 Easysearch 的密码保存在 k8s 的 Secret 中,查看已有的 Secret
现在准备修改密码,编辑 admin-credentials-secret.yaml 文件,并 apply
apiVersion: v1
kind: Secret
metadata:
name: threenodes-admin-password
type: Opaque
data:
# admin
username: YWRtaW4=
# admin123
password: YWRtaW4xMjM=
operator 感知到 threenodes-admin-password 有变化后,会检查账号密码是否有更新(通过检查账号密码生成的 hash 值是否与 job 的 annotations: “securityconfig/checksum” 值相同来判断),如果有更新则重新执行 job(集群名称-securityconfig-update),这里的名称是 threenodes-securityconfig-update
继续查看这个 job 的 spec
可以知道,这个 job 本质上也是 Easysearch,但是它执行 shell 命令来修改集群的密码:
until curl -k -XPUT --cert admin-credentials/tls.crt --key admin-credentials/tls.key \
-H 'Content-Type: application/json' 'https://threenodes.default.svc.cluster.local:9200/_security/user/admin \
-d '
{
"password": "admin",
"external_roles": ["admin"]
}';echo 'Waiting to connect to the cluster'; sleep 60;
修改密码后,再次查看 secret: 可知密码已经修改为目标密码。
继续测试一下新密码是否可用,依然进入 console-0,查看集群状态。发现原来的密码 admin 已经不可用,用新密码测试,新密码 admin123 为正确的密码,修改密码生效。