Kubernetes へのエージェントのインストール
Instana エージェントは、 Kubernetes クラスタ内のオンライン環境またはオフライン(エアギャップ)環境にインストールできます。 以下のリストを参照して、前提条件を確認し、利用可能なすべてのインストール方法について確認した上で、 Kubernetes にエージェントをインストールしてください。
前提条件
エージェントのインストール方法を選択する
ホストエージェントは、 Kubernetes パッケージマネージャー( Helm )またはオペレーターを使用してインストールできます。 どちらのインストール方法も、オフライン(エアギャップ)環境およびオンライン環境の両方で利用可能です:
Helm チャートの利用可能なすべての設定オプションについては、 「設定リファレンス」 を参照してください。 これらのコンフィギュレーション・オプションは、オペレーターCRDにも同様に適用されます。
エアギャップ環境へのエージェントのインストール
エアギャップ環境にエージェントをインストールするには、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:latestInstana 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>ファイル(
instana-agent.tar、instana-agent-operator.tarおよびinstana-k8sensor.tar.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 エージェント用 Helm チャートファイルに置き換えて
instana-agent-1.2.61.tgzください。以下のコマンドでポッドをチェックする:
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ネームスペースにイメージのプルシークレットDockersecret)を作成する:
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_PASSWORDGitHub: から YAML を取得してください
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インストールされていない場合は、 「 OpenShift CLI のはじめに 」からダウンロードし、前のセクションで作成したイメージのプルシークレットにアクセスできるよう、サービスアカウントをパッチ適用してください:oc patch serviceaccount instana-agent-operator -p '{"imagePullSecrets": [{"name": "local-registry-image-pull-secret"}]}' -n instana-agentagent.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- すべてのポッドが正しく始動していることを確認する。
エージェントがインストールされました。 今後の手順について詳しくは、 「次の手順」 のセクションをご覧ください。
オンライン環境へのエージェントのインストール
Kubernetes クラスタに Instana エージェントをインストールするには、以下の方法を使用することをお勧めします:
エージェントを再インストールする場合は、エージェントのクラスタレベルのオブジェクトをすべて削除するなど、エージェントがきれいにアンインストールされていることを確認してください。 詳細については、 Kubernetes の「 Instana エージェントのアンインストール 」をご覧ください。
「Operator」および「 Helm 」のチャートは、かなり頻繁に新バージョンがリリースされています。 修正、改善、新機能に関する最新情報を常に把握しておくため、Operatorまたは Helm チャートの最新版が実行されていることを確認してください。
「Operator」または「 Helm 」チャートの最新バージョンを確認するには、以下のトピックを参照してください:
オペレーターを使用してインストールする
エージェントをインストールするには、 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 レジストリにおける
latestInstana エージェントのOperatorイメージのタグはサポートされていません。Instana Agent Operator の新しいバージョンを入手するには、前述の通り、 Operator の「 GitHub Releases」ページから最新の Operator 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'詳細については、 「エージェント設定ファイルを使用したホストエージェントの設定」 を参照してください。
- (オプション):`controller-manager` ポッドに許容誤差を追加するには、`controller-manager.conf` ファイル
instana-agent.customresource.yamlを手動で編集することもできます。 利用可能な設定オプションの詳細については、 Canonical設定ファイルを参照してください。
カスタムリソース YAML ファイルを適用します:
kubectl apply -f instana-agent.customresource.yamlここには、カスタムリソースの YAML
instana-agent.customresource.yamlファイルの名前を指定します。オペレーターは、カスタムリソースの YAML ファイルから設定を取得し、 Instana エージェントをデプロイします。
エージェントがインストールされました。 今後の手順について詳しくは、 「次の手順」 のセクションをご覧ください。
エージェントを更新するには、オペレータ・インストールの更新を参照してください。
Helm チャートを使用してインストールする
Helmチャートを使ってエージェントをインストールすることができます。 「 Helm 」チャートは、 DaemonSet を使用してクラスタ内のワークロードをスケジューリングするために使用できるすべてのワーカーノードに、 Instana エージェントを追加します。
Helm チャートを使用して Instana エージェントをインストールするには、まずローカルの helm CLIをバージョン3にインストールまたはアップグレードする必要があります。
Instana エージェントの Helm チャートは、 Red Hat OpenShift 4.x に対応しています。
Helmチャートを使用してエージェントをインストールするには、以下の手順を実行します:
Instana UIのホームページで、 「エージェントとコレクター」 をクリックします。 [ Instana ] の [エージェント] タブで、 [エージェントのインストール] を選択します。
エージェントデプロイメントカタログページで、タイルKubernetes-Helmchartをクリックします。
クラスタ名と(オプションで)クラスタを所属させたいエージェントゾーンを入力します。
クラスタ名(
<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/tls型の既存のシークレットを使用する。TLS 暗号化には、
kubernetes.io/tlsタイプの既存のシークレットを使用できます。 ただし、インストール時に'secretNameと'--set 'agent.tls.secretName=<YOUR_SECRET_NAME>'を指定する必要がある。 そして、提供された秘密のファイルがエージェントに含まれます。証明書と秘密鍵を使用する
証明書と秘密鍵は 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されます。
Kubernetes 環境で、 Helm リポジトリへのアクセスと Instana バックエンドへの接続に異なるプロキシが必要な場合は、インストール時にそれぞれ別のプロキシ設定を行うことができます。 設定オプションの詳細については、 「リポジトリと Instana バックエンド用の個別のプロキシ」 を参照してください。
エージェント展開コードをコピーして実行する。
エージェントがインストールされました。 今後の手順について詳しくは、 「次の手順」 のセクションをご覧ください。
エージェントを更新するには、オペレータ・インストールの更新を参照してください。