【问题标题】:How to get root password in Bitnami Wordpress from kubernetes shell?如何从 kubernetes shell 获取 Bitnami Wordpress 中的 root 密码?
【发布时间】:2020-08-31 03:05:43
【问题描述】:

我已经在 Rancher 中安装了 Worpress,(docker.io/bitnami/wordpress:5.3.2-debian-10-r43) 我必须让 wp-config 可写,但我卡住了,当获取此 pod 内的 shell 以 root 身份登录:

kubectl exec -t -i --namespace=annuaire-p-brqcw annuaire-p-brqcw-wordpress-7ff856cd9f-l9gf7 bash

我无法登录到 root,密码与 Bitnami Wordpress 安装不匹配。

wordpress@annuaire-p-brqcw-wordpress-7ff856cd9f-l9gf7:/$ su root
Password: 
su: Authentication failure

什么是默认密码,或者如何更改?

我真的需要你的帮助!

【问题讨论】:

  • 嗨。抱歉,您的问题听起来有点不对劲。你是如何“在 Rancher 中安装 wordpress”的?我猜您以某种方式将您命名的 docker 映像部署到了 Kubernetes 集群?无论如何更改容器“中”的任何文件都没有多大意义,因为当重新创建 pod 或更新部署时,更改将被删除。也许看看 bitnami helm 文档以了解组件如何工作和交互github.com/bitnami/charts/tree/master/bitnami/wordpress
  • 是的我知道,但是只是为了测试,我需要导入一个迁移文件,而且我的wp-config配置这个文件太大了。
  • 它在舵图的文档中The Bitnami WordPress image was migrated to a "non-root" user approach. Consequences: - The HTTP/HTTPS ports exposed by the container are now 8080/8443 instead of 80/443. - No writing permissions will be granted on wp-config.php by default.

标签: wordpress shell kubernetes kubectl rancher


【解决方案1】:

WordPress 容器已迁移到“非 root”用户 方法。以前容器以 root 用户和 Apache 运行 daemon 以 daemon 用户身份启动。从现在开始,无论是容器 并且 Apache 守护程序以用户 1001 身份运行。您可以恢复此行为 通过在 Dockerfile 中将 USER 1001 更改为 USER root。

默认情况下wp-config.php不会被授予写入权限。

这意味着以 root 用户身份运行它的唯一方法是创建自己的 Dockerfile 并将用户更改为 root

但不建议以security reasons 的root 身份运行这些容器。

【讨论】:

  • 我明白了,我将使用 Rancher 仅用于测试,出于这些安全原因,也没有 ssl 配置。
【解决方案2】:

在 Pod 的容器文件系统上更改文件内容的最简单和最原生的 Kubernetes 方法是使用以下命令创建 ConfigMap 对象 from file

$ kubectl create configmap myconfigmap --from-file=foo.txt
$ cat foo.txt
foo test

(查看ConfigMaps documentation了解如何更新它们的详细信息。)

然后将ConfigMap 挂载到您的容器以替换现有文件,如下所示:
(示例需要一些调整才能使用 Wordpress 图片):

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: mypod
    image: nginx
    volumeMounts:
    - name: volname1
      mountPath: "/etc/wpconfig.conf"
      readOnly: true
      subPath: foo.txt
  volumes:
  - name: volname1
    configMap:
      name: myconfigmap

在上面的示例中,ConfigMap data: 部分中的文件替换了正在运行的容器中的原始 /etc/wpconfig.conf 文件(或在文件不存在时创建),而无需构建新容器。

$ kubectl exec -ti mypod -- bash
root@mypod:/# ls -lah /etc/wpconfig.conf
-rw-r--r-- 1 root root 9 Jun  4 16:31 /etc/wpconfig.conf
root@mypod:/# cat /etc/wpconfig.conf
foo test

注意,文件权限为644,非root用户也可以读取。

顺便说一句,Bitnami Helm 图表也使用这种方法,但它依赖于集群中的 existing configMap 来添加自定义 .htaccesspersistentVolumeClaim 以安装 Wordpress data 文件夹。

【讨论】:

    猜你喜欢
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 2020-02-22
    • 1970-01-01
    相关资源
    最近更新 更多