エージェントのインストール Kubernetes

Instana エージェントは、 Kubernetes クラスタのオンラインまたはオフライン (エアギャップ) 環境にインストールできます。 以下のリストを参照して、前提条件を確認し、利用可能なすべてのインストール方法について学び、 Kubernetes にエージェントをインストールしてください。

エージェントのインストール方法の選択

以下のインストール・オプションのいずれかを選択し、関連するリンクをクリックして続行します:

エアギャップ環境へのエージェントのインストール

エアギャップ環境にエージェントをインストールするには、2つの方法があります:

Helm チャートを使用して、エアギャップ環境で設置する

エアギャップ環境にエージェントをインストールするには、以下の手順を実行します:

注: 以下のインストール手順では、 CentOS Linux ディストリビューションを使用していますが、手順は他のすべてのサポートされているディストリビューションでも有効です。
  1. 以下のコマンドを実行して、 Docker をインストールする:

    sudo yum install -y yum-utils
     
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
     
    sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
     
    sudo systemctl start docker
     
  2. 以下のコマンドを実行して、 Helm をインストールする:

    sudo su
     
    yum install -y epel-release
     
    yum install -y snapd
     
    systemctl enable --now snapd.socket
     
    ln -s /var/lib/snapd/snap /snap
     
    snap install helm --classic
    PATH="$PATH:/snap/bin/"
     
    helm version
     
  3. 以下の手順でMinikubeをインストールします:

    注: これらの手順は、ターゲット環境を示すための一例である。
    1. Kubernetes リポジトリを追加する:

      cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
      [kubernetes]
      name=Kubernetes
      baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/
      enabled=1
      gpgcheck=1
      gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key
      exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
      EOF
       
    2. kubectlコマンドラインツールをインストールします:

      sudo yum install -y kubectl
       
    3. Minikube RPMパッケージをダウンロードします:

      curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm
       
    4. Minikube RPMパッケージをインストールします:

      sudo rpm -Uvh minikube-latest.x86_64.rpm
       
    5. Docker を使って Kubernetes クラスタを開始する:

      minikube start --force --driver=docker
       
    6. Minikubeで使用できるように、 Docker :

      eval $(minikube docker-env)
       
    7. Kubernetes クラスターをチェックする:

      kubectl cluster-info
       
  4. エアギャップ環境に移すために必要な Docker :

    1. エージェントキーを使用して、Instana Container Registry にログインします:

      docker login https://containers.instana.io/v2 -u _ -p <agentKey>
       
    2. Instana Container Registry からエージェントの最新バージョンを取り出します:

      docker pull containers.instana.io/instana/release/agent/static:latest
       
    3. 最新の Instana エージェント オペレータ イメージを取得します:

      docker pull icr.io/instana/instana-agent-operator:latest
       
    4. 最新バージョンのInstana Kubernetes センサーを引き抜く:

      docker pull icr.io/instana/k8sensor:latest
       
    5. Docker レジストリからログアウトする:

      docker logout
       
    6. Docker 画像を .tar ファイルに変換する:

      docker images
       
      docker tag <instanaAgentImageID> instana/agent
       
      docker save instana/agent > instana-agent.tar
       
      docker tag <operatorImagerId> instana/instana-agent-operator
       
      docker save instana/instana-agent-operator > instana-agent-operator.tar
       
      docker tag <k8SensorID> instana/k8sensor
       
      docker save instana/k8sensor > instana-k8sensor.tar
       
    7. ファイル(instana-agent.tarinstana-agent-operator.tarinstana-k8sensor.tar )を、エージェントをインストールするエアギャップホストにコピーします。

    8. エアギャップされたホストから現在の画像を削除する:

      docker rmi -f <instanaAgentImageID> <operatorImagerId> <k8SensorID>
       
    9. .tar ファイル (instana-agent.tar, instana-agent-operator.tar, instana-k8sensor.tar) から画像をインポートします:

    docker load --input instana-agent.tar
     
    docker load --input instana-agent-operator.tar
     
    docker load --input instana-k8sensor.tar
     
  5. Docker レジストリー・サーバーを実行し、イメージをプッシュする:

    docker run -d -p 5000:5000 --restart=always --name registry registry:2
     
    docker tag instana/agent:latest localhost:5000/instana-agent
     
    docker push localhost:5000/instana-agent
     
    docker tag instana/instana-agent-operator:latest localhost:5000/instana-agent-operator
     
    docker push localhost:5000/instana-agent-operator
     
    docker tag instana/k8sensor:latest localhost:5000/instana-k8sensor
     
    docker push localhost:5000/instana-k8sensor
     
    #Delete all images related to the agent:
    docker rmi -f <instanaAgentImageID> <k8SensorID> <operatorImagerId>
     
  6. Instana Helm チャートを以下のリポジトリからプルする:

    helm pull instana-agent --repo https://agents.instana.io/helm --untar instana-agent
     
    注: カレントディレクトリに最新の Instana エージェント Helm チャートファイルがあるか確認してください。
  7. Instana エージェントを Kubernetes クラスターにデプロイします。

    注: Instana エージェント Helm チャートバージョン 2.0.0 以前には、 instana-agent/crds フォルダがありません。 したがって、 kubectl apply -f instana-agent/crds のステップは必要ない。
    kubectl apply -f instana-agent/crds && helm upgrade --install --create-namespace \
       --namespace instana-agent \
       --set agent.key=<agentKey> \
       --set agent.endpointHost=ingress-red-saas.instana.io \
       --set agent.endpointPort=443 \
       --set cluster.name='mip-back-test' \
       --set zone.name='mip-gke-zone' \
       --set k8s_sensor.deployment.enabled=true \
       --set k8s_sensor.image.name=localhost:5000/instana-k8sensor \
       --set k8s_sensor.image.tag=latest \
       --set k8s_sensor.image.pullPolicy=IfNotPresent  \
       --set agent.image.name=localhost:5000/instana-agent \
       --set agent.image.tag=latest \
       --set agent.image.pullPolicy=IfNotPresent  \
       --set controllerManager.image.name=localhost:5000/instana-agent-operator \
       --set controllerManager.image.tag=latest \
       instana-agent instana-agent/
     

    <agentKey>を入力し、 <agent.endpointHost >、<agent.endpointPort>を編集する、 <k8_senosr.image.name> および < agent.image.name > を編集します。また、 instana-agent-1.2.61.tgz をディレクトリ内の最新の Instana エージェント Helm チャートファイルに置き換えます。

  8. 以下のコマンドでポッドをチェックする:

    kubectl get all -n instana-agent
     

