エージェントのインストール Kubernetes
Instana エージェントは、 Kubernetes クラスタのオンラインまたはオフライン (エアギャップ) 環境にインストールできます。 以下のリストを参照して、前提条件を確認し、利用可能なすべてのインストール方法について学び、 Kubernetes にエージェントをインストールしてください。
前提条件
ホストエージェントをインストールする前に、 前提条件が満たされていることを確認してください。
エージェントのインストール方法の選択
以下のインストール・オプションのいずれかを選択し、関連するリンクをクリックして続行します:
オフライン (エアギャップ) 環境 (ホストが Instana ホストエージェントリポジトリと通信できる環境) では、 Kubernetes パッケージマネージャ Helm を使用するか、オペレータを使用してホストエージェントをインストールする必要があります。 続きは、 エアギャップ環境での Helm チャートを使用したインストールと、 エアギャップ環境でのオペレーターを使用したインストールを参照してください。
オンライン環境では、以下のいずれかの方法でホストエージェントをインストールできます:
複数のバックエンドへのレポートなど、利用可能なすべての設定オプションを使用し、完全に制御し、さらにいくつかのオプションを有効にするには、 Operatorを使用してインストールするか、 Helm チャートを使用してインストールします。
Helm チャートで利用可能なすべての設定オプションについては、 設定リファレンスを参照。 これらのコンフィギュレーション・オプションは、オペレーターCRDにも同様に適用されます。
エージェントを迅速にインストールしたい場合、または Instana エージェントにさらなるカスタマイズを適用する必要がなく、手動での
kubectl処理に依存する場合は、YAML ファイルをカスタマイズして Kubernetes クラスター内で静的な YAML を使用して Instana エージェントをインストールします。 しかし、コンフィギュレーション・オプションをオペレーターのやり方や Helm チャートのやり方として使うことはできない。
エアギャップ環境へのエージェントのインストール
エアギャップ環境にエージェントをインストールするには、2つの方法があります:
Helm チャートを使用して、エアギャップ環境で設置する
エアギャップ環境にエージェントをインストールするには、以下の手順を実行します:
以下のコマンドを実行して、 Docker をインストールする:
sudo yum install -y yum-utilssudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo systemctl start docker以下のコマンドを実行して、 Helm をインストールする:
sudo suyum install -y epel-releaseyum install -y snapdsystemctl enable --now snapd.socketln -s /var/lib/snapd/snap /snapsnap install helm --classic PATH="$PATH:/snap/bin/"helm version以下の手順でMinikubeをインストールします:
注: これらの手順は、ターゲット環境を示すための一例である。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 EOFkubectlコマンドラインツールをインストールします:
sudo yum install -y kubectlMinikube RPMパッケージをダウンロードします:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpmMinikube RPMパッケージをインストールします:
sudo rpm -Uvh minikube-latest.x86_64.rpmDocker を使って Kubernetes クラスタを開始する:
minikube start --force --driver=dockerMinikubeで使用できるように、 Docker :
eval $(minikube docker-env)Kubernetes クラスターをチェックする:
kubectl cluster-info
エアギャップ環境に移すために必要な Docker :
エージェントキーを使用して、Instana Container Registry にログインします:
docker login https://containers.instana.io/v2 -u _ -p <agentKey>Instana Container Registry からエージェントの最新バージョンを取り出します:
docker pull containers.instana.io/instana/release/agent/static:latest最新の Instana エージェント オペレータ イメージを取得します:
docker pull icr.io/instana/instana-agent-operator:latest最新バージョンのInstana Kubernetes センサーを引き抜く:
docker pull icr.io/instana/k8sensor:latestDocker レジストリからログアウトする:
docker logoutDocker 画像を
.tarファイルに変換する:docker imagesdocker tag <instanaAgentImageID> instana/agentdocker save instana/agent > instana-agent.tardocker tag <operatorImagerId> instana/instana-agent-operatordocker save instana/instana-agent-operator > instana-agent-operator.tardocker tag <k8SensorID> instana/k8sensordocker save instana/k8sensor > instana-k8sensor.tarファイル(
instana-agent.tar、instana-agent-operator.tar、instana-k8sensor.tar)を、エージェントをインストールするエアギャップホストにコピーします。エアギャップされたホストから現在の画像を削除する:
docker rmi -f <instanaAgentImageID> <operatorImagerId> <k8SensorID>.tarファイル (instana-agent.tar,instana-agent-operator.tar,instana-k8sensor.tar) から画像をインポートします:
docker load --input instana-agent.tardocker load --input instana-agent-operator.tardocker load --input instana-k8sensor.tarDocker レジストリー・サーバーを実行し、イメージをプッシュする:
docker run -d -p 5000:5000 --restart=always --name registry registry:2docker tag instana/agent:latest localhost:5000/instana-agentdocker push localhost:5000/instana-agentdocker tag instana/instana-agent-operator:latest localhost:5000/instana-agent-operatordocker push localhost:5000/instana-agent-operatordocker tag instana/k8sensor:latest localhost:5000/instana-k8sensordocker push localhost:5000/instana-k8sensor#Delete all images related to the agent: docker rmi -f <instanaAgentImageID> <k8SensorID> <operatorImagerId>Instana Helm チャートを以下のリポジトリからプルする:
helm pull instana-agent --repo https://agents.instana.io/helm --untar instana-agent注: カレントディレクトリに最新の Instana エージェント Helm チャートファイルがあるか確認してください。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 チャートファイルに置き換えます。以下のコマンドでポッドをチェックする:
kubectl get all -n instana-agent
エージェントがインストールされている。 次のステップの詳細については、「 次にすること 」のセクションを参照してください。
エアギャップ環境でのオペレーターによる設置
オペレータを使用してエアギャップ環境にエージェントをインストールするには、以下の手順を実行します:
以下の画像を引っ張ってくる。
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引き出された画像をローカル画像レジストリに再タグ付けする。
docker tag <public-image> <local-registry-image>再タグ付けされた画像をローカル画像レジストリにプッシュする。
docker push <local-registry-image>対象の 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からYAMLを取得する。 GitHub:
curl -L -o instana-agent-operator.yaml https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yaml画像参照をプライベートレジストリに置き換える。 例えば、
icr.io/instana/instana-agent-operator:2.1.8。オペレータを配置するために設定を適用します。
kubectl apply -f instana-agent-operator.yamlOpenShift CLI (
oc) がインストールされていない場合は、 Getting started with OpenShift CLI からダウンロードし、前のセクションで作成したイメージプル シークレットにアクセスできるようにサービスアカウントにパッチを当てることができます:oc patch serviceaccount instana-agent-operator -p '{"imagePullSecrets": [{"name": "local-registry-image-pull-secret"}]}' -n instana-agentファイル 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カスタムリソースをデプロイする:
$ kubectl apply -f agent.yaml- すべてのポッドが正しく始動していることを確認する。
エージェントがインストールされている。 次のステップの詳細については、 次のステップのセクションを参照してください。
オンライン環境へのエージェントのインストール
Instana エージェントを Kubernetes クラスタにインストールするには、次の方法を使用することをお勧めします:
- Operator を使用したインストール
- Helm チャートを使用したインストール
- 静的なYAMLファイルを使ってインストールする (推奨されていません。この方法は非推奨で、2025年末までに削除される予定です )
エージェントを再インストールする場合は、エージェントのクラスタレベルのオブジェクトをすべて削除するなど、エージェントがきれいにアンインストールされていることを確認してください。 詳細については、 Kubernetes の Instana エージェントのアンインストールを参照してください。
オペレータ、 Helm チャート、および YAML ファイルの新しいバージョンは、かなり頻繁にリリースされます。 修正、改善、および新機能の最新アップデートに対応するには、Operator、 Helm チャート、または YAML ファイルのいずれかの最新バージョンを実行していることを確認してください。
Operator、 Helm チャート、または YAML ファイルの現在のバージョンを確認するには、以下のトピックを参照してください:
オペレーターを使用してインストールする
エージェントのインストールには、Instana が提供する Kubernetes オペレータを使用できます。 以下の手順に従います。
Instana UI のホームページで、 データソースの設定をクリックします。 Instana エージェント] タブで、[ エージェントのインストール ] を選択します。
エージェント配置カタログページで、 Kubernetes - Operator タイルをクリックします。
以下のようにオペレーターをデプロイします。 このコマンドは、最新の 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 に更新します。
クラスタ名と、クラスタを所属させたいエージェントゾーン(オプション)を入力します。
クラスタ名(
<your_cluster_name>)は、このデーモンセットが監視するクラスタのカスタマイズ名です。エージェントゾーン(
<your_zone_name>)は、インフラストラクチャマップ上に表示されるゾーングルー プをカスタマイズするために使用される。Instana UI で提供される YAML テンプレートをコピーして、カスタムリソース YAML ファイルを作成します。
YAMLテンプレートには、 エージェントキー、 ホストエージェントエンドポイント、クラスタ名、エージェントゾーンがあらかじめ入力されています。
カスタムリソース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.certificateagent.tls.key
注:agent.tls.secretNameが設定されている場合、agent.tls.certificateとagent.tls.keyは無視される。
静的ホストエージェントをデプロイしたい場合は、静的エージェントイメージでカスタムリソースYAMLファイルを構成します。 静的ホスト・エージェント・イメージを一覧表示するには、
agent.image.nameをcontainers.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: stagingagent.configuration_yaml:このフィールドを使用して、エージェント設定ファイルconfiguration.yamlを指定します。 以下の例を参照してください。spec: agent: configuration_yaml: | # Example of configuration yaml template # Host com.instana.plugin.host: tags: - 'dev' - 'app1'詳細については、 エージェント設定ファイルを使ったホストエージェントの設定を参照してください。
カスタムリソースYAMLファイルを適用する:
kubectl apply -f instana-agent.customresource.yamlinstana-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 チャートを使用してエージェントをインストールするには、以下の手順を実行します:
Instana UI のホームページで、 データソースの設定をクリックします。 Instana エージェント] タブで、[ エージェントのインストール ] を選択します。
エージェント配備カタログページで、タイル Kubernetes - Helm chart をクリックします。
クラスタ名と(オプションで)クラスタを所属させたいエージェントゾーンを入力します。
クラスタ名(
<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エージェント配置コードを編集する:
インストールを設定するには、
--setフラグを使用してコマンドラインで値を指定するか、-fフラグを使用して値を含む YAML ファイルを指定します。 すべての設定パラメータの詳細リストと例については、 Instana Helm チャートを参照してください。 また、以下のトピックも参照のこと:静的ホスト・エージェントを配備したい場合は、フラグ
--set agent.image.name=containers.instana.io/instana/release/agent/staticを設定する。エージェントエンドポイントにTLS暗号化を設定したい場合は、既存のシークレットを使用するか、証明書と秘密鍵を使用します:
型の既存の秘密を使用する。
kubernetes.io/tlsTLS 暗号化には、
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.certificateとagent.tls.keyは無視される。
エージェント展開コードをコピーして実行する。
エージェントがインストールされている。 次のステップの詳細については、 次のステップのセクションを参照してください。
エージェントを更新するには、 オペレータ・インストールの更新を参照してください。
静的なYAMLファイルを使ってインストールする
YAMLファイルを使用してエージェントをインストールするには、以下の手順を実行します:
Instana UI のホームページで、 データソースの設定をクリックします。 Instana エージェント] タブで、[ エージェントのインストール ] を選択します。
エージェント配置カタログページで、 Kubernetes - YAML タイルをクリックします。
クラスタ名と(オプションで)クラスタを所属させたいエージェントゾーンを入力します。
クラスタ名(
<your_cluster_name>)は、このデーモンセットが監視するクラスタのカスタマイズ名です。エージェントゾーン(
<your_zone_name>)は、インフラストラクチャマップ上に表示されるゾーングルー プをカスタマイズするために使用される。エージェント配置コードは、指定した値で更新されます。 その他の必要なパラメータは、エージェント展開コードにあらかじめ入力されています。
Instana UI で提供される YAML テンプレートをコピーして、カスタムリソース YAML ファイルを作成します。 例:
deployment.yamlYAML テンプレートには、 エージェントキー、 ホストエージェントエンドポイント、クラスタ名、およびエージェント zone.4
必要に応じてYAMLファイルを編集する:
Instana ホストエージェントには、
privilegedPod Security Standard が必要です。 組み込みのポッドセキュリティ承認コントローラーでポッドセキュリティ標準を実施するには、次のコマンドを実行します:kubectl label --overwrite ns instana-agent pod-security.kubernetes.io/enforce=privilegedオプション: 1.8 より前の Kubernetes バージョンで RBAC を有効にしてデプロイするには、
rbac.authorization.k8s.io/v1をrbac.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ファイルからClusterRoleとClusterRoleBindingを削除する必要がある。オプション:Instana エージェントの PodSecurityPolicy を有効にするには、次の手順を実行します:
Helm チャートで定義されているように、
PodSecurityPolicyリソースを作成する。instana-agentClusterRole。 前述のinstana-agent.yamlファイルに作成されたClusterRoleとClusterRoleBindingリソースでRBACを有効にする必要があります。クラスタの PodSecurityPolicy アドミッションコントローラを有効にします。 既存のクラスタでは、アドミッションコントローラを有効にする前に、ポリシーを追加して認証することをお勧めします。
以下のコマンドを実行して、 Kubernetes クラスタ内にエージェントをインストールします:
kubectl apply -f deployment.yamldeployment.yamlは前のステップで作成したYAMLファイルの名前です。これ以上
deployment.yamlファイルを編集する場合は、以下のコマンドを実行して DaemonSet を再作成する必要があります:kubectl delete -f deployment.yamlkubectl apply -f deployment.yaml
エージェントがインストールされている。 次のステップの詳細については、 次のステップのセクションを参照してください。