Kubernetes 検出

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

    ディスカバリーKubernetes パターンとその拡張セクションを使用して、Kubernetes バージョン 1.21 の Kubernetes コンポーネントを検出します。
    • Kubernetes パターンの Collect OpenShift info 拡張セクションでは、Kubernetes 展開における OpenShift コンポーネントを検出します。OpenShift ビルド構成拡張セクションは、ストアバージョン 1.0.53 から使用できます。
    • 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 クラスターを取得。
    • Amazon Web Services (AWS) - Kubernetes クラスターを取得。
    • Microsoft Azure クラウドコンピューティングサービス - Kubernetes クラスターを取得。
    これらのパターンはクラウドにクエリを実行し、すべての Kubernetes クラスターのデータを収集して、クラスターごとにサーバーなしスケジュールを作成します。クラスターが削除されると、スケジュールは非アクティブとしてマークされます。この機能により、クラスターごとに複数の認証情報とサーバーなしディスカバリースケジュールを作成および管理するオーバーヘッドがなくなります。クラウドインフラストラクチャパターンは、標準的なクラウドディスカバリーによってトリガーされます。

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

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

    前提条件

    注:
    Kubernetes クラウドインフラストラクチャディスカバリーの前提条件については、次を参照してください。
    注:
    自動サーバーなし Kubernetes スケジュールを実行すると、ベアラートークンがフェッチされます。認証情報の追加は不要です。
    次の手順を実行して、ディスカバリー が パターンを使用して Kubernetes を正常に検出できることを確認します。
    1. ServiceNow Store から最新の「ディスカバリーとサービスマッピングパターン」アプリケーションを展開します。
    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 サーバーから到達可能であることを確認します。
    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プラットフォームで、 All (すべて) > Discovery > 認証情報.
      2. [New (新規)] を選択します。
      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 ディスカバリーの構成でシステムから渡された名前空間。次のいずれかの値を入力します。
      • 個別の名前空間:名前空間を入力してから「kube-system」を入力します。例:dev,kube-system
      • デフォルト値:「default, kube-system」と入力します。
      • マルチパイル名前空間:名前空間を入力し、カンマ (,) を使用して値を区切り、「kube-system」と入力します。例:automation,application,test,kube-system
      • すべての名前空間:すべての名前空間を入力するには、アスタリスク (*) を使用します。
      認証情報エイリアス 以前に作成した Kubernetes 認証情報に関連付けられたエイリアス。
      クラスター名 <serviceaccountid><space><clustername> 形式での Kubernetes クラスターの名前。
      provider クラウドプロバイダー:GCP または AWS または Azure。
      cluster_resource_id クラスターリソース ID の例:
      • Azure Kubernetes クラスター - リソース ID。
      • AWS - クラスター ARN。
      • GCP - クラスターのグローバル名。
    9. Kubernetes イベントパターンに対するサーバーレスディスカバリースケジュールを作成します。5 分または 10 分おきに実行するようにスケジュールを設定します。
      注:
      パターンが初めて実行されると、event_timestamp が保存されます。後で、タイムスタンプに基づいてデルタイベントのみを収集します。パターンが頻繁に実行されると、必要な CMDB IRE の更新が少なくなります。

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

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

    Kubernetes クラウドインフラストラクチャディスカバリーの前提条件

    Google Cloud Platform (GCP) - Kubernetes クラスターを取得のパターンの場合は、次を実行します。

    1. ServiceNow インスタンスで、有効な認証情報と権限で Google Cloud Platform (GCP) サービスアカウントを設定します。
    2. GCP インフラストラクチャで、MID サーバー にすべてのクラウド API へのフルアクセスを設定します。[クラウド API アクセススコープ (Cloud API access scopes)] を [すべてのクラウド API へのフルアクセスを許可 (Allow full access to all Cloud APIs)] に設定します。MID サーバーインスタンスは、プロジェクト固有のクラスターにのみアクセスできます。
    3. sys_properties.list に移動し、次のプロパティを設定します。
      • sn_itom_pattern.k8s_midserver:有効な MID サーバー 名を指定します。
      • sn_itom_pattern.k8s_create_schedule_enabled:値を true に設定します。
        注:
        sn_itom_pattern.k8s_create_schedule_enabledプロパティを有効にすると、クラウドクラスターのサーバーレススケジュールが自動的に作成され、手動スケジューリングが不要になります。既存の手動スケジュールがあり、それを自動スケジュールに変換する場合は、このプロパティを有効にします。手動スケジュールが更新されます。追加のスケジュールは作成されません。
    4. Google Cloud ディスカバリー を作成して実行します。
      注:

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

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

      MID サーバーインスタンスで 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 に設定します。
        注:
        sn_itom_pattern.k8s_create_schedule_enabledプロパティを有効にすると、クラウドクラスターのサーバーレススケジュールが自動的に作成され、手動スケジューリングが不要になります。既存の手動スケジュールがあり、それを自動スケジュールに変換する場合は、このプロパティを有効にします。手動スケジュールが更新されます。追加のスケジュールは作成されません。
    4. AWS Cloud ディスカバリースケジュールを作成して実行します。

    Microsoft Azure Kubernetes Services (AKS) - Kubernetes クラスターディスカバリーでは、次を実行します。
    注:
    Kubernetes パターンでは、バージョン 1.30 より前の AKS クラスター バージョンの検出がサポートされています。
    1. 最新の ディスカバリーとサービスマッピングパターン バージョンに更新します。
    2. ServiceNow インスタンスで、有効な Azure 認証情報と権限を持つ Azure サービスアカウントを構成します。
    3. sys_properties.list に移動し、次のプロパティを設定します。
      • sn_itom_pattern.k8s_midserver:有効な MID サーバー 名を指定します。
      • sn_itom_pattern.k8s_create_schedule_enabled:値を true に設定します。
        注:
        sn_itom_pattern.k8s_create_schedule_enabledプロパティを有効にすると、クラウドクラスターのサーバーレススケジュールが自動的に作成され、手動スケジューリングが不要になります。既存の手動スケジュールがあり、それを自動スケジュールに変換する場合は、このプロパティを有効にします。手動スケジュールが更新されます。追加のスケジュールは作成されません。
        .
    4. Kubernetes RBAC を使用するローカルアカウントがなく、パターンの効率を向上させる場合は、 MID Server > プロパティ そして sn_itom_pattern.aks_fetch_local_ad_token プロパティを false に設定します。
    5. Azure クラウドディスカバリースケジュールを実行します。
    6. クラスターアカウントタイプに応じて、ディスカバリーのスケジュールの MID サーバーを構成します。RBAC を使用するローカルアカウントがない場合は、この手順を無視できます。

      クラスターアカウントタイプ ディスカバリー スケジュールの MID サーバー

      Kubernetes RBAC を使用した MS Entra ID 認証。

      任意の MID サーバー

      Azure RBAC を使用した MS Entra ID 認証。

      任意の MID サーバー

      Kubernetes RBAC を使用するローカルアカウント。

      Azure コマンドラインインターフェイス (CLI) が構成された MID サーバーを選択します。Azure CLI 認証情報を構成すると、AKS クラスターへのアクセス権が付与されます。

      AKS Kubernetes スケジュールの実行中にベアラートークンを取得するには、次の Azure CLI コマンドを使用します:az aks get-credentials --name <cluster_name> --overwrite-existing --resource-group <resourceGroup_name> --file -

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

    sn_itom_pattern.manifest_digest_image_id

    ブーリアン

    false

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

    sn_itom_pattern.k8s_create_schedule_enabled

    パターンの実行を制御するシステムプロパティで有効/無効にできる機能フラグ。有効にすると、新しいプロパティ値に関係なくディスカバリースケジュールが作成されます。

    ブーリアン false
    sn_itom_k8s_run_cloud_discovery このプロパティを有効にすると、クラウドの k8s パターンが実行され、自動スケジュールを作成せずに k8s クラスターが検出されます。 ブーリアン false
    MID サーバー

    sn_itom_pattern.k8s_midserver

    [デフォルト]

    例 - 有効な MID サーバー名

    文字列

    sn_itom_pattern.k8s_<service_account_id> _midserver

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

    例 - 有効な MID サーバー名

    文字列

    sn_itom_pattern.k8s_<service_account_id> _<clustername> _midserver

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

    例 - 有効な MID サーバー名

    文字列

    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 サーバーKubernetes クラスターに展開します。クラスター内のMID サーバーが自動的に API サーバーを検出して認証するためKubernetesKubernetes認証情報を構成する必要はありません。

    表 : 3. 認証情報なしディスカバリーの実行パターン属性の構成
    フィールド 説明
    URL

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

    https://cluster

    または

    https://kubernetes.default.svc

    namespace

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

    • 個別の名前空間:名前空間を入力してから「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] この構成アイテム (CI) は、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]
    Contained by::Contains リソースグループ [cmdb_ci_resource_group]
    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展開のコンポーネントの検出が完了したらディスカバリー ワークスペース > Discovery Admin Workspace (ディスカバリーアドミンワークスペース) > Insights (インサイト) をクリックし、 Kubernetes エクスプローラー ダッシュボードを使用して、組織の Kubernetes 環境とリソースを表示します。拡張Kubernetesダッシュボードを使用するには、以下があることを確認します ディスカバリーアドミンワークスペース バージョン 1.3.1 (2024 年 8 月ストア) 以降。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」を参照してください。