CRDのエンティティ名の変更

最終公開日 : Oct 02, 2026
NetScalerカスタムリソース定義 (CRD) インスタンスが作成されると、NetScaler Ingress Controllerは、そのCRDインスタンスに関連付けられた複数のNetScalerエンティティを生成します。NetScaler Ingress Controllerは、CRDインスタンスとの関連付けを維持するために、各エンティティに一意の名前を保持します。エンティティの命名はCRD名に直接基づいているため、一部のNetScalerエンティティ名が最大文字数制限を超えていました。
NetScaler Ingress Controller 4.0.x以降、CRD作成時に短いエンティティ名を生成するために、次のアプローチを使用して命名規則が最適化されています。
  • ハッシュ化された命名: エンティティ名の一部がハッシュ化され、全体の長さが短縮されます
  • 保持される情報: エンティティコメントがNetScalerでサポートされている場合、必要なKubernetes関連のメタデータはエンティティのコメントフィールドに保持されます
  • 互換性の向上: 名前はNetScalerの文字制限に準拠し、完全なトレーサビリティを維持します
NetScaler Kubernetes Ingress Controller 4.1.x以降、エンティティ名に関して以下の機能強化が行われています。
  1. ハイフンをアンダースコアに置換: CRD名と名前空間内のすべてのハイフンは、エンティティ名ではアンダースコアに変換されます (GSLBエンティティを除く)。
    • 例: route-for-all → route_for_all
    • 例: other-namespace → other_namespace
  2. LBvserverの命名を簡素化: 名前には一意性を確保するためのハッシュが含まれます。
    • 旧: k8s_crd_k8shttproute_route-for-all_other-namespace_0_lb
    • 新: k8s_c15_route_for_all_other_name_http_MFRGGZDFMY4TMZLDGE4TCMZWGIZQYNR2GEZDGNBVGY3TQOJQ
  3. GSLBエンティティはハイフンを保持: GSLB関連エンティティ (gslbservicegroup, gslbvserver) はハイフンを保持します。
    • 例: cocacola-com は cocacola-com のままです (cocacola_comには変換されません)