エージェントがインストールされている。 次のステップの詳細については、「 次にすること 」のセクションを参照してください。

エアギャップ環境でのオペレーターによる設置

オペレータを使用してエアギャップ環境にエージェントをインストールするには、以下の手順を実行します:

  1. 以下の画像を引っ張ってくる。

    docker pull containers.instana.io/instana/release/agent/static:latest
    docker pull icr.io/instana/k8sensor:latest
    docker pull icr.io/instana/instana-agent-operator:latest
     
  2. 引き出された画像をローカル画像レジストリに再タグ付けする。

    docker tag <public-image> <local-registry-image>
     
  3. 再タグ付けされた画像をローカル画像レジストリにプッシュする。

    docker push <local-registry-image>
     
  4. 対象の Kubernetes ネームスペースに画像プルシークレット( Docker secret)を作成します:

    kubectl create secret -n instana-agent docker-registry local-registry-image-pull-secret \
         --docker-server=<your_local_image_registry> \
         --docker-username= # Replace with ARTIFACTORY_USERNAME \
         --docker-password= # Replace with ARTIFACTORY_PASSWORD 
     
  5. からYAMLを取得する。 GitHub:

    curl -L -o instana-agent-operator.yaml https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yaml
     
  6. 画像参照をプライベートレジストリに置き換える。 例えば、 icr.io/instana/instana-agent-operator:2.1.8

  7. オペレータを配置するために設定を適用します。

    kubectl apply -f instana-agent-operator.yaml
     
  8. OpenShift CLI (oc) がインストールされていない場合は、 Getting started with OpenShift CLI からダウンロードし、前のセクションで作成したイメージプル シークレットにアクセスできるようにサービスアカウントにパッチを当てることができます:

    oc patch serviceaccount instana-agent-operator -p '{"imagePullSecrets": [{"name": "local-registry-image-pull-secret"}]}' -n instana-agent
     
  9. ファイル agent.yaml を作成し、エージェントのカスタムリソースを特定のイメージバージョンに更新します:

    apiVersion: instana.io/v1
    kind: InstanaAgent
    metadata:
      name: instana-agent
      namespace: instana-agent
    spec:
      zone:
        name: # (optional) name of the zone of the host
      cluster:
        name: # cluster name.
      agent:
        image:
          name: # private registry static agent image.
          tag: # agent tag
          pullSecrets:
            - name: local-registry-image-pull-secret
        key: # fetch the download key from the Instana UI > Agents > Install Agent > Kubernetes Operator
        endpointHost: <your-ingress-endpoint>
        endpointPort: "443"
        env: {}
        configuration_yaml: |
          # You can leave this empty, or use this to configure your instana agent.
          # See https://docs.instana.io/setup_and_manage/host_agent/on/kubernetes/
      k8s_sensor:
        image:
          name: # private registry k8 sensor image.
          tag: # k8 sensor tag
     
  10. カスタムリソースをデプロイする:

    $ kubectl apply -f agent.yaml
     
  11. すべてのポッドが正しく始動していることを確認する。

