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にプロビジョニングしました。それが失敗し始めた特定の状況の間に私はわかりません。ポッドを再起動する必要があり、それ以来失敗しています。
ここの問題は何ですか?
既存の永続ボリュームの要求を削除してrabbitmqを再インストールするだけで動作しました。
そのため、kubernetesクラスターにrabbitmqをインストールした後、ポッドを0にスケールダウンした場合、およびポッドを後でスケールアップしたときに、同じエラーが発生します。また、rabbitmqヘルムチャートをアンインストールせずに永続ボリューム要求を削除しようとしましたが、同じエラーが発生しました。
そのため、クラスターを0にスケールダウンするたびに、rabbitmq helmチャートをアンインストールし、対応する永続ボリュームの要求を削除し、毎回rabbitmq helmチャートをインストールして機能させる必要があります。
以下のようなエラーも発生しました。
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クラスターのスレーブノード(サーバー)がダウンしていました。スレーブノードを起動すると、マスターノードがエラーなしで起動しました。