以下の表は、NetScaler Ingress Controller バージョン 4.0.x リリースで導入されたエンティティ名の変更について説明しています。
エンティティ名 古い命名形式 新しい命名形式
アップエフダブリューポリシー k8s_crd_waf_wafbasicdefault k8S_c21_wafbasic_default_DTUHVZOZSCSV4SPAPPQPZSON6VF656I6JSHGRVAB5SCMU6AC5HNA
アップエフダブリュープロファイル k8s_crd_waf_wafbasicdefault k8s_c21_wafbasic_default_UXHDUNMOOGVVLEMJ3QRBQSZE24UN2NYR223J365CFRGKLQUZYJQQ
アップエフダブリューシグネチャ k8s_crd_waf_wafbasicdefault k8s_c21_wafbasic_default_WNORDMGMY2XDLGL6QBJB27EIM5YWKRGECIXDESDKYJ23IBIUQ6HA
アップキューオーイーアクション k8s_crd_appqoepolicy_aqaction_targeturlappqoe_0_default k8s_c02_targeturlappqoe_default_IYTOAY6HRWAJQDMHDS3KNLTACGGJEZXZTW4CKQRCD33ALSFZTALQ
アプリケーションQoEポリシー k8s_crd_appqoepolicy_aqpolicy_targeturlappqoe_0_default k8s_c02_targeturlappqoe_default_L3LV3IFDRMXAMDK3IIKAR3HLIM5CNRUYDS36ONBGX5TV7XXWTYFA
監査メッセージアクション k8s_crd_rewritepolicy_rwaudmesaction_multipolicy1_1_default k8s_c17_multipolicy1_default_P6NUHC62V4KJE442YEVGOMTBJWANVCQ4KTXUURS4SEVD4V2PQUQQ
認証LDAPアクション k8s_crd_authpolicy_authhotdrinks_ldap-auth-provider_1_default k8s_c03_authhotdrinks_default_TZZOEQ2I5R5U7RFHNK5IPPOQCIXP2O4R6P4ZMCMZMXIOLCPTCMFA
認証ログインスキーマ k8s_crd_authpolicy_autht1_lp_jwt-auth-provider_1_default k8s_c03_autht1_default_2XOCNX67BWBEASZ7V3TT3BJTUOFILRZ6UYTRUH6DS3CRUPATPOMA
認証ログインスキームポリシー k8s_crd_authpolicy_autht1_lp_jwt-auth-provider_1_default k8s_c03_autht1_default_2XOCNX67BWBEASZ7V3TT3BJTUOFILRZ6UYTRUH6DS3CRUPATPOMA
認証OAuthアクション k8s_crd_authpolicy_autht1_authpolicy_1_default k8s_c03_autht1_default_LOJ53HJPDB56SFB67CJ6NBBTO3XC7NHQ54SCP4MMWSBGJR5QS3LQ
認証ポリシー k8s_crd_authpolicy_authhotdrinks_authpolicy_1_default k8s_c03_authhotdrinks_default_GMA6HKR4ZM6LGWQZ7RNLDCRB3TXWSUFBEHEE3TVOJTXZO6DKYDTQ
認証SAMLアクション k8S_crd_authpolicy_authhotdrinks_saml-auth-provider_1_default k8s_c03_authhotdrinks_default_UODCZMVDCPIFBZXWP3BBV2RCWWXGF3ZRZ4V3UED2W4HNI6POBVXQ
認証vServer k8s_crd_authpolicy_aaa_FormsName_authvsrv k8s_c03_authhotdrinks_default_4X6TDA5WAIGTDSFED56OC526NQQAMV76DHKZOETVJRWMURP4AJ4Q
認可ポリシー k8s_crd_authpolicy_authhotdrinks_authzpolicy_1_default k8s_c03_authhotdrinks_default_C7HVMV336LZ2IS6WRQQLY2N3ETNQN22DBY4LD7AHSXV7YKQ2JLYQ
ボットポリシー k8s_crd_bot_btdefault k8s_c04_SBKZMNXAVR4HHP
ボットポリシーラベル k8s_crd_bot_btdefault k8s_c04_SBKZMNXAVR4HHP
ボットプロファイル k8s_crd_bot_btdefault k8s_c04_SBKZMNXAVR4HHP
ボットシグネチャ k8s_crd_bot_btdefault k8s_c04_SBKZMNXAVR4HHP
コンテンツインスペクションアクション k8s_crd_icappolicy_exampleicappolicy_ci-action_0_default k8s_c12_exampleicappolicy_default_MCQ3EFMGPJXSE2O7FFCJNL347VB6PNZTBAQZMGW4DOHBBE4MNE
コンテンツインスペクションポリシー k8s_crd_icappolicy_exampleicappolicy_ci-policy_0_default k8s_c12_exampleicappolicy_default_MI33BP5BZP7ZKXMIBXD4A6ZZNRQG5YS4ZRXUQI3N34KVDZ4UG7
CSアクション k8s_crd_k8shttproute_route-for-all_other-namespace_0 k8s_c15_route_for_all_other_name_NSOCBGCEIEMS3U2K..._0
CSポリシー k8s_crd_k8shttproute_route-for-all_other-namespace_0 k8s_c15_route_for_all_other_name_D74FE2SLZD7KJP..._0
CS仮想サーバー k8s_crd_Listener_10.1.3.1_80_http k8s_c14_my_listener_default_10.1.3.1_80_http
GSLBサービスグループ k8s_crd_globaltrafficpolicy_cid_east_cluster1_default_cold1_cocacola-com k8s_c10_cid_east_cluster1_cold1_default_cocacola_com_0_HTTP
GSLBvサーバー k8s_crd_globaltrafficpolicy_default_cold1_cocacola-com k8s_c10_cold1_default_cocacola_com_0_HTTP
IPセット k8s_crd_Listener_1.1.1.1_443_ssl_ipset k8s_c14_my-listener_default_HTDWUDXLSZW2UM6UX4X3MGVUPWTINT7YVANRWA_ipset
LBモニター k8s_crd_globaltrafficpolicy_RZHNBQRQKJYYRRY6NXQ2MM6QVMQPCJ6C3PL k8s_c10_cold1_default_ATG3IPNGAVACEEMIYRZIVYYFNKXVCKXI66C5RISIXAHXQIGGS5RA
LBvサーバー k8s_crd_k8shttproute_route-for-all_other-namespace_0_lb k8s_c15_route_for_all_other_name_http_MFRGGZDFMY4TMZLDGE4TCMZWGIZQYNR2GEZDGNBVGY3TQOJQ
NS HTTPプロファイル k8s_crd_Listener_10.1.3.1_80_http k8s_c14_my-listener_default_10.1.3.1_80_http
エヌエスアイシーアッププロファイル k8s_crd_icappolicy_exampleicappolicy_icap-profile_0_default k8s_c12_example_default_PJZLCPKQX6PPR6Y57O37PYBEHD6PT2YSRKPC4JNPBLTD2
エヌエスリミットアイデンティファイア k8s_crd_ratelimit_default_throttle_apis_codecov k8s_c17_throttle_default_HUADSDGHAHJKSHUBSD
エヌエスティーシーピープロファイル k8s_crd_Listener_10.1.3.1_80_http k8s_c14_my-listener_default_10.1.3.1_80_http
ポリシーデータセット k8s_crd_rewritepolicy_dataset_multipolicy3_0_default_redirectIPs k8s_c17_multipolicy3_default_6NGFYEUJWIQOOO5ZUUKSGVMIP6O3BNPJIZ5OTWAXPVCLCC5GEZRA
ポリシーエイチティーティーピーコールアウト k8s_crd_httpcallout_dbf2bfba k8s_c17_DD6U4WGWATNEL7
ポリシーパターンセット k8s_crd_authpolicy_authhotdrinks_authpatset_1_default k8s_c03_authhotdrinks_default_SHZXI2Z3WFHEZVA5BDAJ53R7TZSEUFJXSKRN5YQCRAZSO5V4N4SA
ポリシーストリングマップ k8s_crd_rewritepolicy_stringmap_basicconfig_0_default_s1 k8s_c17_basicconfig_default_XBMDW6QHZINFHIWFRLWHHGAAWOXTDIGJQTLNZST3MVYOY2QYFYSQ
レスポンダーアクション k8s_crd_rewritepolicy_respaction_basicconfig_0_default k8s_c17_basicconfig_default_ZOHREQM7YYCY3CZ7IOP7YLSVDKVDRPMJYAHG4ODFY76R3ZFOR74Q_rw
レスポンダーポリシー k8s_crd_rewritepolicy_resppolicy_basicconfig_0_default k8s_c17_basicconfig_default_YTSRW4EDTQ5HEQKXD6SDS2KOBO7N26P5HQCIQHCS5GV3YXOI473A
リライトアクション k8s_crd_k8shttproute_my-httproute_default_urlrewrite_host_0_0 k8s_c15_my_httproute_default_YDWIG6X..._urlrw_host_0_0
リライトポリシー k8s_crd_rewritepolicy_rwpolicy_multipolicy1_0_default k8s_c17_multipolicy1_default_AY2LPEUWN6JPESA4L4RO7FZTQJ7P66CVA4NW2LHHR3IJF6GJWKVA
サービスグループ k8s_crd_icappolicy_exampleicappolicy_icap-sg_0_default k8s_c12_exampleicappolicy_default_GD3T7QZNKV5EDOYDI2KBB5JTPM4EMBLATOUJVZMGVX7WJNCQAN
SSL暗号 k8s_crd_Listener_1.1.1.1_443_ssl k8s_c14_DZ5VMPYNSHVTTYF26BTLAS
SSLプロファイル k8s_crd_Listener_10.1.3.1_443_ssl k8s_c14_my_listener_default_10.1.3.1_443_ssl
SSL仮想サーバー k8s_crd_Listener_10.1.3.1_443_ssl k8s_c14_my_listener_default_10.1.3.1_443_ssl
ストリームセレクター k8s_crd_ratelimit_default_throttlecoffeeperclientip k8s_c17_throttle_default_HUADSDGHAHJKSHUBSD

