Citrix ADC ingress controller

トラブルシューティング

次の表に、一般的な問題と回避策の一部を示します。

問題 ログ 回避方法
Citrix ADC インスタンスに到達できません 2019-01-10 05:05:27 ,250-エラー-[nitrointerface.py: login_logout: 94] (メインスレッド) 例外:HttpConnectionPool (ホスト=’10.106.76.200’、ポート=80): URL: /nitro/v1/config/login で最大再試行回数を超えました (NewConnectionError (‘<urllib3.connection.HTTPConnection object at 0x7f4d45bd63d0>: 確立に失敗しました新しい接続:[Errno 113] host’ へのルートがありません、)) Citrix ADCが稼働していることを確認し、NSIPアドレスにpingを実行できることを確認します。
ユーザー名のパスワードが間違っています 2019-01-10 05:03:05 ,958 -エラー-[nitrointerface.py: login_logout: 90] (メインスレッド) ニトロ例外:: login_logout:: errorcode =354、メッセージ = 無効なユーザー名またはパスワード  
SNIP は管理アクセスでは有効になっていません 2019-01-10 05:43:03 ,418 -エラー-[nitrointerface.py: login_logout: 94] (メインスレッド) 例外:HttpConnectionPool (ホスト=’10.106.76.242’、ポート=80): URL: /nitro/v1/config/login (NewConnectionError (‘<URLLib3.connection.httpが原因で再試行回数が上回りました 0x7f302a8cfad にある pConnection オブジェクト0>: 新しい接続の確立に失敗しました:[Errno 110] 接続がタイムアウトしました’,) Citrix ADC(Citrix ADC VPX高可用性の場合)で管理アクセスを有効にし、 管理アクセスを有効にしてIPアドレスNSIPを設定していることを確認します
注釈の解析中にエラーが発生しました 2019-01-10 05:16:10 ,611-エラー-[kubernetes.py: set_annotations_to_csapp: 1040] (メインスレッド) set_annotations_to_csapp: エラーメッセージ=JSON オブジェクトをデコードできませんでした無効な注釈 $service_weights を修正して適用してください ${“frontend”:, “catalog”:95}  
NITRO アクセス用のポートが間違っています 2019-01-10 05:18:53 ,964-エラー-[nitrointerface.py: login_logout: 94] (メインスレッド) 例外:HttpConnectionPool (ホスト=’10.106.76.242’、ポート=34438): URL: /nitro/v1/config/login (NewConnectionError (‘<urllib3.connection.HTTPConnection object at 0x7fc592cb8b10>: が失敗したため)新しい接続を確立する:[Errno 111] 接続が拒否されました’,)) NITRO アクセスに正しいポートが指定されているかどうかを確認します。デフォルトでは、Citrix ingress controller は通信にポート80を使用します
Ingress クラスが間違っています 2019-01-10 05:27:27 ,149 -INFO -[kubernetes.py: get_all_ingresses: 1329] (メインスレッド) イングレスオブジェクト web-ingress に対してサポートされていないイングレスクラスです。デフォルト 入力ファイルが、Citrix Ingress Controllerが監視するIngressクラスに属していることを確認します。Citrix Ingress Controllerがリッスンするイングレスクラスについては、次のログを参照してください。
    ログ:2019-01-10 05:27:27 ,120-デバッグ-[kubernetes.py: __init__: 63] (メインスレッド) 許可されるイングレスクラス:
    2019-01-10 05:27:27 ,120-デバッグ-[kubernetes.py: __init__: 64] (メインスレッド) [‘vpxclass’]
