10.3. Gateway API 設定に関する一般的な問題のトラブルシューティング


Red Hat OpenShift AI で Gateway API 設定に関連するエラーが発生した場合は、このセクションを読んで、問題の原因と解決方法を理解してください。

問題がこのドキュメントまたはリリースノートに記載されていない場合は、Red Hat サポートにお問い合わせください。

10.3.1. GatewayConfig のステータスが not ready と表示される

問題

OIDC のセットアップ中に、GatewayConfig のステータスが not ready と表示されます。OIDC 設定が見つからないというエラーメッセージが表示され、GatewayConfig リソースのステータスが Ready: False と表示されます。

診断

  1. 次のコマンドを実行して、GatewayConfig のステータスを確認します。

    $ oc get gatewayconfig default-gateway -o yaml
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、特定のエラーメッセージを確認します。

    $ oc describe gatewayconfig default-gateway
    Copy to Clipboard Toggle word wrap

    予想される出力では、Spec.Oidc の下の OIDC 設定の詳細が表示され、ReadyProvisioningSucceeded の両方のステータス条件が True ステータスで表示され、GatewayConfig リソースが正常にプロビジョニングされたことが確認されます。

  3. 次のコマンドを実行して、OIDC 設定が正しいことを確認します。

    $ oc get gatewayconfig default-gateway -o jsonpath='{.spec.oidc}'
    Copy to Clipboard Toggle word wrap

    予想される出力は次の例のようになります。

    {"clientID":"your-client-id","clientSecretRef":{"key":"clientSecret","name":"keycloak-client-secret"},"issuerURL":"https://keycloak.example.com/realms/your-realm"}
    Copy to Clipboard Toggle word wrap

解決方法

  1. 次のコマンドを実行して、OIDC シークレットが存在し、正しいことを確認します。

    $ oc get secret keycloak-client-secret -n openshift-ingress
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、OIDC 発行者 URL のアクセス可能性を確認します。

    curl -I https://your-keycloak-domain/realms/your-realm/.well-known/openid-configuration
    Copy to Clipboard Toggle word wrap

    予想される出力では、HTTP ステータスコード HTTP/2 200 と正しい content-type: application/json header を返すことで、OIDC 発行者 URL にアクセスできることを確認できます。

  3. クライアントシークレットが正しいことを確認します。

10.3.2. 認証プロキシーの起動に失敗する

問題

kube-auth-proxy をデプロイした後、認証プロキシーコンポーネントの起動に失敗します。関連付けられた Pod は失敗状態にあり、CrashLoopBackOffPending などのステータスが表示されており、kube-auth-proxy デプロイメントの準備ができていません。

診断

  1. 次のコマンドを実行して、kube-auth-proxy のデプロイメントステータスを確認します。

    $ oc get deployment kube-auth-proxy -n openshift-ingress
    Copy to Clipboard Toggle word wrap

    予想される出力では、デプロイメントが正常にプロビジョニングされたことが確認され、READY 列に 1/1 が表示されます。

  2. 次のコマンドを実行して、Pod ログを確認します。

    $ oc logs -l app=kube-auth-proxy -n openshift-ingress
    Copy to Clipboard Toggle word wrap

    予想される出力では、OAuth2 プロキシーが設定され、指定されたポートで起動していることを確認できます。

    # Expected output
    time="2024-01-15T10:30:00Z" level=info msg="OAuth2 Proxy configured"
    time="2024-01-15T10:30:00Z" level=info msg="OAuth2 Proxy starting on :4180"
    time="2024-01-15T10:30:00Z" level=info msg="OAuth2 Proxy starting on :8443"
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、Pod イベントにエラーがないか確認します。

    $ oc describe pod -l app=kube-auth-proxy -n openshift-ingress
    Copy to Clipboard Toggle word wrap

    予想される出力は、次の例のようになります。

    # Expected output
    Name:          kube-auth-proxy-7d4f8b9c6-xyz12
    Namespace:     openshift-ingress
    Status:        Running
    Containers:
      kube-auth-proxy:
        State:          Running
        Ready:          True
        Restart Count:  0
    Events:
      Type    Reason       Age   From                 Message
      ----    ------       ----  ----                 -------
      Normal  Scheduled    5m    default-scheduler    Successfully assigned openshift-ingress/kube-auth-proxy-7d4f8b9c6-xyz12 to worker-node-1
    Copy to Clipboard Toggle word wrap

