Kubernetes 当节点关闭并试图在其他节点上重新创建时,Pod将进入“ContainerCreating”状态
我的K8s基础设施部署在AWS EKS上,有3个节点,我面临一个OpenEBS问题。我正在部署一个带有一个副本的RabbitMQ状态集。我希望在节点停机并且pod在其他节点上重新启动时持久化RabbitMQ pod数据。因此,我在集群中部署了OpenEBS。我试图终止运行pod的节点,因此pod尝试在其他节点中重新启动。但pod并没有在其他节点启动,而是保持在Kubernetes 当节点关闭并试图在其他节点上重新创建时,Pod将进入“ContainerCreating”状态,kubernetes,amazon-eks,openebs,Kubernetes,Amazon Eks,Openebs,我的K8s基础设施部署在AWS EKS上,有3个节点,我面临一个OpenEBS问题。我正在部署一个带有一个副本的RabbitMQ状态集。我希望在节点停机并且pod在其他节点上重新启动时持久化RabbitMQ pod数据。因此,我在集群中部署了OpenEBS。我试图终止运行pod的节点,因此pod尝试在其他节点中重新启动。但pod并没有在其他节点启动,而是保持在ContainerCreating状态,并向我显示以下问题- Events: Type Reason
ContainerCreating
状态,并向我显示以下问题-
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 2m28s default-scheduler Successfully assigned rabbitmq/rabbitmq-0 to ip-10-0-1-132.ap-south-1.compute.internal
Warning FailedAttachVolume 2m28s attachdetach-controller Multi-Attach error for volume "pvc-b62d32f1-de60-499a-94f8-3c4d1625353d" Volume is already exclusively attached to one node and can't be attached to another
Warning FailedMount 2m26s kubelet MountVolume.SetUp failed for volume "rabbitmq-token-m99tw" : failed to sync secret cache: timed out waiting for the condition
Warning FailedMount 25s kubelet Unable to attach or mount volumes: unmounted volumes=[data], unattached volumes=[configuration data rabbitmq-token-m99tw]: timed out waiting for the condition
然后过了一段时间(大约5-10分钟),rabbitmq pod能够启动,但我发现一个cstor磁盘池pod出现以下错误-
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 7m7s (x3 over 7m9s) default-scheduler 0/2 nodes are available: 2 node(s) didn't match node selector.
Warning FailedScheduling 44s (x8 over 6m14s) default-scheduler 0/3 nodes are available: 3 node(s) didn't match node selector.
我描述了cstor磁盘池pod,并且节点选择器键仍然具有旧节点(已终止)的值。有人能帮我解决这个问题吗?此外,我们还需要一种方法来缩短rabbitmq pod重新启动和正确准备的时间,因为我们无法为我们的应用程序提供5-10分钟的rabbitmq服务停机时间要使卷承受单节点故障,您需要创建:
- 3个cStor池-每个节点上一个
- 卷应配置3个副本,以便将数据复制到所有3个节点
cStor池绑定到创建它们的节点。这样做是为了在节点返回时允许重用池中的数据。根据节点和磁盘的配置方式,有几种解决方案可以帮助您自动化运行cstor池的过程,或将它们从故障节点移动到新节点。您是否可以加入Kubernetes slack#openebs频道或在openebs github上创建一个问题以获得进一步帮助?要使卷承受单节点故障,您需要创建:
- 3个cStor池-每个节点上一个
- 卷应配置3个副本,以便将数据复制到所有3个节点
cStor池绑定到创建它们的节点。这样做是为了在节点返回时允许重用池中的数据。根据节点和磁盘的配置方式,有几种解决方案可以帮助您自动化运行cstor池的过程,或将它们从故障节点移动到新节点。您是否可以加入Kubernetes slack#openebs频道或在openebs github上创建一个问题以获得进一步帮助?您是否可以分享您的状态yaml?是否分配了任何节点(反)关联?您在重新启动之前是否排空了节点?我正在使用bitnami提供的rabbitmq的helm图表部署rabbitmq-。我已经实现了OpenEBS作为存储服务,用于在节点故障时保存数据。我在测试一个节点故障场景,因此,我终止了worker node EC2实例,在该实例中,我的rabbitmq pod正在从AWS控制台运行,以检查它是否在其他节点上正确重新部署,但我观察到,在其他节点上重新部署需要5-10分钟的时间,openebs命名空间中的一个cstor磁盘池pod持续出现故障。您修改了吗rabbitmq图表中的
values.yaml
?默认情况下,terminationGracePeriodSeconds
是120秒
您可以共享您的状态yaml吗?是否分配了任何节点(反)关联?您在重新启动之前是否排空了节点?我正在使用bitnami提供的rabbitmq的helm图表部署rabbitmq-。我已经实现了OpenEBS作为存储服务,用于在节点故障时保存数据。我在测试一个节点故障场景,因此,我终止了worker node EC2实例,在该实例中,我的rabbitmq pod正在从AWS控制台运行,以检查它是否在其他节点上正确重新部署,但我观察到,在其他节点上重新部署需要5-10分钟的时间,openebs命名空间中的一个cstor磁盘池pod持续出现故障。您修改了吗rabbitmq图表中的values.yaml
?默认情况下,terminationGracePeriodSeconds
为120秒