イングレスエラー:エリオデグ
仮想プライベートクラウド クラシック・インフラストラクチャー Satellite
イングレス・オペレーターがデグレード状態にある場合に、 ERRIODEG のエラーを解決する方法をご覧ください。
ibmcloud oc ingress status-report ignored-errors add コマンドを使用して、無視されたエラーのリストにエラーを追加することができます。 無視されたエラーは、 ibmcloud oc ingress status-report get コマンドの出力には引き続き表示されますが、Ingress 全体の状況を計算する際には無視されます。
ibmcloud oc ingress status-report get コマンドを実行してクラスターの Ingress コンポーネントの状況を確認すると、以下のようなエラーが表示されます。
The Ingress Operator is in a degraded state (ERRIODEG).
Ingress オペレーターは、Ingress コントローラーの正常性を検査し、検査が失敗すると機能低下状態になります。
ノードに過負荷がかかっていないことを確認してください。 ノードに過負荷がかかると、Ingress Operator のヘルスチェックが失敗する原因となる可能性があります。
CPUとメモリに十分な余裕があるかどうかを確認するには、次のコマンドを実行してください。
kubectl top nodes
ingress ( ClusterOperator )の詳細を確認し、エラーメッセージに基づいて手順を実行してください。
ingress ClusterOperatorの状況を確認します。 DEGRADED 列に False が表示されている場合は、10 分から 15 分待って、Ingress 状況の警告が表示されなくなるかどうかを確認します。 そうでない場合は、 MESSAGE 列のメッセージに基づいてトラブルシューティング・ステップに進みます。
oc get clusteroperator ingress
1 つ以上の状況条件が使用不可であることを示しています: DeploymentAvailable=False
- クラスターに少なくとも 2 つのワーカーがあることを確認します。 詳しくは、 クラシック・クラスターへのワーカー・ノードの追加 または VPC クラスターへのワーカー・ノードの追加 を参照してください。
- クラスター・ワーカーが正常であることを確認してください。そうしないと、Ingress コントローラー・ポッドをスケジュールできません。 詳しくは、ワーカー・ノードの状態を参照してください。
1 つ以上の状況条件が使用不可であることを示しています: LoadBalancerReady=False
- VPC のみ: LBaaS インスタンス割り当て量に達していないことを確認してください。 詳しくは、 割り当て量とサービスの制限 および
ibmcloud is load-balancersコマンド を参照してください。 - クラスター・マスターが正常であることを確認します。 詳しくは、 マスターの正常性の確認 を参照してください。
ibmcloud oc cluster master refreshコマンド を実行して、クラスター・マスターをリフレッシュします。
1 つ以上の他の状況条件が機能低下状態を示しています: CanaryChecksSucceeding=False
-
正しい LoadBalancer サービス・アドレスが Ingress サブドメインに登録されていることを確認してください。
ibmcloud oc cluster getコマンド を実行して、Ingress サブドメインを確認します。ibmcloud oc nlb-dns getコマンド を実行して、登録されているアドレスを確認します。oc get services -n openshift-ingressコマンドを実行して、実際のロード・バランサー・アドレスを取得します。- 登録済みアドレスと実際のアドレスを比較し、サブドメインが異なる場合は更新します。
VPC:
ibmcloud oc nlb-dns replaceコマンド を実行して、現行アドレスを置き換えます。 クラシック:ibmcloud oc nlb-dns rm classicコマンド を実行して現在登録されているアドレスを削除してから、ibmcloud oc nlb-dns addコマンド を使用して新しいアドレスを追加します。 Satellite: 実際のアドレスは設定によって異なります。ワーカーノードを外部ロードバランサー経由で公開している場合は、そのロードバランサーのアドレスを登録してください。そうでない場合は、openshift-ingressネームスペース内のrouter-external-defaultサービスに割り当てられたIPアドレスを登録してください(アドレスを取得するには、oc get services -n openshift-ingress router-external-default -o yamlコマンドを使用してください)。ibmcloud oc nlb-dns rm classicコマンド を実行して現在登録されているアドレスを削除してから、ibmcloud oc nlb-dns addコマンド を使用して新しいアドレスを追加します。
-
VPC のみ: カナリア・ヘルス・チェック・トラフィックは、クラスターのいずれかのワーカー・ノードから発生します。
- ヘルス・チェック・トラフィックは、クラスターのいずれかのワーカー・ノードから発信されます。 パブリック・サービス・エンドポイントを持つクラスターの場合、トラフィックは VPC ロード・バランサー・インスタンスのパブリック浮動 IP アドレスに送信されるため、すべてのワーカー・サブネットに Public Gateway を接続する必要があります。 プライベート・サービス・エンドポイントのみを持つクラスターの場合、トラフィックは VPC ロード・バランサーの VPC サブネット
IP アドレスに送信されるため、 Public Gateway は必要ありません。 パブリック・サービス・エンドポイントを持つクラスターの場合:
ibmcloud is public-gatewaysを実行して、パブリック・ゲートウェイを表示します。ibmcloud is subnetsを実行して、サブネットを確認します。- サブネットごとに、
ibmcloud is subnet <subnet-id>を実行して、パブリック・ゲートウェイがあるかどうかを確認します。- サブネットにパブリック・ゲートウェイが接続されていない場合は、接続する必要があります。 詳しくは、 パブリック・ゲートウェイの作成 を参照してください。
- VPC ロード・バランサーがクラスターのワーカー・ノード以外のサブネットに配置されている場合は、VPC ロード・バランサー・サブネットに接続されているセキュリティー・グループを更新して、ワーカー・サブネットからの着信トラフィックを許可する必要があります。
- 詳しくは、 仮想プライベート・クラウドでの Red Hat OpenShift クラスターの作成、 VPC サブネットの構成 、および VPC セキュリティー・グループの作成と管理 を参照してください。
- ヘルス・チェック・トラフィックは、クラスターのいずれかのワーカー・ノードから発信されます。 パブリック・サービス・エンドポイントを持つクラスターの場合、トラフィックは VPC ロード・バランサー・インスタンスのパブリック浮動 IP アドレスに送信されるため、すべてのワーカー・サブネットに Public Gateway を接続する必要があります。 プライベート・サービス・エンドポイントのみを持つクラスターの場合、トラフィックは VPC ロード・バランサーの VPC サブネット
IP アドレスに送信されるため、 Public Gateway は必要ありません。 パブリック・サービス・エンドポイントを持つクラスターの場合:
-
UDP および TCP 経由のカナリアトラフィックや DNS トラフィックをブロックするファイアウォールルールがないことを確認してください。 VPC :カナリアトラフィックは、いずれかのワーカーノードから発信され、VPCを経由して Public Gateway へと流れ、VPCロードバランサーインスタンスのパブリック側に到達します。 この通信を許可するように VPC セキュリティー・グループを構成します。 詳細については、 「デフォルトでセキュアなクラスタVPCネットワークについて 」および「 VPCセキュリティグループの作成と管理 」を参照してください。 クラシック: カナリアトラフィックはワーカーノードのパブリックIPアドレスから発生し、クラシックロードバランサのパブリックIPアドレスに到着します。 この通信を許可するようにネットワーク・ポリシーを構成します。 詳細については、 クラシック・クラスタのネットワーク・ポリシーによるトラフィックの制御を 参照してください。
次のステップ
- 30 分待ってから、
oc get clusteroperator ingressコマンドを実行し、MESSAGE列を再度確認します。 - 別のエラー・メッセージが表示された場合は、トラブルシューティング手順を繰り返します。
- 問題が解決しない場合は、サポートにお問い合わせください。 サポート Case を開きます。 ケースの詳細には、関連するログ・ファイル、エラー・メッセージ、またはコマンド出力を必ず含めてください。