解決方法

  1. 次のコマンドを実行して、認証シークレットに正しいクライアントシークレットが含まれていることを確認します。

    $ oc get secret kube-auth-proxy-creds -n openshift-ingress -o yaml
    Copy to Clipboard Toggle word wrap

    予想される出力には、OAUTH2_PROXY_CLIENT_SECRETOAUTH2_PROXY_COOKIE_SECRETOAUTH2_PROXY_CLIENT_ID キーが含まれている必要があります。

  2. 次のコマンドを実行して、クラスターから OIDC 発行者 URL にアクセスできるかどうかを確認します。

    curl -I https://your-keycloak-domain/realms/your-realm/.well-known/openid-configuration
    Copy to Clipboard Toggle word wrap

    予想される出力では、HTTP ステータスコード HTTP/2 200 が返されている必要があります。

  3. OIDC プロバイダーにクライアント ID が存在することを確認します。

10.3.3. Gateway にアクセスできない

問題

OIDC を設定した後、Gateway URL https://data-science-gateway.$CLUSTER_DOMAIN にアクセスできなくなります。URL にアクセスしようとすると、502 (Bad Gateway) または 503 (Service Unavailable) エラーが返され、サービスエンドポイントへの外部アクセスまたはトラフィックルーティングを妨げるネットワーク障害が示されます。

診断

  1. 次のコマンドを実行して、data-science-gateway の Gateway ステータスを確認します。

    $ oc get gateway data-science-gateway -n openshift-ingress
    Copy to Clipboard Toggle word wrap

    予想される出力では、PROGRAMMED 列が True と表示され、有効なアドレスが ADDRESS 列の下にリストされます。

  2. 次のコマンドを実行して、HTTPRoute のステータスを確認します。

    $ oc get httproute -n openshift-ingress
    Copy to Clipboard Toggle word wrap

    予想される出力には、oauth-callback-route が存在することが示されています。

  3. 次のコマンドを実行して、EnvoyFilter を確認します。

    $ oc get envoyfilter -n openshift-ingress
    Copy to Clipboard Toggle word wrap

    予想される出力には、authn-filter が存在することが示されています。

  4. 次のコマンドを実行して、kube-auth-proxy Service を確認します。

    $ oc get service kube-auth-proxy -n openshift-ingress
    Copy to Clipboard Toggle word wrap

    予想される出力には、次の例のように、Service と正しいポートが存在することが示されます。

    # Expected output
    NAME              TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)           AGE
    kube-auth-proxy   ClusterIP   172.30.31.69   <none>        8443/TCP,9000/TCP   41h
    Copy to Clipboard Toggle word wrap

解決方法

  1. 次のコマンドを実行して、Gateway に有効なアドレスがあることを確認します。

    $ oc get gateway data-science-gateway -n openshift-ingress -o jsonpath='{.status.addresses}'
    Copy to Clipboard Toggle word wrap

    予想される出力には、有効な IP アドレスまたはホスト名が表示されます。

  2. 次のコマンドを実行して、HTTPRoute が正しく設定されているか確認します。

    $ oc describe httproute oauth-callback-route -n openshift-ingress
    Copy to Clipboard Toggle word wrap

    予想される出力では、適切な親参照とバックエンドサービスを確認できます。

  3. 次のコマンドを実行して、EnvoyFilter が正しく適用されていることを確認します。

    $ oc describe envoyfilter authn-filter -n openshift-ingress
    Copy to Clipboard Toggle word wrap

    予想される出力では、kube-auth-proxy の適切な設定を確認できます。

10.3.4. OIDC 認証が失敗する

問題

OIDC 認証が失敗し、Gateway 経由でログインできません。ログインを試みた後、リダイレクトループや明示的な認証エラーなどの現象も発生します。