エージェントがインストールされている。 次のステップの詳細については、 次のステップのセクションを参照してください。

オンライン環境へのエージェントのインストール

Instana エージェントを Kubernetes クラスタにインストールするには、次の方法を使用することをお勧めします:

エージェントを再インストールする場合は、エージェントのクラスタレベルのオブジェクトをすべて削除するなど、エージェントがきれいにアンインストールされていることを確認してください。 詳細については、 Kubernetes の Instana エージェントのアンインストールを参照してください。

オペレータ、 Helm チャート、および YAML ファイルの新しいバージョンは、かなり頻繁にリリースされます。 修正、改善、および新機能の最新アップデートに対応するには、Operator、 Helm チャート、または YAML ファイルのいずれかの最新バージョンを実行していることを確認してください。

Operator、 Helm チャート、または YAML ファイルの現在のバージョンを確認するには、以下のトピックを参照してください:

オペレーターを使用してインストールする

エージェントのインストールには、Instana が提供する Kubernetes オペレータを使用できます。 以下の手順に従います。

  1. Instana UI のホームページで、 データソースの設定をクリックします。 Instana エージェント] タブで、[ エージェントのインストール ] を選択します。

  2. エージェント配置カタログページで、 Kubernetes - Operator タイルをクリックします。

  3. 以下のようにオペレーターをデプロイします。 このコマンドは、最新の Operator をインストールします。

    kubectl apply -f https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yaml
     

    このコマンドを実行すると、オペレータはネームスペース instana-agent で稼働し、 instana-agent カスタム・リソースが作成されるのを待ちます。

    DockerHub および Red Hat レジストリの Instana エージェント Operator イメージの latest タグはサポートされていません。

    Instana Agent オペレータの新しいバージョンを取得するには、前述のように、 オペレータの GitHub リリースページから最新のオペレータ YAML に更新します。

  4. クラスタ名と、クラスタを所属させたいエージェントゾーン(オプション)を入力します。

    クラスタ名(<your_cluster_name>)は、このデーモンセットが監視するクラスタのカスタマイズ名です。

    エージェントゾーン(<your_zone_name>)は、インフラストラクチャマップ上に表示されるゾーングルー プをカスタマイズするために使用される。

  5. Instana UI で提供される YAML テンプレートをコピーして、カスタムリソース YAML ファイルを作成します。

    YAMLテンプレートには、 エージェントキーホストエージェントエンドポイント、クラスタ名、エージェントゾーンがあらかじめ入力されています。

  6. カスタムリソースYAMLファイルを編集する:

    • Instana Agent カスタム・リソースは、Instana の Helm チャット とまったく同じ構成をサポートしています。 すべての設定パラメータの詳細リストと例については、 Instana Helm チャートを参照してください。

      以下のトピックも参照のこと:

    • セルフホスト環境にエージェントをインストールしたい場合で、エージェントキーに Instana パブリックアーティファクトリーからダウンロードする権限がない場合は、ダウンロードキーを downloadKey: <your_download_key> として追加します。 以下の例を参照してください。

      agent:
        key: wPYpH7EGK0ucLaO0Nu7BYw
        downloadKey: m007YDoWNload6kE42yukg
        endpointHost: ...
       
    • エージェントエンドポイントにTLS暗号化を追加したい場合は、既存のシークレットを使用するか、証明書と秘密鍵を使用します:

      • 既存の秘密を使う

        TLS 暗号化には、kubernetes.io/tlsタイプの既存のシークレットを使用できます。 しかし、カスタムリソースのYAMLファイルで agent.tls.secretName

      • 証明書と秘密鍵を使用する

        証明書と秘密鍵は base64-encoded でなければなりません。 このバリアントを使うには、カスタムリソースYAMLファイルに以下のパラメータを追加します:

        • agent.tls.certificate
        • agent.tls.key
        注: agent.tls.secretName が設定されている場合、 agent.tls.certificateagent.tls.key は無視される。
    • 静的ホストエージェントをデプロイしたい場合は、静的エージェントイメージでカスタムリソースYAMLファイルを構成します。 静的ホスト・エージェント・イメージを一覧表示するには、 agent.image.namecontainers.instana.io/instana/release/agent/static に設定します。 以下の例を参照してください。

      spec:
         agent:
           image:
             name: containers.instana.io/instana/release/agent/static
       
    • オプション:以下の値を置き換えることができる:

      • agent.env:エージェントのプロキシ設定など、エージェントの環境変数を指定するには、このフィールドを使用します。 可能な環境値について詳しくは、エージェント構成を参照してください。 以下の例を参照してください。

        spec:
            agent:
              env:
               INSTANA_AGENT_TAGS: staging
         
      • agent.configuration_yaml:このフィールドを使用して、エージェント設定ファイル configuration.yaml を指定します。 以下の例を参照してください。

        spec:
            agent:
              configuration_yaml: |
                # Example of configuration yaml template
                # Host
                com.instana.plugin.host:
                  tags:
                    - 'dev'
                    - 'app1'
         

        詳細については、 エージェント設定ファイルを使ったホストエージェントの設定を参照してください。

  7. カスタムリソースYAMLファイルを適用する:

    kubectl apply -f instana-agent.customresource.yaml
     

    instana-agent.customresource.yaml はカスタムリソースのYAMLファイルの名前です。

    オペレーターは、カスタムリソース YAML ファイルから設定をピックアップし、Instana エージェントをデプロイします。

