首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WordPress安装在集群中的位置

WordPress安装在集群中的位置
EN

Stack Overflow用户
提问于 2020-06-28 16:08:11
回答 1查看 322关注 0票数 3

我在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的输出

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-29 14:50:44

正如您所描述的,由于您在代码中所做的更改,您的应用程序正在崩溃。这使您的网站失败,您的吊舱配置,以检查网站是否运行良好,如果没有,容器将重新启动。使其发生的配置是LivenessProbe和ReadinessProbe。

这里的问题是阻止您解决问题。

好消息是,您的数据保存在/var/www/html下,并且该目录位于外部存储空间中。

所以,最简单的解决方案是创建一个新的吊舱,并将这个存储器附加到这个吊舱上。问题是这个存储不能同时安装在多个容器上。

创建这个新的荚,需要你暂时移除你的wordpress荚。我知道,这可能很可怕,但我们会在此之后重新创作。

我复制了您的场景并测试了这些步骤。那我们就开始吧。(所有步骤都是强制性的)

在开始之前,让我们保存您的market-engine-wordpress清单:

代码语言:javascript
复制
$ kubectl get statefulsets market-engine-wordpress -o yaml > market-engine-wordpress.yaml

删除wordpress状态集:

代码语言:javascript
复制
$ kubectl delete statefulsets market-engine-wordpress

此命令删除创建wordpress pod的指令。

现在,让我们使用以下清单创建一个新的吊舱:

代码语言:javascript
复制
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文件,并运行以下命令:

代码语言:javascript
复制
$ kubectl apply -f fenix.yaml

检查吊舱是否准备好了:

代码语言:javascript
复制
$ kubectl get pods fenix
NAME         READY   STATUS    RESTARTS   AGE
fenix        1/1     Running   0          5m

从现在开始,您可以连接到这个吊舱并修复您的functions.php文件:

代码语言:javascript
复制
$ kubectl exec -ti fenix -- bash
root@fenix:/# cd /var/www/html/wp-includes/
root@fenix:/var/www/html/wp-includes# 

当您完成您的代码修复,我们可以删除这个荚,并重新创建您的wordpress荚。

代码语言:javascript
复制
$ kubectl delete pod fenix 
pod "fenix" deleted
代码语言:javascript
复制
$ kubectl apply -f market-engine-wordpress.yaml 
statefulset.apps/market-engine-wordpress created

检查吊舱是否准备好了:

代码语言:javascript
复制
$ 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的容器数目和名称,请执行以下操作。

若要最终执行该命令,请使用以下命令:

代码语言:javascript
复制
$ kubectl exec -ti market-engine-wordpress-0 -c wordpress -- bash
root@market-engine-wordpress-0:/var/www/html# 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62625068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档