アップグレードシナリオ

NetScaler Ingress Controllerの以前のバージョンからバージョン4.0.xにアップグレードすると、NetScaler Ingress Controllerは、すべてのエンティティを新しい命名形式で名前変更します。アップグレード中、エンティティが削除および再作成されるため、トラフィックが中断され、ダウンタイムが発生します。
注:
NetScaler Ingress Controllerは、最新バージョンから以前のバージョンへのダウングレードを処理しません。

NetScaler Ingress Controllerをバージョン4.0.xからバージョン3.x.xにダウングレードする

Citrix CRD構成を保持しながらNetScaler Ingress Controllerを安全にダウングレードするには、次の手順を実行します。
  1. すべてのCitrix CRDインスタンスをバックアップします。このコマンドは、すべての名前空間からすべてのCitrix CRDインスタンスを、適切なドキュメント区切り文字を含む単一のYAMLファイルにバックアップします。
    rm -f all_crd_instances.yaml
    for crd in $(kubectl get crds -o jsonpath='{.items[*].metadata.name}' | tr ' ' '\n' | grep 'citrix.com'); do
    echo "Getting instances for CRD: $crd"
    kubectl get $crd --all-namespaces -o name | while read resource; do
        kubectl get $resource -o yaml
        echo "---"
    done >> all_crd_instances.yaml
    done
    バックアップファイルが作成されたことを確認します。
    ls -lh all_crd_instances.yaml
  2. 次のコマンドを使用して、既存の展開からCRDインスタンスを削除します。
    kubectl delete -f all_crd_instances.yaml
  3. NetScaler Ingress Controllerが削除イベントを処理し、関連リソースをクリーンアップできるようにします。
    kubectl logs -n <nsic-namespace> <nsic-pod-name> -f
  4. NetScaler Ingress Controllerの展開を目的の3.x.xバージョンに更新して、NetScaler Ingress Controllerをダウングレードします。
    # Example: using Helm
    helm upgrade nsic citrix/citrix-ingress-controller --version <3.x.x-version>
    # Or: using kubectl
    kubectl set image deployment/nsic nsic-container=<image:3.x.x-tag> -n <nsic-namespace>
  5. ダウングレードされたNetScaler Ingress Controllerポッドが稼働し、準備が整ったら、バックアップされたCRDインスタンスを復元します。
    kubectl apply -f all_crd_instances.yaml