我正在尝试在具有一个主节点和两个工作节点的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
答案 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