Kubernetes API に到達できない 2019-01-10 05:32:09 ,729 -エラー-[kubernetes.py: _get: 222] (スレッド-1) /Services: httpsConnectionPool (ホスト=’10.106.76.237’、ポート=6443) の呼び出し中にエラーが発生しました:URL: /api/v1/services (NewConnectionError (‘<URLLib3.connectionによって引き起こされます。HttpsConnection オブジェクトが 0 で確認されましたx7fb3013e7dd0>: 新しい接続の確立に失敗しました:[Errno 111] 接続が拒否されました’,) kubernetes_url が正しいか確認してください。URL情報を取得するには、コマンドkubectl cluster-infoを使用します。Kubernetesメインノードがhttps://kubernetes_master_address:6443で実行され、Kubernetes API サーバ Pod が稼働していることを確認します。
YAML ファイルに不正なサービスポートが指定されています   Ingress YAML ファイルに正しいポートの詳細を指定し、問題を解決するために再適用します。
負荷分散仮想サーバとサービスグループは作成されるがダウンしている   YAML ファイルで使用されているサービス名とポートを確認します。Citrix ADC VPXの場合、CitCitrix ingress controller を起動するときに、--feature-node-watchtrueに設定されていることを確認します 。
Citrix ADC VPX用のCS仮想サーバーが作成されていません。   Citrix ADC VPX イングレスYAMLファイルで、アノテーションingress.citrix.com/frontend-ipを使用します。
Ingress YAML ファイルの TLS セクションに不正なシークレットが指定されています 2019-01-10 09:30:50 ,673-情報-[kubernetes.py: _get: 231] (メインスレッド) リソースが見つかりません:/secrets/default-secret12345 名前空間のデフォルト YAML ファイルの値を修正し、再適用して問題を解決します。
  2019-01-10 09:30:50 ,673-情報-[kubernetes.py: get_secret: 1712] (メインスレッド) アプリのシークレットを取得できませんでした default-secret12345.default  
feature-node-watch 引数は指定されていますが、静的ルートはCitrix ADC VPXに追加されません エラー-[nitrointerface.py: add_ns_route: 4495] (MainThread) ニトロ例外:: add_ns_route:: errorcode=604、メッセージ = ゲートウェイに直接到達できません このエラーは、feature-node-watchが有効で、Citrix ADC VPXとKubernetesクラスターが同じネットワーク内にない場合に発生します。Citrix ingress controller の YAML ファイルから- --feature-node-watch引数を削除する必要があります。Citrix ADC VPXとKubernetesクラスターが異なるネットワークにある場合、静的ルートは機能しません。Citrix ADC VPX とクラスタノード間にトンネルを作成するには、Citrix ノードコントローラーを使用します。
CRD ステータスが更新されない エラー-[crdinfrautils.py: update_crd_status: 42] (メインスレッド) negrwaddmuloccmod の CRD ステータス更新中の例外:403 クライアントエラー:URL では禁止されています: https://10.96.0.1:443/apis/citrix.com/v1/namespaces/default/rewritepolicies/negrwaddmuloccmod/status CRD ステータスをプッシュする権限が RBAC に与えられていることを確認します。パーミッションは次のようなものでなければなりません。
    - apiGroups: [“citrix.com”] resources: [“rewritepolicies/status”, “canarycrds/status”, “authpolicies/status”, “ratelimits/status”, “listeners/status”, “httproutes/status”, “wafs/status”]
Citrix ingress controller ベントが更新されない エラー-[clienthelper.py: post: 94] (MainThread) API サーバーへのリクエスト/イベントは禁止されています Citrix ingress controller Podイベントを更新する権限がRBACに与えられていることを確認します。
    - apiGroups: [””] resources: [“events”] verbs: [“create”]
書き換えレスポンダーポリシーが追加されない エラー-[config_dispatcher.py: __dispatch_config_pack: 324] (ディスパッチャー) ステータス:104、エラーコード:3081、理由:ニトロ例外:式の構文エラー [D (10, 20)。^RE_SELECT (, オフセット 15] < このようなエラーは、リライトレスポンダ CRD の表現が正しくないことが原因です。式を修正し、CRD を再適用します。
  エラー-[config_dispatcher.py: __dispatch_config_pack: 324] (ディスパッチャー) ステータス:104、エラーコード:3098、理由:ニトロ例外:式のデータ型が無効です [ent.ip.src^、オフセット 13]  
CRD の適用に失敗しました。Citrix ingress controller はCRDを一連の構成に変換し、Citrix ADCを指定されたCRDに従って目的の状態に構成します。構成が失敗すると、CRDインスタンスがCitrix ADCに適用されないことがあります。 2020-07-13 08:49:07 ,620 -エラー-[config_dispatcher.py: __dispatch_config_pack: 256] (ディスパッチャー) 設定を実行できませんでした add_sslProfile_k8s_crd_k8service_kuard-service_default_80tcp_backend {name: k8s_crd_k8service_kuard-service_default_80_tcp_backend SSLProfileType: バックエンド tls12: enabled}ConfigPack から ‘default.k8service.kuard-service.add_spec’ ログには、NITRO コマンドが失敗したことが示されます。Citrix ADC にも同じログが表示されます。Citrix ADC ns.logを確認し、grepコマンドを使用してエラー文字列を検索し、CRDの適用中に失敗したCitrix ADCコマンドを特定します。CRD を削除して、再度追加してみます。問題が再発した場合は、クラウドネイティブの Slack チャンネルで報告してください。
  2020-07-13 08:49:07 ,620 -エラー-[config_dispatcher.py: __dispatch_config_pack: 257] (ディスパッチャー) ステータス:104、エラーコード:1074、理由:ニトロ例外:無効な値 [SSLProfileType、値は既存のエンティティと異なり、更新できません。]  
  2020-07-13 08:49:07 ,620 -情報-[config_dispatcher.py: __dispatch_config_pack: 263] (ディスパッチャー) ConfigPack ‘default.k8service.kuard-service.add_spec’ の処理に失敗しました  

トラブルシューティング-Prometheus と Grafana の統合

問題 説明 回避方法
Grafana ダッシュボードにはプロットがありません Grafana ダッシュボードのグラフにプロットされた値がない場合、Grafana はデータソースから統計を取得できません。 Prometheus データソースが保存され、正常に動作しているかどうかを確認します。Name と IP を指定した後にデータソースを保存すると、 データソースが到達可能で検出されたことを示すData source is workingメッセージが緑色で表示されます。
    を使用してダッシュボードを作成する場合は sample_grafana_dashboard.json、Prometheus prometheus データソースに付けた名前が小文字の単語で始まることを確認します。
    Prometheus の Targets ページをチェックして、必要なターゲットエクスポーターがDOWN状態であるかどうかを確認します。
DOWN: コンテキストの期限を超えました Prometheus のいずれかのエクスポーターターゲットに対してメッセージが表示された場合、Prometheus はエクスポーターに接続できないか、指定されたscrape_timeout内のメトリクスをすべて取得できません。 Prometheus Operator を使用している場合、 scrape_timeout は自動的に調整され、エラーはエクスポーター自体に到達できないことを意味します。
    スタンドアロンの Prometheus コンテナまたは Pod を使用する場合は、 /etc/prometheus/prometheus.cfgファイル内のscrape_intervalおよびscrape_timeoutの値を増やして、メトリクスを収集する間隔を長くしてください。

トラブルシューティング-OpenShift 機能ノード監視

問題:OpenShift-OVN の使用中、CNI feature-node-watch は正しいルートを追加しません。

説明:Citrix ingress controller は、静的ルートを追加するために必要な詳細を取得するためのNodeアノテーションを探します。

回避策:回避策として次の手順を実行してください。

  1. OVN CNI を使用した OpenShift環境で実行するために、route.openshift.ioとともに以下の RBAC 権限がCitrix ingress controller に提供されていることを確認してください。

    - apiGroups: ["config.openshift.io"]
      resources: ["networks"]
      verbs: ["get", "list"]
    
  2. Citrix ingress controller は、OVNによって追加された次の2つの注釈を検索し、 それがクラスターノードに存在することを確認します。

    "k8s.ovn.org/node-subnets": {\"default\":\"10.128.0.0/23\"}",
    "k8s.ovn.org/node-primary-ifaddr": "{\"ipv4\":\"x.x.x.x/24\"}"
    
  3. 注釈が存在しない場合、feature-node-watch はOVN CNIでは機能しない可能性があります。その場合は、Citrix ADC VPXで静的ルートを手動で構成する必要があります。

問題:OpenShift-SDN CNI の使用中に、機能ノードウォッチが正しいルートを追加しない。

説明:Citrix ingress controller は、静的ルートを追加するために必要な詳細を取得するためにホストサブネットCRDを検索します。

回避策:回避策として次の手順を実行してください。

  1. SDN CNI を使用して OpenShift環境で実行するために、 route.openshift.ioとともに以下の RBAC 権限が Citrix ingress controller に提供されていることを確認してください。

    - apiGroups: ["network.openshift.io"]
      resources: ["hostsubnets"]
      verbs: ["get", "list", "watch"]
    - apiGroups: ["config.openshift.io"]
      resources: ["networks"]
      verbs: ["get", "list"]
    
  2. Citrix ingress controller は、次のCRDと仕様を検索します。

        oc get hostsubnets.network.openshift.io <cluster node-name> -ojson
    
        { "apiVersion": "network.openshift.io/v1",
            "host": <cluster node-name, 
            "hostIP": "x.x.x.x",
            "kind": "HostSubnet",
            "metadata": {
        "annotations": {
                        ...
        },
            "subnet": "10.129.0.0/23"
        }
    
  3. CRD が期待される仕様で存在しない場合、feature-node-watchはOpenShfit-SDN CNI では動作しない可能性があります。その場合は、Citrix ADC VPXで静的ルートを手動で構成する必要があります。

トラブルシューティング