Kubernetes 検出

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む47読むのに数分
  • ServiceNow ITOM ヴィジビリティKubernetes および OpenShift のコンポーネントを検索し、それらを含むアプリケーションサービスを作成します。また、ディスカバリーKubernetes イベントも検索し、CMDB を頻繁に更新して Kubernetes 環境を動的に反映します。

    ディスカバリーKubernetes パターンとその拡張セクションを使用して、Kubernetes バージョン 1.21 の Kubernetes コンポーネントを検出します。
    • Kubernetes パターンの Collect OpenShift info 拡張セクションでは、Kubernetes 展開における OpenShift コンポーネントを検出します。OpenShift Build Config 拡張セクションは、2019 年 10 月リリースのストアバージョン 1.0.53 から使用できます。これは、Now Platform London パッチ 10、Madrid パッチ 5、および New York でサポートされています。
    • Service Mesh 拡張では、サービスメッシュの詳細を検出します。この情報により、「Connects to::Connected」として表示されるサービス対サービス関係を作成するパターンが有効になります。サービスメッシュの検出には、Istio を K8 (Kubernetes) クラスターに展開する必要があります。サービスメッシュ拡張セクションは、Kubernetes 拡張クラスで利用可能です。Madrid リリース以降を使用する Now Platform でサポートされています。
    • Collect Container Repository と拡張のセクションでは、これらのレジストリー内のコンテナーレジストリーとイメージを検索します。

    さらに、ディスカバリーKubernetes イベントパターンを使用して、Kubernetes バージョン 1.21 の Kubernetes コンポーネントのイベントを検出します。

    ServiceNow Store の 1.0.68 リリースから、サービスマッピング は CI 関係を使用して、タグベースの検出中にアプリケーションサービスに Kubernetes コンポーネントを追加できるようになりました。

    ディスカバリー は、GCP、AWS、および Azure に展開された Kubernetes インフラストラクチャ全体を検出するために次のパターンを使用します。
    • Google Cloud Platform (GCP) - Kubernetes Discovery and Schedule Creator。 リリースバージョン:1.0.89 - 2022 年 4 月。
    • Amazon Web Services (AWS) - Kubernetes Discovery and Schedule Creator。リリースバージョン:1.0.90 - 2022 年 5 月。
    • Microsoft Azure クラウドコンピューティングサービス Kubernetes - Discovery and Schedule Creator。リリースバージョン:1.0.91 - 2022 年 7 月。
    これらのパターンはクラウドにクエリを実行し、すべての Kubernetes クラスターのデータを収集して、クラスターごとにサーバーなしスケジュールを作成します。クラスターが削除されると、スケジュールは非アクティブとしてマークされます。この機能により、クラスターごとに複数の資格情報とサーバーなし検出スケジュールを作成および管理するオーバーヘッドがなくなります。クラウドインフラストラクチャパターンは、標準的なクラウド検出によってトリガーされます。

    ストアでアプリを要求する

    ServiceNow Store Web サイトにアクセスして利用可能なすべてのアプリを表示し、ストアにリクエストを送信する方法について確認してください。リリースされたすべてのアプリのリリースノート情報については、「ServiceNow Storeバージョン履歴のリリースノート」を参照してください。

    必須条件

    注:
    Kubernetes クラウドインフラストラクチャ検出の前提条件については、次を参照してください。
    注:
    自動サーバーなし Kubernetes スケジュールを実行すると、ベアラートークンがフェッチされます。資格情報の追加は不要です。
    次の手順を実行して、ディスカバリー が パターンを使用して Kubernetes を正常に検出できることを確認します。
    1. ServiceNow Store から最新の Discovery and Service Mapping Patterns アプリケーションを展開します。
    2. Kubernetes プラットフォームで、Kubernetes 検出を設定するパラメーターを検索します。
      • kubeapi サーバーの URL を見つけます。
        1. Kubernetes プラットフォームで、次のコマンドを実行します。

          kubectl cluster-info

        2. 出力で、kubeapi サーバーの URL を示す行を見つけます。たとえば、 Kubernetes コントロールプレーンは次のサイトで実行されます。

          https://10.154.144.146:443

      • kubeapi サーバーの名前空間を見つけます。
        1. Kubernetes プラットフォームで、次のコマンドを実行します。

          kubectl get namespaces

        2. 出力で、名前空間を示す行を見つけます。例:kube-system
      • Kubernetes のユーザー名とパスワードを見つけます。
        1. Kubernetes プラットフォームで、次のコマンドを実行します。

          kubectl config view

        2. 出力で、ユーザー名とパスワードを見つけます。パスワードとユーザー名に関する情報を含む行を見つけます。
          注:
          特定の環境で kubectl config view コマンドが予想される詳細を表示しない場合は、 Kubernetes admin からサポートされているコマンドを使用してユーザー名とパスワードの詳細を取得します。
      • 適切な権限を持つ有効なベアラートークンを見つけます。
        1. デフォルトのトークン名がない場合は、 コマンド kubectl describe secret を使用します。
        2. 出力にはすべてのアカウントとすべてのトークンが表示されます。有効なトークンを見つけます。

          kubectl は汎用 Kubernetes アカウントで、describe は汎用 kubectl メソッドです。

          secret パラメーターは、Kubernetes クラスターにおいて、デフォルトトークンをタイプ secret のオブジェクトに含めて保護することを表しています。

          kubectl describe secret コマンドの出力は BASE64 エンコード形式です。

        3. デフォルトのトークン名がわかっている場合は、kubectl describe secret default-token-g6pwc コマンドを使用します。

          default-token-g6pwc は、g6pwc のデフォルトトークンのパラメーター値を反映します。

        4. 出力には、この Kubernetes アカウントの既存のトークンがすべて表示されます。

          ServiceNow プラットフォームで、Kubernetes 資格情報を構成するために使用するトークンを 1 つ選択します。

    3. Kubernetes 検出を成功させるために、API サーバーが MID Server から到達可能であることを確認します。
    4. Kubernetes プラットフォームで構成されたユーザーに、次の /api/v1 要素を実行する権限があることを確認します。
      • https://<url>/api/v1/namespaces/
      • https://<url>/api/v1/namespaces/<namespace>
      • https://<url>/api/v1/namespaces/kube-system/endpoints/kube-controller-manager
      • https://<url>/api/v1/services
      • https://<url>/api/v1/pods
      • https://<url>/api/v1/nodes
      • https://<url> /api/v1/replicationcontrollers
      • https://<url> /apis/networking.k8s.io/v1/ingresses
      • https://<url> /apis/apps/v1/deployments
      • https://<url> /apis/apps/v1/statefulsets
      • https://<url> /apis/apps/v1/daemonsets
      • https://<url> /apis/apps/v1/replicasets
      • https://<url> /apis/batch/v1/cronjobs
      • https://<url> /apis/batch/v1/jobs
    5. Kubernetes 展開の OpenShift コンポーネントを検出するには、Kubernetes プラットフォームで構成されたユーザーに、次の /api/v1 要素を実行する権限があることを確認します。
      • /apis/apps.openshift.io/v1/deploymentconfigs
      • /apis/build.openshift.io/v1/buildconfigs
      • /apis/route.openshift.io/v1/routes
      • /apis/user.openshift.io/v1/groups
      • /apis/user.openshift.io/v1/users
      • /apis/project.openshift.io/v1/projects
      • /apis/image.openshift.io/v1/images
      • /apis/image.openshift.io/v1/imagestreams
      サービスメッシュ情報を検出するには、次を実行します。
      • Istio を K8 クラスターに展開します。
      • Prometheus URL を入力します。
      • Prometheus を、Istio の測定基準を取り除くように設定します。
    6. [Kubernetes 構成ファイルを取得 (Get Kubernetes Config Files] 拡張をアクティブ化して、以下を実行します。
      • 構成ファイルを検出する。
      • 記録対象構成ファイルを作成する。
      • その構成ファイルを、関係を含むワークロードとサービスにマッピングする。
      注:
      記録対象ファイルのコンテンツは、バージョン 1.0.92 以降では JSON 形式です。記録対象ファイルのコンテンツは、バージョン 1.0.91 以前では YAML 形式です。
    7. ServiceNow プラットフォームに Kubernetes 資格情報を作成します。
      1. プラットフォームで、次の場所に移動します。ServiceNow すべて > ディスカバリー > 認証情報.
      2. [新規] を選択します。
      3. [Kubernetes 資格情報] を選択します。
      4. フォームフィールドを設定します (表を参照)。
        フィールド 説明
        名前 この資格情報のわかりやすい一意の名前を入力します。
        ユーザー名 [資格情報] テーブルに、作成するユーザー名を入力します。ユーザー名の先頭または末尾にはスペースを使用しないでください。プラットフォームでユーザー名の先頭または末尾のスペースが検出されると、警告が表示されます。
        パスワード この資格情報のパスワードを入力します。
        ベアラートークン ベアラートークンを使用した高度な認証の場合は、 へのアクセスKubernetes時に認証に使用するベアラートークンディスカバリーを入力します。31ada4fd-adec-460c-809a-9e56ceb75269 などの文字シーケンスをトークンとして使用します。
        注:
        ベアラートークンは BASE64 エンコード形式である必要があります。
        ベアラートークン認証 ベアラートークンを使用する高度な認証の場合は、このチェックボックスをオンにします。
        資格情報エイリアス エイリアスを構成すると、Kubernetes 以外のデバイスやアプリケーションに Kubernetes 資格情報を使用できます。またこのエイリアスを使用して、Kubernetes 展開を検出するためのサーバーなし検出スケジュールを定義できます。
        1. 南京錠アイコンを選択し、検索アイコンを選択します。
        2. [接続 & 資格情報エイリアス] フォームで、[新規] をクリックします。
        3. 資格情報エイリアスレコードの名前を指定します。
        4. エイリアスの属性を定義します。[Type] を [資格情報] に設定します。
        5. フォームヘッダーを右クリックし、[保存] を選択してから [更新] を選択します。
        6. 接続 & 資格情報エイリアスフォームで、新たに追加したエイリアスを選択します。

          [資格情報エイリアス] フィールドにエイリアスが表示されます。

      5. Kubernetes 資格情報フォームで、[更新] を選択します。
    8. Kubernetes パターンに対するサーバーなし検出スケジュールを作成します。
      製品ドキュメントに記載されているとおりにサーバーなし実行パターンを作成して定義します。Kubernetes パターンで必要となるパラメーターを次のように設定します。
      表 : 1. 実行パターン属性の構成
      フィールド 説明
      url ホスト名、IP または FQDN、および Kubernetes API サーバーのポートの識別子。example_hostname:example_port または example_ip:example_port の形式を使用します。正しいプロトコル (HTTP または HTTPS) を URL に入力します。
      namespace Kubernetes Discovery の構成でシステムから渡された名前空間。次のいずれかの値を入力します。
      • 個別の名前空間:名前空間を入力してから「kube-system」を入力します。例:dev,kube-system
      • デフォルト値:「default, kube-system」と入力します。
      • マルチパイル名前空間:名前空間を入力し、カンマ (,) を使用して値を区切り、「kube-system」と入力します。例:automation,application,test,kube-system
      • すべての名前空間:すべての名前空間を入力するには、アスタリスク (*) を使用します。
      資格情報エイリアス 以前に作成した Kubernetes 資格情報に関連付けられたエイリアス。
      クラスター名 <serviceaccountid><space><clustername> 形式での Kubernetes クラスターの名前。
      provider クラウドプロバイダー:GCP または AWS または Azure。
    9. Kubernetes イベントパターンに対するサーバーなし検出スケジュールを作成します。5 分または 10 分おきに実行するようにスケジュールを設定します。
      注:
      パターンが初めて実行されると、event_timestamp が保存されます。後で、タイムスタンプに基づいてデルタイベントのみを収集します。パターンが頻繁に実行されると、必要な CMDB IRE の更新が少なくなります。

      検出スケジュールに対してサーバーなし実行パターンを作成し、それを Kubernetes イベントのパターンに割り当てます。「実行パターン属性の構成」で述べたように、Kubernetes パターンで必要となるパラメーターを構成します。

    10. 検出されたコンポーネントをアプリケーションサービスに含めるには、サービスマッピング によるタグベースの検出で使用される CI 関係を有効にします。これらの CI 関係は、ServiceNow Store の 1.0.68 リリースから利用可能です。操作手順については「タグベースの検出の構成」を参照してください。

    Kubernetes クラウドインフラストラクチャ検出の前提条件

    Google Cloud Platform (GCP)Kubernetes Discovery and Schedule Creator パターンの場合は、次を実行します。

    1. ServiceNow インスタンスで、有効な資格情報と権限で Google Cloud Platform (GCP) サービスアカウントを設定します。
    2. GCP インフラストラクチャで、 MID サーバー にすべてのクラウド API へのフルアクセスを設定します。 [クラウド API アクセススコープ (Cloud API access scopes)] を [すべてのクラウド API へのフルアクセスを許可 (Allow full access to all Cloud APIs)] に設定します。MID Server インスタンスは、プロジェクト固有のクラスターにのみアクセスできます。
    3. sys_properties.list に移動し、次のプロパティを設定します。
      • sn_itom_pattern.k8s_midserver:有効な MID Server 名を指定します。
      • sn_itom_pattern.k8s_create_schedule_enabled:値を true に設定します。
    4. API を使用してサーバーなしスケジュールを作成するには、 KB1168613 に添付されている更新セットをインポートします (Tokyo より前のリリースバージョンのみ)。
    5. Google Cloud ディスカバリー を作成して実行します。
      注:

      ベアラートークンをフェッチするには、GKE Kubernetes スケジュールの実行中に gcloud コマンドを使用します。

      gcloud config config-format="value(credential.access_token)"

      MID Server インスタンスで gcloud を構成すると、GKE クラスターにトークンをフェッチするためのアクセス権が付与されます。

    Amazon Elastic Kubernetes Service (EKS) クラスター検出では、次を実行します。

    1. ServiceNow インスタンスで、有効な管理アカウントの資格情報と権限で AWS サービスアカウントを設定します。
      1. Amazon Elastic Kubernetes Service (EKS) クラスターに、すべてのリソースへの読み取り専用アクセス権を持つクラスターロールがあることを確認します。
      2. クラスターロールと Kubernetes ユーザー間のクラスターロールバインディングを作成します。たとえば、読み取り専用ユーザーです。
      3. ポリシー EKSReadOnly で AWS IAM ロールを作成します。
      4. 次のいずれかの方法で、IAM ロールを Kubernetes ユーザーに関連付けます。
        • クラスターで、aws-auth ConfigMap を編集します。
        • 次のコマンドを実行します。

          eksctl create iamidentitymapping --cluster yourClusterName --arnarn:aws:iam::yourAccountID:role/yourIAMRoleName --username read-only-user

    2. Amazon Elastic Kubernetes Service (EKS) クラスター検出を次の 2 つのうちどちらかの方法で実行します。AWS コマンドラインインターフェイス (CLI) を使用する方法と、AWS CLI を使用しない方法です。まず、システムプロパティ sn_itom_pattern.k8s_aws_ CLI_to_generate_token を設定して、選択したモデルを使用します。このシステムのプロパティはデフォルトで true に設定されています。

      • AWS CLI を使用してトークンを生成するには、このシステムプロパティを true に設定します。

      • 想定ロールを使用してトークンを生成するには、このシステムのプロパティを false に設定します。

      1. AWS CLI を使用して Amazon Elastic Kubernetes Service (EKS) クラスター検出を実行します。

        1. AWS CLI を構成して MID サーバー をセットアップします。AWS CLI 資格情報を構成すると、Amazon Elastic Kubernetes Service (EKS) クラスターへのアクセス権が付与されます。

          注:
          システムにログインしているユーザーは、MID サーバー ユーザーと同じである必要があります。
        2. ベアラートークンを生成するには、 Amazon Elastic Kubernetes Service (EKS) スケジュールの実行中に AWS CLI コマンド aws eks get-token --cluster-name<cluster_name> を使用します。

          MID サーバー インスタンスで AWS CLI ユーザー/ロールを構成すると、トークンを生成するための Amazon Elastic Kubernetes Service (EKS) クラスターへのアクセス権が付与されます。

      2. AWS CLI を使用しないで Amazon Elastic Kubernetes Service (EKS) クラスター検出を実行します。

        注:

        この機能は、2022 年 12 月の ディスカバリーとサービスマッピングパターン バージョン 1.0.96 からサポートされています。

        詳細な手順については、次の KB を参照してください:「KB1182188:EKS cluster discovery using STS AssumeRoles (Without AWS CLI) (STS AssumeRoles を使用した EKS クラスター検出 (AWS CLI なし))」。

    3. sys_properties.list に移動し、次のプロパティを設定します。
      • sn_itom_pattern.k8s_midserver:有効な MID サーバー 名を指定します。
      • sn_itom_pattern.k8s_create_schedule_enabled:値を true に設定します。
    4. API を使用してサーバーなしスケジュールを作成するには、KB1168613 に添付されている更新セットをインポートします (Tokyo より前のリリースバージョンのみ)。
    5. AWS Cloud Discovery スケジュールを作成して実行します。

    Azure Kubernetes Engine (AKS) - Kubernetes クラスター検出では、次を実行します。
    注:
    Kubernetes パターンは、バージョン 1.24 より前の AKS クラスターバージョンの検出をサポートしています。
    1. ServiceNow インスタンスで、有効な資格情報と権限を持つ Azure サービスアカウントを構成します。
    2. AZ コマンドラインインターフェイス (CLI) 構成で MID Server を設定します。Azure CLI 資格情報を構成すると、AKS クラスターへのアクセス権が付与されます。
      注:
    3. sys_properties.list に移動し、次のプロパティを設定します。
      • sn_itom_pattern.k8s_midserver:有効な MID Server 名を指定します。
      • sn_itom_pattern.k8s_create_schedule_enabled:値を True に設定します。
    4. API を使用してサーバーなしスケジュールを作成するには、「KB1168613」に添付されている更新セットをインポートします (Tokyo より前のリリースバージョンのみ)。
    5. Azure クラウド検出スケジュールを作成して実行します。
      注:
      ベアラトークンを取得するには、 AKS Kubernetes スケジュールの実行中に次の Az CLI コマンドを使用します:az aks get-credentials --name<cluster_name>--overwrite-existing --resource-group<resourceGroup_name> --file-

      MID Server インスタンスで構成された AZ CLI は、トークンを生成するために AKS クラスターにアクセスできる必要があります。

    表 : 2. その他のサポートされているシステム構成
    プロパティ名 プロパティの説明 タイプ デフォルト値

    sn_itom_pattern.manifest_digest_image_id

    ブーリアン

    false

    注:
    このプロパティを true に設定して検出を実行する前に、すべての Docker 画像レコードを削除して、重複するレコードが作成されないようにします。

    sn_itom_pattern.k8s_create_schedule_enabled

    パターンの実行を制御するシステムのプロパティで有効/無効にできる機能フラグ。

    ブーリアン false
    MID Server

    sn_itom_pattern.k8s_midserver

    [デフォルト]

    例 - 有効な MID Server 名

    文字列

    sn_itom_pattern.k8s_<service_account_id> _midserver

    [サービスアカウントレベルに基づく]

    例 - 有効な MID Server 名

    文字列

    sn_itom_pattern.k8s_<service_account_id> _<clustername> _midserver

    [クラスター名に基づく]

    例 - 有効な MID Server 名

    文字列

    sn_itom_pattern.kubernetes_collect_volume

    プロパティが True に設定されている場合、Kubernetes ボリューム [cmdb_ci_kubernetes_volume] のデータが入力されます。

    文字列 false
    資格情報エイリアス

    sn_itom_pattern.k8s_ cred_alias

    [デフォルト]

    例 - 資格情報エイリアス名

    文字列

    sn_itom_pattern.k8s_<service_account_id> _alias

    [サービスアカウントレベルに基づく]

    例:有効な資格情報エイリアス名

    文字列

    sn_itom_pattern.k8s_<service_account_id> _<clustername> _alias

    [クラスター名に基づく]

    例:有効な資格情報エイリアス名

    文字列
    Prometheus Url

    sn_itom_pattern.k8s_prometheusUrl

    [デフォルト]

    例 - 有効な Prometheus URL

    文字列

    sn_itom_pattern.k8s_<service_account_id> _prometheusUrl

    [サービスアカウントレベルに基づく]

    例 - 有効な Prometheus URL

    文字列

    sn_itom_pattern.k8s_<service_account_id> _<clustername> _prometheusUrl

    [クラスター名に基づく]

    例:有効な Prometheus URL

    文字列

    sn_itom_pattern.k8s_ run

    [サポートされている検出スケジュールの実行 - 毎日、オンデマンド、平日、週末、月末、暦四半期末]

    例 - 日次

    文字列

    sn_itom_pattern.k8s_batch_count

    [バッチで実行するスケジュールの数 - デフォルトは 5 に設定]

    例 - 5 (バッチで実行するスケジュールの数)

    整数 5

    sn_itom_pattern.k8s_schedule_batch_delay

    [2 つのバッチ値間の時間差を秒単位で追跡]

    例 - 300 (秒)

    整数

    sn_itom_pattern.k8s_run_time

    [バッチの現在時刻を追跡]

    このプロパティが設定されている場合は、同じものを使用するか、システムの現在時刻から 5 分遅れの動的なタイミングを使用できます。HH:MM:SS 形式の値

    例:10:11:12 (HH:MM:SS)

    文字列
    注:
    <service_account_id>は [クラウドサービスアカウント (Cloud Service Accounts)] の下のアカウント ID 名です。詳細については、クラウドディスカバリー でクラウドリソースを検出するためのスケジュールの作成 を参照してください。

    Kubernetes 資格情報なしの検出または mid-in-cluster 検出

    Kubernetes資格情報なしの検出の前提条件

    コンテナ化された MID Server を Kubernetes クラスターに展開します。Kubernetesクラスター内の MID Server が自動的に API サーバーを検出して認証するため、 Kubernetes 資格情報の構成は不要です。

    表 : 3. 資格情報なしの検出の実行パターン属性の構成
    フィールド 説明
    URL

    [URL] フィールドに次のいずれかの値を入力します。

    https://cluster

    または

    https://kubernetes.default.svc

    namespace

    Kubernetes Discovery の構成でシステムから渡された名前空間。次のいずれかの値を入力します。

    • 個別の名前空間:名前空間を入力してから「kube-system」を入力します。例:dev,kube-system
    • デフォルト値。「default,kube-system」のように入力します。
    • マルチパイル名前空間:名前空間を入力し、カンマ (,) を使用して値を区切り、「kube-system」と入力します。例:automation,application,test,kube-system
    • すべての名前空間:すべての名前空間を入力するには、アスタリスク (*) を使用します。
    cluster_name 一意の名前を入力してください。

    水平検出中に ディスカバリー によって収集されるデータ

    テーブルとフィールド 説明
    Kubernetes クラスター [cmdb_ci_kubernetes_cluster]
    名前 kube-controller-manager リーダーの名前。
    K8s_uid kube-system 名前空間 UID [サポートされているバージョン:1.0.92 以降]
    ip_address Kubernetes API サーバーの host_ip の識別子。
    port

    Kubernetes API サーバーポートの識別子。

    namespace この値は、Kubernetes 検出の構成でシステムから渡された名前空間を示します。
    event_timestamp 検出時にこの Kubernetes クラスターで作成された最新のイベントのタイムスタンプ。
    Kubernetes ノード [cmdb_ci_kubernetes_node] Kubernetes ノードの仮想的側面。Kubernetesノードの物理的側面に関するデータは、Linux サーバーに格納されています。
    name Kubernetes ノードの名前。形式は、マシン名だけにすることも、名前とホスト名から成る完全な名前 (<name>.<hostname>) にすることもできます。
    k8s_uid Kubernetes ノード UUID の識別子。
    cluster このリソースを含むクラスターの名前。
    operational_status Kubernetes ノードの運用ステータス。
    Kubernetes サービス [cmdb_ci_kubernetes_service]
    name Kubernetes サービスの名前。
    selector ターゲットポッドの選択に使用され、Kubernetes 構成で指定されたラベルセレクターのカンマ区切りリスト。
    namespace この Kubernetes サービスが属する Kubernetes 名前空間。
    k8s_uid Kubernetes サービスの UUID。
    cluster このリソースを含むクラスターの名前。
    Kubernetes ポッド [cmdb_ci_kubernetes_pod]
    name Kubernetes ポッドの名前。
    k8s_uid Kubernetes ポッド UUID。
    resourceVersion Kubernetes ポッドのリソースバージョン。
    namespace この Kubernetes ポッドが属する Kubernetes 名前空間。
    cluster このリソースを含むクラスターの名前。
    state

    Kubernetes ポッドステータス:[処理待ち]、[実行中]、[成功]、 [失敗]、[不明]。

    Kubernetes クローンジョブ [cmdb_ci_kubernetes_cronjob]
    name Kubernetes クローンジョブの名前。
    namespace この Kubernetes ポッドが属する Kubernetes 名前空間。
    k8s_uid Kubernetes クローンジョブの UUID。
    cluster このリソースを含むクラスターの名前。
    Kubernetes ジョブ [cmdb_ci_kubernetes_job]
    name Kubernetes ジョブの名前。
    namespace この Kubernetes ジョブが属する Kubernetes 名前空間。
    k8s_uid Kubernetes ジョブの UUID。
    cluster Kubernetes ジョブが含まれるクラスターの名前。
    Kubernetes Daemonset [cmdb_ci_kubernetes_daemonset]
    name Kubernetes Daemonset の名前。
    namespace この Kubernetes Daemonset が属する Kubernetes 名前空間。
    k8s_uid Kubernetes Daemonset の UUID。
    cluster このリソースを含むクラスターの名前。
    pods_avail 利用可能なポッドの数。
    pods_failed [失敗 (Failed)] フェーズのポッド数。
    pods_running [実行中 (Running)] フェーズのポッドの数。
    pods_succeeded [成功 (Suceeded)] フェーズのポッドの数。
    pods_waiting [待機中 (Waiting)] フェーズのポッドの数。
    Kubernetes イングレス [cmdb_ci_kubernetes_ingress]
    name Kubernetes イングレスの名前。
    namespace この Kubernetes イングレスが属する Kubernetes 名前空間。
    k8s_uid Kubernetes イングレスの UID。
    cluster このリソースを含むクラスターの名前。

    Kubernetes 展開 [cmdb_ci_kubernetes_deployment]

    Kubernetes レプリカセット [cmdb_ci_kubernetes_replicaset]

    Kubernetes レプリケーションコントローラー [cmdb_ci_kubernetes_replicationcontroller]

    Kubernetes Statefulset [cmdb_ci_kubernetes_statefulset]

    name このリソースの名前。
    namespace このリソースが属する Kubernetes 名前空間。
    K8s_uid このリソースの Kubernetes UID。
    cluster このリソースを含むクラスターの名前。
    total_replicas このリソースのレプリカの数。
    required_replicas 目的のフェーズにあるレプリカの数。
    available_replica 利用可能なレプリカの数。
    available_replicas 利用不可フェーズのレプリカの数。
    updated_replicas 更新されたレプリカの数。
    Docker コンテナー [cmdb_ci_docker_container] Docker イメージを実行するコンポーネント。
    container_id Kubernetes Docker コンテナの一意の識別子。

    重複レコードが作成された場合は、検出が実行されると重複排除タスクが表示されます。これらのタスクを解決する方法については、ServiceNow® ナレッジベースの記事「Making docker container identifier independent (Docker コンテナ識別子を独立させる) [KB1443042]」を参照してください。

    namespace この Kubernetes Docker コンテナが属する Kubernetes 名前空間。
    Docker イメージ [cmdb_ci_docker_image] Docker コンテナでインスタンス化できるアプリケーションとその関連ソフトウェアの実行可能パッケージ。
    image_id Kubernetes Docker イメージの識別子。
    name Kubernetes Docker イメージの名前。
    image_url Docker イメージをダウンロードするための URL。
    namespace この Kubernetes Docker イメージが属する Kubernetes 名前空間。
    Linux サーバー [cmdb_ci_linux_server] Kubernetes ノードをホストするサーバー。
    name Kubernetes ノードに電力供給する Linux サーバーの名前。
    hostname Linux サーバーのホスト名。
    os この Linux サーバーに導入されているオペレーティングシステム。
    kernel_release この Linux サーバーに導入されている Linux カーネルオペレーティングシステムのバージョン。
    ram この Linux サーバーに搭載されている RAM のサイズ。
    ip_address Linux サーバーの IP アドレス。
    キー値 [cmdb_key_value] この構成アイテムは、Kubernetes ラベルを含んでいます。ラベルは、ポッドなどのオブジェクトに添付されているキーと値のペアです。
    key Kubernetes ポッドまたは Kubernetes サービスの Key Value パラメーターのキー。
    value Kubernetes ポッドまたは Kubernetes サービスの Key Value パラメーターの値。
    Kubernetes ボリューム [cmdb_ci_kubernetes_volume]
    k8s_uid Kubernetes ボリュームの UUID。
    mount_path この Kubernetes ボリュームにアクセスするためのパス。
    name Kubernetes ボリュームの名前。
    namespace この Kubernetes ボリュームが属する Kubernetes 名前空間。
    cluster このリソースを含むクラスターの名前。
    volume_id Kubernetes ボリュームの ID。
    OpenShift 展開済み構成 [cmdb_ci_openshift_dep_conf]​
    name OpenShift 展開構成の名前。
    namespace 展開構成が含まれる名前空間の名前。
    k8s_uid Kubernetes ボリュームの UUID。
    url OpenShift 展開済み構成の URL。
    OpenShift ビルド構成 [cmdb_ci_openshift_build_conf]
    name OpenShift ビルド構成の名前。
    namespace ビルド構成が含まれる OpenShift 名前空間の名前。
    k8s Kubernetes ボリュームの UUID。
    url OpenShift ビルド構成の URL。
    OpenShift Source2Image [cmdb_ci_openshift_source_2_image]
    name OpenShift ソースイメージの名前。
    to 関連するイメージ。
    parent_id OpenShift ソースイメージの ID。
    OpenShift ルーティング [cmdb_ci_openshift_route]
    name OpenShift ルーティングの名前。
    namespace OpenShift ルーティングが含まれる名前空間の名前。
    k8s_uid Kubernetes ボリュームの UUID。
    url OpenShift ルーティングの URL
    host OpenShift ルーティングのターゲットホスト。
    port OpenShift ルーティングのターゲットポート。
    OpenShift グループ [cmdb_ci_openshift_group]
    name OpenShift グループの名前。
    k8s_uid Kubernetes ボリュームの UUID。
    url OpenShift グループの URL。
    OpenShift ユーザー [cmdb_ci_openshift_user]
    name OpenShift ユーザーの名前
    k8s_uid Kubernetes ボリュームの UUID。
    url OpenShift ユーザーの URL。
    full_name OpenShift ユーザーのフルネーム。
    OpenShift プロジェクト [cmdb_ci_openshift_project]
    name OpenShift プロジェクトの名前
    k8s_uid Kubernetes ボリュームの UUID。
    url OpenShift プロジェクトの URL。
    OpenShift イメージ [cmdb_ci_openshift_images]
    name OpenShift イメージの名前。
    k8s_uid Kubernetes ボリュームの UUID。
    url OpenShift イメージの URL。
    docker_image_metadata_id Docker イメージの ID。
    docker_image_metadata_parent_id イメージ親の ID。
    arch イメージのアーキテクチャ。
    size イメージサイズ。
    hostname イメージに関連するホスト名。
    OpenShift イメージストリーム [cmdb_ci_openshift_images_stream]
    name OpenShift イメージストリームの名前。
    k8s_uid Kubernetes ボリュームの UUID。
    url OpenShift イメージストリームの URL。
    namespace OpenShift イメージストリームが含まれる名前空間の名前。
    OpenShift Docker イメージリポジトリ [cmdb_ci_openshift_docker_images_repository]
    name OpenShift Docker イメージリポジトリの名前。
    parent_ID 親システムの ID。
    名前空間 [cmdb_ci_kubernetes_namespace]
    name Kubernetes 名前空間の名前。
    state

    Kubernetes 名前空間のフェーズ:[アクティブ] または [終了]。

    このデータは、Collect Container Repository の拡張セクションによって収集されます。
    テーブルとフィールド 説明
    コンテナーリポジトリ [cmdb_ci_container_repository]
    名前 [name] コンテナーリポジトリの名前。
    コンテナーリポジトリエントリー [cmdb_ci_container_repository_entry]
    名前 [name] コンテナーリポジトリエントリーの名前
    カテゴリ [category] コンテナーリポジトリエントリーのカテゴリ
    次の図は、Kubernetes 検出に含まれている CI を示しています。
    注:
    この依存関係ビューマップは、わかりやすくするために簡略化されています。Kubernetes 展開には、非常に多くの CI を含めることができます。
    図 : 1. Kubernetes 展開のコンポーネント

    Kubernetes 展開のコンポーネント
    図 : 2. OpenShift を含む Kubernetes 展開のコンポーネント

    OpenShift を含む Kubernetes 展開のコンポーネント

    Kubernetes パターンによって収集される CI 関係

    以下の関係は、Kubernetes 検出によって作成されます。
    CI 関係 CI
    Kubernetes クラスター [cmdb_ci_kubernetes_cluster] Contains::Contained By

    Kubernetes サービス [cmdb_ci_kubernetes_service]

    Contains::Contained By Kubernetes ポッド [cmdb_ci_kubernetes_pod]
    Contains::Contained By Kubernetes イングレス [cmdb_ci_kubernetes_ingress]
    Contains::Contained By

    Kubernetes 名前空間 [cmdb_ci_kubernetes_namespace]

    Contains::Contained By [cmdb_ci_openshift_source_2_image]
    Contains::Contained By OpenShift グループ [cmdb_ci_openshift_group]
    Contains::Contained By OpenShift ユーザー [cmdb_ci_openshift_user]
    Contains::Contained By OpenShift プロジェクト [cmdb_ci_openshift_project]
    Contains::Contained By OpenShift イメージ [cmdb_ci_openshift_images]
    Contains::Contained By OpenShift Docker イメージリポジトリ [cmdb_ci_openshift_docker_images_repository]
    Cluster of::Cluster Kubernetes ノード [cmdb_ci_kubernetes_node]
    Manages::Managed by Linux サーバー [cmdb_ci_linux_server]
    Kubernetes ポッド [cmdb_ci_kubernetes_pod] Contains::Contained By Docker コンテナー [cmdb_ci_docker_container]
    Contains::Contained By Docker イメージ [cmdb_ci_docker_image]
    Contains::Contained By Kubernetes ボリューム [cmdb_ci_kubernetes_volume]

    Kubernetes 作業負荷 [cmdb_ci_kubernetes_workload]

    Hosted on::Hosts Kubernetes クラスター [cmdb_ci_kubernetes_cluster]
    Kubernetes サービス [cmdb_ci_kubernetes_service] Provides::Provided By

    Kubernetes 作業負荷 [cmdb_ci_kubernetes_workload]

    Kubernetes 展開 [cmdb_ci_kubernetes_deployment]

    Owns::Owned By

    Kubernetes レプリカセット [cmdb_ci_kubernetes_replicaset]

    Kubernetes レプリカセット [cmdb_ci_kubernetes_replicaset]

    iInstantiates:: Instantiated By Kubernetes ポッド [cmdb_ci_kubernetes_pod]
    Kubernetes 作業負荷 [cmdb_ci_kubernetes_workload] Provided By::Provides To Kubernetes サービス [cmdb_ci_kubernetes_service]
    Kubernetes 展開 [cmdb_ci_kubernetes_deployment] Hosted on::Hosts Kubernetes クラスター [cmdb_ci_kubernetes_cluster]
    Kubernetes Daemonset [cmdb_ci_kubernetes_daemonset] Hosted on::Hosts Kubernetes クラスター [cmdb_ci_kubernetes_cluster]
    Kubernetes Statefulset [cmdb_ci_kubernetes_statefulset] Hosted on::Hosts Kubernetes クラスター [cmdb_ci_kubernetes_cluster]
    Kubernetes 名前空間 [cmdb_ci_kubernetes_namespace]​ Contains::Contained By OpenShift 展開済み構成 [cmdb_ci_openshift_dep_conf​]
    Contains::Contained By OpenShift ビルド構成 [cmdb_ci_openshift_build_conf]
    Contains::Contained By OpenShift ルーティング [cmdb_ci_openshift_route]
    Contains::Contained By OpenShift イメージストリーム [cmdb_ci_openshift_images_stream]
    Docker イメージ [cmdb_ci_docker_image] Instantiates::Instantiated by Docker コンテナー [cmdb_ci_docker_container]
    Linux サーバー [cmdb_ci_linux_server] Contains::Contained By Kubernetes ポッド [cmdb_ci_kubernetes_pod]
    Runs::Runs on Docker コンテナー [cmdb_ci_docker_container]
    Hosts::Hosted on Kubernetes ノード [cmdb_ci_kubernetes_node]
    OpenShift 展開構成 [cmdb_ci_openshift_dep_conf​] Contains::Contained By [cmdb_ci_config_file_tracked]
    Kubernetes パターンの Collect Container Repository 拡張セクションで、これらの関係を識別します。
    CI 関係 CI
    Docker イメージ [cmdb_ci_docker_image] Provisioned From::Provisioned コンテナーリポジトリエントリー [cmdb_ci_container_repository_entry]
    コンテナーリポジトリエントリー [cmdb_ci_container_repository_entry] Hosted on::Hosts コンテナーリポジトリ [cmdb_ci_container_repository]

    Istio サービスメッシュ拡張によって収集される CI 関係

    Istio サービスメッシュ拡張の前提条件:

    • Istio サービスメッシュと Prometheus コンポーネントが Kubernetes クラスターに構成されていることを確認します。
    • Prometheus が queryistio_requests_total コマンドを使用してサービス接続情報を検出できるようにします。
    • アプリケーションサービスが接続されていることを確認し、Kiali グラフでサービス間のトラフィックフローを確認します。

    Bookinfo アプリケーションの詳細については、https://istio.io/latest/docs/examples/bookinfo/ を参照してください。

    CI 関係 CI
    Kubernetes サービス [cmdb_ci_kubernetes_servi ce] Connects to::Connected by Kubernetes サービス [cmdb_ci_kubernetes_servi ce]

    Kubernetes イベントパターンによって収集される CI 関係

    以下の関係は、Kubernetes イベント検出をサポートするために作成されています。
    CI 関係 CI
    Kubernetes クラスター [cmdb_ci_kubernetes_cluster] Contains::Contained By

    Kubernetes サービス [cmdb_ci_kubernetes_service]

    Contains::Contained By Kubernetes ポッド [cmdb_ci_kubernetes_pod]
    Cluster of::Cluster Kubernetes ノード [cmdb_ci_kubernetes_node]
    Manages::Managed by [cmdb_ci_linux_server]
    Kubernetes ポッド [cmdb_ci_kubernetes_pod] Contains::Contained By Docker コンテナー [cmdb_ci_docker_container]
    Contains::Contained By Docker イメージ [cmdb_ci_docker_image]
    Contains::Contained By Kubernetes ボリューム [cmdb_ci_kubernetes_volume]
    Docker イメージ [cmdb_ci_docker_image] Instantiates::Instantiated by Docker コンテナー [cmdb_ci_docker_container]
    Linux サーバー [cmdb_ci_linux_server] Contains::Contained By Kubernetes ポッド [cmdb_ci_kubernetes_pod]
    Runs::Runs on Docker コンテナー [cmdb_ci_docker_container]
    Hosts::Hosted on Kubernetes ノード [cmdb_ci_kubernetes_node]

    タグベースの検出中に サービスマッピング に収集されるデータ

    サービスマッピング では、タグベースの検出を使用して、Kubernetes コンポーネントを含むアプリケーションサービスマップを作成します。サービスマッピング には、タグベースの検出に使用される次のような事前構成済み CI 関係が付属しています。これらの CI 関係は、ServiceNow Store の 1.0.68 リリースから利用可能です。
    CI 関係 CI
    Kubernetes サービス [cmdb_ci_kubernetes_service] Contained By::Contains Kubernetes クラスター [cmdb_ci_kubernetes_cluster]
    OpenShift プロジェクト [cmdb_ci_openshift_project] Contained by::Contains Kubernetes クラスター [cmdb_ci_kubernetes_cluster]
    Kubernetes ポッド [cmdb_ci_kubernetes_pod] Contained by::Contains Kubernetes クラスター [cmdb_ci_kubernetes_cluster]
    Kubernetes ポッド [cmdb_ci_kubernetes_pod] Cluster::Cluster of Kubernetes サービス [cmdb_ci_kubernetes_service]
    Kubernetes 名前空間 [cmdb_ci_kubernetes_namespace]​ Contains::Contained By OpenShift 展開済み構成 [cmdb_ci_openshift_dep_conf]
    Kubernetes 名前空間 [cmdb_ci_kubernetes_namespace]​ Contains::Contained By OpenShift ビルド構成 [cmdb_ci_openshift_build_conf]
    Kubernetes 名前空間 [cmdb_ci_kubernetes_namespace]​ Contains::Contained By OpenShift ルーティング [cmdb_ci_openshift_route]
    Kubernetes 名前空間 [cmdb_ci_kubernetes_namespace]​ Contains::Contained By OpenShift イメージストリーム [cmdb_ci_openshift_images_stream]

    Kubernetesダッシュボード

    展開のKubernetesコンポーネントの検出が完了したらディスカバリー、次の場所に移動できます。 すべて > 構成 > Kubernetes 検出されたコンポーネントの統計情報 Kubernetes を表示します。詳細については、「Kubernetes ダッシュボード」を参照してください。

    トラブルシューティング

    マッピングプロセスが期待どおりに進行しない場合は、次の提案に従ってください。
    症状 原因 ソリューション
    検出に失敗しました。検出メッセージには、REST タイムアウトによって発生したエラーに関する情報が含まれています。 展開で REST コール応答を送信する CI が多数あります。MID サーバーmid.sa.cloud.request_timeout パラメーターで制御される制限時間を超えずに REST コール応答を処理することはできません。 デフォルトで、mid.sa.cloud.request_timeout パラメーターは 3 万ミリ秒に設定されています。
    関連する MID サーバー に対してこのパラメーターの値を増やし、検出を再実行します。
    注:
    関連する MID サーバー の [設定パラメーター] 関連リストにこのパラメーターが表示されない場合は、追加する必要があります。
    デバッグセッション中にパターンデザイナーでエラーが発生しました。パターンデザイナーのメッセージに、タイムアウトによって発生したエラーに関する情報が含まれています。 パターンデザイナーは、(検出時ではなく) パターンデバッグ中のタイムアウトが原因で失敗します。 デフォルトで、sa.debugger.max_timeout パラメーターは 240 秒に設定されています。

    関連する MID サーバー に対してこのパラメーターの値を増やします。

    Kubernetes パターンをデバッグモードで実行する場合、操作に関する情報については「KB0832567」を参照してください。