kubernetes - 单实例有状态应用程序-容器CrashLoopBackOff

标签 kubernetes persistent-volumes

我正在尝试遵循针对单实例有状态应用程序的kubernetes教程:https://kubernetes.io/docs/tasks/run-application/run-single-instance-stateful-application/

问题是,当我应用了此处列出的所有Yaml后,最终我的Pod不可用,如下所示,

kubectl get deployments

NAME                        DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
mysql                       1         1         1            0           1h

kubectl get pods
NAME                                        READY     STATUS             RESTARTS   AGE
mysql-fb75876c6-tpdzc                       0/1       CrashLoopBackOff   17         1h

kubectl describe deployment mysql
Name:               mysql
Namespace:          default
CreationTimestamp:  Mon, 03 Sep 2018 10:50:22 +0000
Labels:             <none>
Annotations:        deployment.kubernetes.io/revision=1
Selector:           app=mysql
Replicas:           1 desired | 1 updated | 1 total | 0 available | 1 unavailable
StrategyType:       Recreate
MinReadySeconds:    0
Pod Template:
  Labels:  app=mysql
  Containers:
   mysql:
    Image:      mysql:5.6
    Port:       3306/TCP
    Host Port:  0/TCP
    Environment:
      MYSQL_ROOT_PASSWORD:  password
    Mounts:
      /var/lib/mysql from mysql-persistent-storage (rw)
  Volumes:
   mysql-persistent-storage:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  mysql-pv-claim
    ReadOnly:   false
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Progressing    True    NewReplicaSetAvailable
  Available      False   MinimumReplicasUnavailable
OldReplicaSets:  <none>
NewReplicaSet:   mysql-fb75876c6 (1/1 replicas created)
Events:          <none>


kubectl describe pods mysql-fb75876c6-tpdzc

Name:               mysql-fb75876c6-tpdzc
Namespace:          default
Priority:           0
PriorityClassName:  <none>
Node:               wombat-dev-kubeadm-worker-1/142.93.56.123
Start Time:         Mon, 03 Sep 2018 10:50:22 +0000
Labels:             app=mysql
                    pod-template-hash=963143272
Annotations:        <none>
Status:             Running
IP:                 192.168.1.14
Controlled By:      ReplicaSet/mysql-fb75876c6
Containers:
  mysql:
    Container ID:   docker://08d630190a83fb5097bf8a98f7bb5f474751e021aec68b1be958c675d3f26f27
    Image:          mysql:5.6
    Image ID:       docker-pullable://mysql@sha256:2e48836690b8416e4890c369aa174fc1f73c125363d94d99cfd08115f4513ec9
    Port:           3306/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    137
      Started:      Mon, 03 Sep 2018 12:04:24 +0000
      Finished:     Mon, 03 Sep 2018 12:04:29 +0000
    Ready:          False
    Restart Count:  19
    Environment:
      MYSQL_ROOT_PASSWORD:  password
    Mounts:
      /var/lib/mysql from mysql-persistent-storage (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-6t8pg (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  mysql-persistent-storage:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  mysql-pv-claim
    ReadOnly:   false
  default-token-6t8pg:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-6t8pg
    Optional:    false
QoS Class:       BestEffort
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  BackOff  1m (x334 over 1h)  kubelet, wombat-dev-kubeadm-worker-1  Back-off restarting failed container

问题是:我该怎么办?运行kubectl logs mysql-fb75876c6-tpdzc根本不返回任何输出。

有什么帮助吗?

这是kubeadm的版本
kubeadm version: &version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:14:39Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}

最佳答案

容器以退出代码137 退出,这意味着SIGTERM(等效于kill -9 <process>)被发送到在容器中执行的进程。通常,这意味着 OOM Killer 会杀死它,因为它使用的内存比可用内存更多。机器上是否有足够的可用内存?

关于kubernetes - 单实例有状态应用程序-容器CrashLoopBackOff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52149564/

相关文章:

postgresql - kubernetes : saving users and settings in a volume 上的 Pgadmin4

database - 使用 Kubernetes 在物理机上设置本地持久卷

kubernetes - 如何在 Google Container Engine 上创建 kubernetes NFS 卷

performance - Kubernetes NFS 挂载选项

kubernetes - 如何在K8s中拥有dev/test/cert/prod环境?

kubernetes - kubernetes 中的入口 nginx 路由(使用 nginx 反向代理从 docker-compose 转换)

nginx - 在Kubernetes NGINX反向代理入口 Controller 中按路径重写

kubernetes - 用于 Pvc 和 StorageClass 故障转移的 GKE 区域磁盘

Kubernetes - 从文件更新现有的配置映射

go - 如何使用 ServiceAccount Token 连接到 Kubernetes 集群?