イングレスエラー:ERRESNF

Satellite

デフォルトのIngress Controllerの外部サービスが見つからない場合に、 ERRESNF のエラーを解決する方法について説明します。

ibmcloud oc ingress status-report ignored-errors add コマンドを使用して、無視されたエラーのリストにエラーを追加することができます。 無視されたエラーは、 ibmcloud oc ingress status-report get コマンドの出力には引き続き表示されますが、Ingress 全体の状況を計算する際には無視されます。

ibmcloud oc ingress status-report get コマンドを実行してクラスターの Ingress コンポーネントの状況を確認すると、以下のようなエラーが表示されます。

The external service is missing (ERRESNF).

デフォルトの Ingress コントローラーを公開するサービスがクラスターから欠落しています。

外部サービスを確認し、存在しない場合は作成してください。

  1. 外部サービスの詳細を取得します。

    oc get service -n openshift-ingress router-external-default
    
  2. 以下のコマンドを実行して、ワーカー・ノードの外部 IP アドレスを取得します。 「 EXTERNAL-IP 」列のアドレスをメモします。

    kubectl get nodes -o wide
    
  3. 以下のサービス構成を service.yaml という YAML ファイルとして保存します。

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        ingresscontroller.operator.openshift.io/owning-ingresscontroller: default
      name: router-external-default
      namespace: openshift-ingress
    spec:
      ports:
      - name: http
        port: 80
        protocol: TCP
        targetPort: http
      - name: https
        port: 443
        protocol: TCP
        targetPort: https
      selector:
        ingresscontroller.operator.openshift.io/deployment-ingresscontroller: default
      externalIPs:
      - x.x.x.x # Add your worker node external IP addresses.
    
  4. 先ほど取得したワーカー・ノードの外部 IP アドレスを spec.externalIPs リストに追加します。

  5. サービスを作成します。

    kubectl create -f service.yaml
    
  6. 10 分から 15 分待ってから、警告が解決されたかどうかを確認します。

  7. 問題が解決しない場合は、サポートにお問い合わせください。 サポート Case を開きます。 ケースの詳細には、関連するログ・ファイル、エラー・メッセージ、またはコマンド出力を必ず含めてください。