web-dev-qa-db-ja.com

Rabbit mq-Mnesiaテーブルの待機中にエラーが発生しました

Kubernetesクラスターにhelmチャートを使用してrabbitmqをインストールしました。 rabbitmqポッドが再起動し続けます。ポッドログを検査すると、以下のエラーが発生します

2020-02-26 04:42:31.582 [warning] <0.314.0> Error while waiting for Mnesia tables: {timeout_waiting_for_tables,[rabbit_durable_queue]}
2020-02-26 04:42:31.582 [info] <0.314.0> Waiting for Mnesia tables for 30000 ms, 6 retries left

Kubectl describe podを実行しようとすると、このエラーが発生します

Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  data:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  data-rabbitmq-0
    ReadOnly:   false
  config-volume:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      rabbitmq-config
    Optional:  false
  healthchecks:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      rabbitmq-healthchecks
    Optional:  false
  rabbitmq-token-w74kb:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  rabbitmq-token-w74kb
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  beta.kubernetes.io/Arch=AMD64
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason     Age                      From                                               Message
  ----     ------     ----                     ----                                               -------
  Warning  Unhealthy  3m27s (x878 over 7h21m)  kubelet, gke-analytics-default-pool-918f5943-w0t0  Readiness probe failed: Timeout: 70 seconds ...
Checking health of node [email protected] ...
Status of node [email protected] ...
Error:
{:aborted, {:no_exists, [:rabbit_vhost, [{{:vhost, :"$1", :_, :_}, [], [:"$1"]}]]}}
Error:
{:aborted, {:no_exists, [:rabbit_vhost, [{{:vhost, :"$1", :_, :_}, [], [:"$1"]}]]}}

上記をkubernetesクラスター上のGoogle Cloudにプロビジョニングしました。それが失敗し始めた特定の状況の間に私はわかりません。ポッドを再起動する必要があり、それ以来失敗しています。

ここの問題は何ですか?

1
jeril

既存の永続ボリュームの要求を削除してrabbitmqを再インストールするだけで動作しました。

そのため、kubernetesクラスターにrabbitmqをインストールした後、ポッドを0にスケールダウンした場合、およびポッドを後でスケールアップしたときに、同じエラーが発生します。また、rabbitmqヘルムチャートをアンインストールせずに永続ボリューム要求を削除しようとしましたが、同じエラーが発生しました。

そのため、クラスターを0にスケールダウンするたびに、rabbitmq helmチャートをアンインストールし、対応する永続ボリュームの要求を削除し、毎回rabbitmq helmチャートをインストールして機能させる必要があります。

3
jeril

以下のようなエラーも発生しました。

2020-06-05 03:45:37.153 [info] <0.234.0> Mnesiaテーブルを30000ミリ秒間待機し、9回の再試行を終了しました2020-06-05 03:46:07.154 [警告] <0.234.0>待機中のエラーMnesiaテーブルの場合:{timeout_waiting_for_tables、[rabbit_user、rabbit_user_permission、rabbit_topic_permission、rabbit_vhost、rabbit_durable_route、rabbit_durable_exchange、rabbit_runtime_parameters、rabbit_durable_queue]} 2020-06-05 03:46:07.154 [情報] <0.234.0ミリ秒待ち、残り8回の再試行

私の場合、RabbitMQクラスターのスレーブノード(サーバー)がダウンしていました。スレーブノードを起動すると、マスターノードがエラーなしで起動しました。

0