エージェントがインストールされている。 次のステップの詳細については、 次のステップのセクションを参照してください。

エージェントを更新するには、 オペレータ・インストールの更新を参照してください。

Helm チャートを使って取り付ける

エージェントのインストールには、 Helm チャートを使用できます。 Helm チャートは、 DaemonSet を使用してクラスタ内のワークロードのスケジューリングに使用できるすべてのワーカーノードに Instana エージェントを追加します。

Helm チャートを使用して Instana エージェントをインストールするには、まずローカルの helm CLI をバージョン 3 にインストールまたはアップグレードする必要があります。

Instana agent Helm チャートは Red Hat OpenShift 4.x をサポートしています。

Helm チャートを使用してエージェントをインストールするには、以下の手順を実行します:

  1. Instana UI のホームページで、 データソースの設定をクリックします。 Instana エージェント] タブで、[ エージェントのインストール ] を選択します。

  2. エージェント配備カタログページで、タイル Kubernetes - Helm chart をクリックします。

  3. クラスタ名と(オプションで)クラスタを所属させたいエージェントゾーンを入力します。

    クラスタ名(<your_cluster_name>)は、このデーモンセットが監視するクラスタのカスタマイズ名です。

    エージェントゾーン(<your_zone_name>)は、インフラストラクチャマップ上に表示されるゾーングルー プをカスタマイズするために使用される。

    エージェント配置コードは、指定した値で更新されます。 その他の必要なパラメータは、エージェント展開コードにあらかじめ入力されています:

    helm install instana-agent
    --repo https://agents.instana.io/helm \
    --namespace instana-agent \
    --create-namespace \
    --set agent.key='<your_agent_key>' \
    --set agent.endpointHost='<your_host_agent_endpoint>' \
    --set agent.endpointPort=443 \
    --set cluster.name='<your_cluster_name>' \
    --set zone.name='<your_zone_name>' \
    instana-agent
     

    または values.yaml ローカルに保存し、必須フィールドは必ず手動で設定してください。 その後、以下のコマンドを実行します。

    helm install instana-agent
    --repo https://agents.instana.io/helm \
    --namespace instana-agent \
    --create-namespace \
    -f values.yaml
    instana-agent
     
  4. エージェント配置コードを編集する:

    • インストールを設定するには、 --set フラグを使用してコマンドラインで値を指定するか、 -f フラグを使用して値を含む YAML ファイルを指定します。 すべての設定パラメータの詳細リストと例については、 Instana Helm チャートを参照してください。 また、以下のトピックも参照のこと:

    • 静的ホスト・エージェントを配備したい場合は、フラグ --set agent.image.name=containers.instana.io/instana/release/agent/static を設定する。

    • エージェントエンドポイントにTLS暗号化を設定したい場合は、既存のシークレットを使用するか、証明書と秘密鍵を使用します:

      • 型の既存の秘密を使用する。 kubernetes.io/tls

        TLS 暗号化には、kubernetes.io/tlsタイプの既存のシークレットを使用できます。 ただし、インストール時に --set 'agent.tls.secretName=<YOUR_SECRET_NAME>'secretName を指定する必要がある。 そして、提供された秘密のファイルがエージェントに含まれます。

      • 証明書と秘密鍵を使用する

        証明書と秘密鍵は base64-encoded でなければなりません。 この変種を使うには、 helm install に以下の追加パラメーターを付けて実行する:

        --set 'agent.tls.certificate=<YOUR_CERTIFICATE_BASE64_ENCODED>'
        --set 'agent.tls.key=<YOUR_PRIVATE_KEY_BASE64_ENCODED>'
         
        注: agent.tls.secretName が設定されている場合、 agent.tls.certificateagent.tls.key は無視される。
  5. エージェント展開コードをコピーして実行する。

