我在Google集群中将Wordpress作为一个应用程序容器运行。我对主题的functions.php文件进行了错误的修改,使我的网站受到了一定程度的破坏。因此,现在我想删除我的坏代码,使网站工作。我找不到Wordpress的位置。因为我所需要的只是删除几行PHP代码,所以我认为,如果不使用SFTP和键(很抱歉,我在WordPress/Site中是newby ),那么在Google控制台中这样做可能更容易一些。
Wordpress安装

Google控制台:我的集群

我是通过SSH通过“连接”按钮连接到集群的。还有..。塔达!我在"var“文件夹中没有看到"/var/www/html”文件夹!“./www/html”文件夹即使在根目录下也不存在/可见。

有人能帮我找到WordPress安装吗?)
以下是$ kubectl describe pod market-engine-wordpress-0 mypod -n kalm-system comand的输出
Name: market-engine-wordpress-0
Namespace: kalm-system
Priority: 0
Node: gke-cluster-1-default-pool-6c5a3d37-sx7g/10.164.0.2
Start Time: Thu, 25 Jun 2020 17:35:54 +0300
Labels: app.kubernetes.io/component=wordpress-webserver
app.kubernetes.io/name=market-engine
controller-revision-hash=market-engine-wordpress-b47df865b
statefulset.kubernetes.io/pod-name=market-engine-wordpress-0
Annotations: <none>
Status: Running
IP: 10.36.0.17
IPs:
IP: 10.36.0.17
Controlled By: StatefulSet/market-engine-wordpress
Containers:
wordpress:
Container ID: docker://32ee6d8662ff29ce32a5c56384ba9548bdb54ebd7556de98cd9c401a742344d6
Image: gcr.io/cloud-marketplace/google/wordpress:5.3.2-20200515-193202
Image ID: docker-pullable://gcr.io/cloud-marketplace/google/wordpress@sha256:cb4515c3f331e0c6bcca5ec7b12d2f3f039fc5cdae32f0869abf19238d580575
Port: 80/TCP
Host Port: 0/TCP
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Completed
Exit Code: 0
Started: Mon, 29 Jun 2020 15:37:38 +0300
Finished: Mon, 29 Jun 2020 15:40:08 +0300
Ready: False
Restart Count: 774
Environment:
POD_NAME: market-engine-wordpress-0 (v1:metadata.name)
POD_NAMESPACE: kalm-system (v1:metadata.namespace)
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-4f6xq (ro)
Conditions:
Type Status
Initialized True
Ready False
ContainersReady False
PodScheduled True
Volumes:
market-engine-wordpress-pvc:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: market-engine-wordpress-pvc-market-engine-wordpress-0
ReadOnly: false
apache-config:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: market-engine-wordpress-config
Optional: false
config-map:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: market-engine-wordpress-config
Optional: false
default-token-4f6xq:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-4f6xq
Optional: false
QoS Class: Burstable
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning Unhealthy 8m33s (x9023 over 2d15h) kubelet, gke-cluster-1-default-pool-6c5a3d37-sx7g Readiness probe failed: HTTP probe failed with statuscode: 500
Warning BackOff 3m30s (x9287 over 2d15h) kubelet, gke-cluster-1-default-pool-6c5a3d37-sx7g Back-off restarting failed container发布于 2020-06-29 14:50:44
正如您所描述的,由于您在代码中所做的更改,您的应用程序正在崩溃。这使您的网站失败,您的吊舱配置,以检查网站是否运行良好,如果没有,容器将重新启动。使其发生的配置是LivenessProbe和ReadinessProbe。
这里的问题是阻止您解决问题。
好消息是,您的数据保存在/var/www/html下,并且该目录位于外部存储空间中。
所以,最简单的解决方案是创建一个新的吊舱,并将这个存储器附加到这个吊舱上。问题是这个存储不能同时安装在多个容器上。
创建这个新的荚,需要你暂时移除你的wordpress荚。我知道,这可能很可怕,但我们会在此之后重新创作。
我复制了您的场景并测试了这些步骤。那我们就开始吧。(所有步骤都是强制性的)
在开始之前,让我们保存您的market-engine-wordpress清单:
$ kubectl get statefulsets market-engine-wordpress -o yaml > market-engine-wordpress.yaml删除wordpress状态集:
$ kubectl delete statefulsets market-engine-wordpress此命令删除创建wordpress pod的指令。
现在,让我们使用以下清单创建一个新的吊舱:
apiVersion: v1
kind: Pod
metadata:
name: fenix
namespace: kalm-system
spec:
volumes:
- name: market-engine-wordpress-pvc
persistentVolumeClaim:
claimName: market-engine-wordpress-pvc-market-engine-wordpress-0
containers:
- name: ubuntu
image: ubuntu
command: ['sh', '-c', "sleep 36000"]
volumeMounts:
- mountPath: /var/www/html
name: market-engine-wordpress-pvc
subPath: wp若要创建此pod,请将此内容保存为fenix.yaml文件,并运行以下命令:
$ kubectl apply -f fenix.yaml检查吊舱是否准备好了:
$ kubectl get pods fenix
NAME READY STATUS RESTARTS AGE
fenix 1/1 Running 0 5m从现在开始,您可以连接到这个吊舱并修复您的functions.php文件:
$ kubectl exec -ti fenix -- bash
root@fenix:/# cd /var/www/html/wp-includes/
root@fenix:/var/www/html/wp-includes# 当您完成您的代码修复,我们可以删除这个荚,并重新创建您的wordpress荚。
$ kubectl delete pod fenix
pod "fenix" deleted$ kubectl apply -f market-engine-wordpress.yaml
statefulset.apps/market-engine-wordpress created检查吊舱是否准备好了:
$ kubectl get pod market-engine-wordpress-0
NAME READY STATUS RESTARTS AGE
market-engine-wordpress-0 2/2 Running 0 97s如果您需要执行到wordpress容器中,您的应用程序使用多容器容器的概念,并且连接到正确的容器需要您指示要连接的容器。
若要检查可以运行kubectl get pod mypod -o yaml或运行kubectl describe pod mypod的容器数目和名称,请执行以下操作。
若要最终执行该命令,请使用以下命令:
$ kubectl exec -ti market-engine-wordpress-0 -c wordpress -- bash
root@market-engine-wordpress-0:/var/www/html# https://stackoverflow.com/questions/62625068
复制相似问题