診断

  1. 次のコマンドを実行して、kube-auth-proxy ログで特定のエラーメッセージを確認します。

    $ oc logs -l app=kube-auth-proxy -n openshift-ingress
    Copy to Clipboard Toggle word wrap

    予想される出力では、OAuth2 プロキシーが設定され、指定されたポートで起動していることを確認できます。

  2. 次のコマンドを実行して、kube-auth-proxy シークレットの OIDC 設定を確認します。

    $ oc get secret kube-auth-proxy-creds -n openshift-ingress -o yaml
    Copy to Clipboard Toggle word wrap

    予想される出力には、シークレットに OAUTH2_PROXY_CLIENT_IDOAUTH2_PROXY_CLIENT_SECRETOAUTH2_PROXY_COOKIE_SECRET キーが含まれていることが示されています。出力は次の例のようになります。

    # Expected output
    apiVersion: v1
    kind: Secret
    metadata:
      name: kube-auth-proxy-creds
      namespace: openshift-ingress
    type: Opaque
    data:
      OAUTH2_PROXY_CLIENT_ID: b2RoLWNsaWVudA==  # base64 encoded "data-science"
      OAUTH2_PROXY_CLIENT_SECRET: <base64-encoded-secret>
      OAUTH2_PROXY_COOKIE_SECRET: <base64-encoded-cookie-secret>
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、OIDC 検出エンドポイントをテストします。

    curl -s https://your-keycloak-domain/realms/your-realm/.well-known/openid-configuration | jq .
    Copy to Clipboard Toggle word wrap

    予想される出力では、issuerauthorization_endpointtoken_endpoint の有効なエンドポイントを含む完全な JSON 設定が返されます。

解決方法

  1. OIDC プロバイダー (Keycloak など) にログインし、クライアントに登録されているリダイレクト URI が Gateway 上の予想されるエンドポイント (https://data-science-gateway.$CLUSTER_DOMAIN/oauth2/callback) と一致していることを確認します。不一致は、リダイレクトループのよくある原因です。
  2. 次のコマンドを実行して、クライアントシークレットが正しく設定されているか確認します。

    echo $KEYCLOAK_CLIENT_SECRET | base64 -d
    Copy to Clipboard Toggle word wrap

    予想される出力は、OIDC プロバイダーのシークレットと一致します。

  3. 次のコマンドを実行して、発行者 URL がアクセス可能であり、正しいことを確認します。

    curl -I https://your-keycloak-domain/realms/your-realm/.well-known/openid-configuration
    Copy to Clipboard Toggle word wrap

    予想される出力は HTTP/2 200 を返します。

10.3.5. 認証後、ダッシュボードにアクセスできない

問題

OIDC で正常に認証された後、認可エラーが発生し、ダッシュボードにアクセスできなくなります。この失敗により、ダッシュボードにアクセスする際に 403 Forbidden エラーが発生します。

  1. 次のコマンドを実行して、odh-dashboard のデプロイメントステータスを確認します。

    $ oc get deployment -n redhat-ods-applications rhods-dashboard
    Copy to Clipboard Toggle word wrap

    予想される結果では、次の例のように、Pod が実行されていることを確認できます。

    NAME            READY   UP-TO-DATE   AVAILABLE   AGE
    rhods-dashboard   2/2     2            2          7h42m
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、ダッシュボードログで認可エラーがないか確認します。

    $ oc logs -l app=rhods-dashboard -n redhat-ods-applications
    Copy to Clipboard Toggle word wrap

    予想される出力では、ダッシュボードが実行中であり、リクエストを処理する準備ができていることをログで確認できます。

  3. 次のコマンドを実行して、ユーザー権限を確認します。

    $ oc auth can-i get projects --as=your-username
    Copy to Clipboard Toggle word wrap

    予想される出力では、ユーザーに必要なアクセス権があることを確認できます。

解決方法

  1. 次のコマンドを実行して、クラスターレベルの RBAC 権限があることを確認します。

    $ oc adm policy add-cluster-role-to-user view your-username
    Copy to Clipboard Toggle word wrap

    予想される出力では、ビュークラスターロールがユーザーに追加されたことを確認できます。

  2. 次のコマンドを実行して、odh-dashboard HTTPRoute が正しい親参照 (Gateway にリンク) で適切に設定されていることを確認します。

    $ oc get httproute rhods-dashboard -n redhat-ods-applications -o yaml
    Copy to Clipboard Toggle word wrap

    予想される出力には、Gateway への適切な親参照が表示されます。

  3. ダッシュボードが必要とするロールがバインドされている可能性のある、期待されるグループにユーザーが属しているか確認します。

    $ oc get user your-username -o yaml
    Copy to Clipboard Toggle word wrap

    予想される出力では、ユーザーが odh-users グループに属していることを確認できます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat