Pod的状态始终是ContainerCreating。 。事件显示'Failed create pod sandbox'

时间:2018-01-14 22:44:10

标签: kubernetes

我正在尝试在具有一个主节点和两个工作节点的K8群集上创建部署。群集正在3个AWS EC2实例上运行。我一直在使用这种环境与Kubernetes一起玩。三天前,我开始看到所有广告单元状态从ContainerCreating更改为Running。只有在主服务器上安排的容器才会显示为Running。在工作节点上运行的pod显示为ContainerCreating。当我运行kubectl describe pod <podname>时,它会在事件中显示以下内容

 Events:
  Type     Reason                  Age   From                      Message
  ----     ------                  ----  ----                      -------
  Normal   Scheduled               34s   default-scheduler         Successfully assigned nginx-8586cf59-5h2dp to ip-172-31-20-57
  Normal   SuccessfulMountVolume   34s   kubelet, ip-172-31-20-57  MountVolume.SetUp succeeded for volume "default-token-wz7rs"
  Warning  FailedCreatePodSandBox  4s    kubelet, ip-172-31-20-57  Failed create pod sandbox.
  Normal   SandboxChanged          3s    kubelet, ip-172-31-20-57  Pod sandbox changed, it will be killed and re-created.

这个错误现在一直困扰着我。我尝试在网上搜索相关的错误,但我无法得到任何具体的信息。我在集群上执行了kubeadm重置,包括主节点和工作节点,并再次启动集群。节点状态显示就绪。但是每当我尝试使用以下命令创建部署时,我再次遇到同样的问题:

kubectl run nginx --image=nginx --replicas=2

3 个答案:

答案 0 :(得分:3)

如果您在内存上指定了限制或请求并使用了错误的单位,则会发生这种情况。

以下触发了消息:

  void _handleError(e) {
    showDialog(
      context: context,
      builder: (BuildContext builder) {
        return AlertDialog(
          title: Text(e.toString()),
          content: Text('Some content'),
        );
      },
    );
    // I'm guessing I should do something here?
  }

  // This is the handler for the confirm buttons `onPressed` field. 
  void _pay(context) {
    double amount = double.parse(textFieldController.text);

    apiClient
        .createInvoice(amount)
        .then((Map<String, dynamic> invoice) {
      Navigator.push(
        context,
        MaterialPageRoute(builder: (context) {
          return Pay(invoice);
        }),
      );
    }).catchError(handleError);
  }

正确的行是:

resources:
   limits:
      cpu: "300m"
     memory: "256m"
   requests:
     cpu: "50m"
     memory: "64m"

答案 1 :(得分:1)

可能还有其他人,但是我花了一个周末,直到我发现我请求了1000个mem,安装了1000Mi ...

答案 2 :(得分:0)

我在几个DO小滴上运行k8s,并被卡在这个问题上。没有提供其他信息-仅FailedCreatePodSandBox抱怨我从未见过的文件。

花了很多时间试图解决这个问题-对我而言,唯一解决此问题的方法是重新启动主服务器和每个节点的整体。那让事情立即发生。

sudo shutdown -r now