如何解决postgresql-ha/helm的root密码是什么?
通过 Helm 在 AWS Eks 中安装 Postgresql https://bitnami.com/stack/postgresql-ha/helm
我需要在具有 root 权限的部署中完成一些任务,但是当
su -
需要一个我不知道的密码以及从哪里获取它,并访问所需的文件夹,例如 /opt/bitnami/postgresql/
错误:权限被拒绝
如何获得必要的权限或密码?
解决方法
我需要 [...] 将 postgresql 所需的 .so 库放入 [...] /opt/bitnami/postgresql/lib
我认为这是“扩展”而不是“配置”PostgreSQL;这不是单独使用 Helm 图表可以完成的任务。例如,在独立服务器上,您无法仅使用文本编辑器进行配置,虽然 the Bitnami PostgreSQL-HA chart 具有相当广泛的配置选项,但它们都不允许提供额外的二进制库。
执行此操作的第一步是创建一个包含共享库的自定义 Docker 映像。这可以启动 FROM
此图表使用的 Bitnami PostgreSQL 映像:
ARG postgresql_tag=11.12.0-debian-10-r44
FROM bitnami/postgresql:${postgresql_tag}
# assumes the shared library is in the same directory as
# the Dockerfile
COPY whatever.so /opt/bitnami/postgresql/lib
# or RUN curl ...,or RUN apt-get,or ...
#
# You do not need EXPOSE,ENTRYPOINT,CMD,etc.
# These come from the base image
构建此映像并将其推送到 Docker 注册表,就像您对应用程序代码所做的一样。 (在纯粹的本地上下文中,您可能能够docker build
minikube 上下文中的图像。)
当您部署图表时,它可以选择覆盖它运行的图像,因此您可以将其指向您自己的自定义图像。您的 Helm 值可能如下所示:
postgresqlImage:
registry: registry.example.com:5000
repository: infra/postgresql
tag: 11.12.0-debian-10-r44
# `docker run registry.example.com:5000/infra/postgresql:11.12.0-debian-10-r44`
然后您可以在部署图表时通过 helm install -f
选项提供此文件。
您几乎不应该尝试通过使用 kubectl exec
登录来手动配置 Kubernetes pod。删除 pod 是非常常规的,并且在许多情况下 Kubernetes 会自动执行此操作(如果 Deployment 或 StatefulSet 中的图像标签发生变化;如果 HorizontalPodAutoscaler 缩小;如果节点脱机);在这些情况下,您的手动更改将丢失。如果 Pod 有多个副本(几乎肯定会有 HA 数据库设置),您还需要在每个副本中进行相同的更改。
就像他们在评论中告诉您的那样,您对问题使用了错误的方法。在容器内执行手动操作(大多数情况下)是无用的,因为 Pod(以及属于此类 Pod 的容器)是临时实体,每当 Pod 重启时这些实体就会丢失。
除非持久卷支持您尝试与之交互的路径,否则一旦容器重新启动,您的所有更改都将丢失。
HELM Charts 与 bitnami-ha 图表一样,公开了几种优化/修改默认安装的方法:
-
您可以从默认使用的镜像开始构建自定义 docker 镜像,在那里添加库和您需要的任何内容。这样,容器一启动就已经按照你想要的方式“准备好了”
-
您可以添加额外的 Init Container 来执行操作,例如为
emptydir
卷上的主容器准备文件,然后可以将其挂载到预期路径 -
您可以在调用主入口点之前注入一个入口点脚本,该脚本在开始时执行您想要的操作
检查 Readme,因为它列出了图表提供的所有可能性(例如如何使用自定义的一个或多个覆盖图像)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。