エージェントがインストールされている。 次のステップの詳細については、 次のステップのセクションを参照してください。

エージェントを更新するには、 オペレータ・インストールの更新を参照してください。

静的なYAMLファイルを使ってインストールする

注: 静的 YAML ファイルを使用して Instana エージェントをインストールすることは推奨されません。 この方法は非推奨であり、2025年末までに削除される予定である。 代わりに、 Instana エージェントオペレータを使用してエージェントをインストールすることをお勧めします。

YAMLファイルを使用してエージェントをインストールするには、以下の手順を実行します:

  1. Instana UI のホームページで、 データソースの設定をクリックします。 Instana エージェント] タブで、[ エージェントのインストール ] を選択します。

  2. エージェント配置カタログページで、 Kubernetes - YAML タイルをクリックします。

  3. クラスタ名と(オプションで)クラスタを所属させたいエージェントゾーンを入力します。

    クラスタ名(<your_cluster_name>)は、このデーモンセットが監視するクラスタのカスタマイズ名です。

    エージェントゾーン(<your_zone_name>)は、インフラストラクチャマップ上に表示されるゾーングルー プをカスタマイズするために使用される。

    エージェント配置コードは、指定した値で更新されます。 その他の必要なパラメータは、エージェント展開コードにあらかじめ入力されています。

  4. Instana UI で提供される YAML テンプレートをコピーして、カスタムリソース YAML ファイルを作成します。 例: deployment.yaml

    YAML テンプレートには、 エージェントキーホストエージェントエンドポイント、クラスタ名、およびエージェント zone.4

  5. 必要に応じてYAMLファイルを編集する:

    • Instana ホストエージェントには、 privileged Pod Security Standard が必要です。 組み込みのポッドセキュリティ承認コントローラーでポッドセキュリティ標準を実施するには、次のコマンドを実行します:

      kubectl label --overwrite ns instana-agent pod-security.kubernetes.io/enforce=privileged
       
    • オプション: 1.8 より前の Kubernetes バージョンで RBAC を有効にしてデプロイするには、 rbac.authorization.k8s.io/v1rbac.authorization.k8s.io/v1beta1 に置き換えて RBAC api バージョンを指定します。

      Google Kubernetes Engine (GKE)などで、ユーザに認証ロールを作成する権限を付与するには、以下のコマンドを実行します:

      kubectl create clusterrolebinding cluster-admin-binding \
      --clusterrole cluster-admin --user $(gcloud config get-value account)
       

      RBACを有効にしない場合は、 instana-agent.yaml ファイルから ClusterRoleClusterRoleBinding を削除する必要がある。

    • オプション:Instana エージェントの PodSecurityPolicy を有効にするには、次の手順を実行します:

      1. Helm チャートで定義されているように、 PodSecurityPolicy リソースを作成する。

      2. instana-agent ClusterRole 前述の instana-agent.yaml ファイルに作成された ClusterRoleClusterRoleBinding リソースでRBACを有効にする必要があります。

      3. クラスタの PodSecurityPolicy アドミッションコントローラを有効にします。 既存のクラスタでは、アドミッションコントローラを有効にする前に、ポリシーを追加して認証することをお勧めします。

  6. 以下のコマンドを実行して、 Kubernetes クラスタ内にエージェントをインストールします:

    kubectl apply -f deployment.yaml
     

    deployment.yaml は前のステップで作成したYAMLファイルの名前です。

    これ以上 deployment.yaml ファイルを編集する場合は、以下のコマンドを実行して DaemonSet を再作成する必要があります:

    kubectl delete -f deployment.yaml
     
    kubectl apply -f deployment.yaml
     

エージェントがインストールされている。 次のステップの詳細については、 次のステップのセクションを参照してください。