Download PDF
Download page Helm チャートを使用したインフラストラクチャの可視性のインストール.
Helm チャートを使用したインフラストラクチャの可視性のインストール
このページでは、クラスタエージェントの Helm チャートを使用してインフラストラクチャの可視性(InfraViz)を展開する方法について説明します。
Helm は Kubernetes のパッケージマネージャです。Helm チャートは、一連の Kubernetes リソースについて説明するファイルのコレクションです。クラスタエージェントの Helm チャートは、Splunk AppDynamics オペレータと InfraViz を展開するのに便利な方法です。
この展開では、Windows コンテナはサポートされていません。
要件
マシン エージェント バージョン 21.9.0 以降
NetViz バージョン 21.3.0 以降
コントローラバージョン 20.6.0 以降
クラスタエージェントの Helm チャートが Helm 3.0 と互換性を持っている
クラスタエージェントの Helm チャートを使用して InfraViz をインストールするには、クラスタエージェントの Helm チャートのバージョンが 1.1.0 以降である必要があります。クラスタエージェントの Helm チャートのより古いバージョン(v0.1.19 以前)は機能しません。
- Kubernetes が 1.25 以降の環境では、PodSecurityPolicy は K8s 1.25 以降から削除されます(https://kubernetes.io/blog/2022/08/23/kubernetes-v1-25-release/#pod-security-changes)。ポッドのセキュリティ制限は、ポッドセキュリティ標準レベルを使用して名前空間レベル(https://kubernetes.io/docs/concepts/security/pod-security-admission/)で適用されるようになりました。そのため、インフラストラクチャの可視性ポッドが実行されている名前空間については、レベルを [Privileged] として設定する必要があります。
- Kubernetes のバージョンが 1.25 よりも前で、
PodSecurityPolicies
が特権ポッドなど、特定のポッド セキュリティ コンテキスト設定をブロックする環境では、infraviz.yaml
ファイルを編集する前にinfraviz-pod-security-policy.yaml
を展開する必要があります。PodSecurityPolicy をappdynamics-infraviz
serviceaccount に明示的にアタッチする必要があります。 - OpenShift
SecurityContextConstraints
が特権ポッドなど、特定のポッド セキュリティ コンテキスト設定をブロックする環境では、infraviz.yaml
ファイルを編集する前にinfraviz-security-context-constraint-openshift.yaml
を展開する必要があります。
クラスタへのインフラストラクチャの可視性のインストール
次のコマンドを使用して、AppDynamics エージェントに関連する、以前にインストールされたすべての CRD を削除します。
$ kubectl get crds $ kubectl delete crds <crd-names>
CODEチャートリポジトリを Helm に追加します。
$ helm repo add appdynamics-cloud-helmcharts https://appdynamics.jfrog.io/artifactory/appdynamics-cloud-helmcharts/
CODEクラスタで appdynamics の名前空間を作成します。
$ kubectl create namespace appdynamics
CODEこの values-ca1.yaml の例で、Helm 値のファイルを作成します。コントローラのログイン情報を使用して
controllerInfo
プロパティを更新します。Infraviz
およびnetviz
プロパティを更新します。enableMasters
、enableContainerHostId
、enableServerViz
などの使用可能なプロパティの詳細については、「InfraViz 構成設定」を参照してください。values-ca1.yaml
# To install InfraViz installInfraViz: true # Controller info controllerInfo: url: https://<controller-url>:443 account: <appdynamics-controller-account> username: <appdynamics-controller-username> password: <appdynamics-controller-password> accessKey: <appdynamics-controller-access-key> globalAccount: <appdynamics-controller-global-account> # InfraViz config infraViz: nodeOS: "linux" enableMasters: false stdoutLogging: false enableContainerHostId: true enableServerViz: true enableDockerViz: false runAsUser: <UID of runAsUser> runAsGroup: 1001 # Netviz config netViz: enabled: true netVizPort: 3892
YML使用可能なオプションの詳細については、「values.yaml の設定オプション」を参照してください。また、次のコマンドを使用して、Helm チャートリポジトリから
values.yaml
のコピーをダウンロードできます。helm show values appdynamics-charts/cluster-agent
CODEInfraViz を appdynamics 名前空間に展開します。
$ helm install -f ./values-ca1.yaml "< my-cluster-agent-helm-release >" appdynamics-charts/cluster-agent --namespace=appdynamics
CODE
設定オプション
設定オプション | 説明 | 必須 |
---|---|---|
| InfraViz のインストールに使用されます。これは true に設定する必要があります。 | 必須(デフォルトは false) |
イメージ設定オプション(values.yaml 内の imageInfo キーの下にあるオプション) | ||
| <registryUrl>/<registryAccount>/cluster-agent-operator 形式のオペレータのイメージアドレス | オプション(デフォルトは Docker Hub イメージ) |
| オペレータのイメージタグ/バージョン | オプション(デフォルトは 22.1.0) |
| オペレータポッドのイメージプルポリシー | オプション |
| <registryUrl>/<registryAccount>/machine-agent 形式のマシンエージェントのイメージアドレス | オプション(デフォルトは Docker Hub イメージ) |
| マシンエージェントのイメージタグ/バージョン | オプション(デフォルトは latest) |
| <registryUrl>/<registryAccount>/machine-agent-netviz 形式の NetViz エージェントのイメージアドレス | オプション(デフォルトは Docker Hub イメージ) |
| NetViz エージェントのイメージタグ/バージョン | オプション(デフォルトは latest) |
コントローラ設定オプション(values.yaml の controllerInfo キーの下にある設定オプション) | ||
| コントローラのアクセスキー | 必須 |
| コントローラのグローバルアカウント | 必須 |
| コントローラアカウント | 必須 |
| プロキシが認証を必要とする場合は true または false | オプション |
| PEM 形式の SSL 証明書の Base64 エンコーディング | オプション |
| コントローラのパスワード | 自動インストゥルメンテーションが有効になっている場合にのみ必須です。 |
| プロキシ認証のパスワード | オプション |
| コントローラが一部のプロキシの背後にある場合のプロキシ URL | オプション |
| プロキシ認証のユーザー名 | オプション |
| コントローラ URL | 必須 |
| カスタム SSL 構成を適用するキーストアファイル | オプション |
| カスタム SSL 構成を適用するキーストアパスワード | オプション |
| コントローラのユーザー名 | 自動インストゥルメンテーションが有効になっている場合にのみ必須です。 |
| プロキシサーバーの URL( | オプション |
| プロキシユーザーのログイン情報( | オプション |
RBAC 設定 | ||
| InfraViz が使用するサービスアカウント | オプション |
| 前述された ServiceAccounts が Helm によって作成される場合は true を設定 | オプション |
| Splunk AppDynamics オペレータが使用するサービスアカウント | オプション |
NetViz 設定 | ||
netViz.resourcesNetViz | ネットワークの可視性(NetViz)コンテナのリソースを設定 | オプション |
netViz.netVizPort | 0 より大きい場合、ネットワークエージェントはマシンエージェントとともにサイドカーに展開されます。デフォルトでは、ネットワークの可視性エージェントはポート 3892 で動作します。 | オプション |
netViz.securityContext.runAsGroup | アプリケーションコンテナを非ルートユーザーとして構成した場合は、対応するグループの これにより、エージェント アーティファクトに適切なファイル権限が設定されます。 この値は、インストゥルメント化されたすべてのリソースに適用されます。 デフォルトのインストゥルメンテーション用に設定されている | オプション |
netViz.securityContext.runAsUser | アプリケーションコンテナを非ルートユーザーとして構成した場合は、対応するユーザーの これにより、エージェント アーティファクトに適切なファイル権限が設定されます。 この値は、インストゥルメント化されたすべてのリソースに適用されます。 デフォルトのインストゥルメンテーション用に設定されている | オプション |
netViz.securityContext.allowPrivilegeEscalation | プロセスが親プロセスよりも多くの権限を取得できるかどうかを制御します。次のコンテナとして実行されている場合、この値は true です。
| オプション |
netViz.securityContext.capabilities | 実行中のコンテナの POSIX 機能を追加または削除します。これは、コンテナランタイムにデフォルトの機能セットを使用します。 これらの値は、値を指定するかどうかに関係なく、デフォルトで含まれます。
機能に値を指定すると、Helm はデフォルト値とともにその値を考慮します。
| オプション |
netViz.securityContext.privileged | ホストでのルートに相当する特権モードでコンテナを実行します。
| オプション |
netViz.securityContext.procMount | コンテナに使用する proc マウントのタイプ。 このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。 | オプション |
netViz.securityContext.readOnlyRootFilesystem | このコンテナに読み取り専用のルートファイルシステムがあるかどうかを指定します。
| オプション |
netViz.securityContext.runAsNonRoot | コンテナを非ルートユーザーとして実行する必要があるかどうかを指定します。 この値が true の場合、Kubelet は実行時にイメージを検証して、ルートとして実行したときにコンテナの開始が失敗することを確認します。このパラメータが指定されていない場合、または値が false の場合、検証は行われません。 このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。 | オプション |
netViz.securityContext.seLinuxOptions | SELinux コンテキストをコンテナに適用します。このパラメータが指定されていない場合、コンテナランタイムは各コンテナにランダムな SELinux コンテキストを割り当てます。
| オプション |
netViz.securityContext.seccompProfile | コンテナで使用される seccomp オプションを指定します。ポッドレベルとコンテナレベルの両方で seccomp オプションが指定されている場合、コンテナオプションはポッドオプションをオーバーライドします。
| オプション |
netViz.securityContext.windowsOptions | すべてのコンテナに Windows 固有のオプションを指定します。
| オプション |
InfraViz 設定 | ||
infraViz.appName | クラスタ名としてコントローラ UI に表示されるクラスタの名前。この設定によって、 | オプション |
infraViz.enableContainerHostId | コンテナ名の導出方法を決定するフラグ。true または false を指定します。 | 必須 |
infraViz.enableMasters | デフォルトでは、ワーカーノードのみがモニタされます。true に設定すると、マスターノードに対してサーバーの可視性が提供されます。管理対象の Kubernetes プロバイダーの場合、マスタープレーンにアクセスできないため、フラグは無効です。 | オプション |
infraViz.enableServerViz | サーバの可視性の有効化 | 必須 |
infraViz.enableDockerViz | Docker の可視性の有効化 | 必須 |
infraViz.eventServiceUrl | イベント サービス エンドポイント。 | オプション |
infraViz.runAsUser | コンテナプロセスのエントリポイントを実行する UID(ユーザー ID)。UID を指定しない場合、これはデフォルトで、イメージで指定されたユーザー ID になります。 他の UID で実行する必要がある場合は、グループ ID を変更せずに、runAsUser の UID を変更します。
このパラメータは廃止されます。 | オプション |
| ロギングの冗長性のレベル。有効なオプションは、 | オプション |
| マシンエージェントがコントローラに送信するメトリックの最大数。 | オプション |
| その他のマシン エージェント パラメータを含む文字列 | オプション |
infraViz.runAsGroup | コンテナプロセスのエントリポイントを実行する GID(グループ ID)。ID を指定しない場合、これはイメージで指定された UID を使用します。
このパラメータは廃止されます。 | オプション |
infraViz.stdoutLogging | ログをファイルに保存するか、コンソールにリダイレクトするかを決定します。 | オプション |
| Splunk AppDynamics の一意のホスト ID。有効なオプションは、 | オプション |
infraViz.securityContext.runAsGroup | アプリケーションコンテナを非ルートユーザーとして構成した場合は、対応するグループの これにより、エージェント アーティファクトに適切なファイル権限が設定されます。 この値は、インストゥルメント化されたすべてのリソースに適用されます。 デフォルトのインストゥルメンテーション用に設定されている | オプション |
infraViz.securityContext.runAsUser | アプリケーションコンテナを非ルートユーザーとして構成した場合は、対応するユーザーの これにより、エージェント アーティファクトに適切なファイル権限が設定されます。 この値は、インストゥルメント化されたすべてのリソースに適用されます。 デフォルトのインストゥルメンテーション用に設定されている | オプション |
infraViz.securityContext.allowPrivilegeEscalation | プロセスが親プロセスよりも多くの権限を取得できるかどうかを制御します。次のコンテナとして実行されている場合、この値は true です。
このパラメータを設定しない場合、Helm はデフォルト値
| オプション |
infraViz.securityContext.capabilities | 実行中のコンテナの POSIX 機能を追加または削除します。これは、コンテナランタイムにデフォルトの機能セットを使用します。
| オプション |
infraViz.securityContext.privileged | ホストでのルートに相当する特権モードでコンテナを実行します。 このパラメータを設定しない場合、Helm はデフォルト値
| オプション |
infraViz.securityContext.procMount | コンテナに使用する proc マウントのタイプ。 このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。 | オプション |
infraViz.securityContext.readOnlyRootFilesystem | このコンテナに読み取り専用のルートファイルシステムがあるかどうかを指定します。
| オプション |
infraViz.securityContext.runAsNonRoot | コンテナを非ルートユーザーとして実行する必要があるかどうかを指定します。 この値が true の場合、Kubelet は実行時にイメージを検証して、ルートとして実行したときにコンテナの開始が失敗することを確認します。このパラメータが指定されていない場合、または値が false の場合、検証は行われません。 このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。 | オプション |
infraViz.securityContext.seLinuxOptions | SELinux コンテキストをコンテナに適用します。このパラメータが指定されていない場合、コンテナランタイムは各コンテナにランダムな SELinux コンテキストを割り当てます。
| オプション |
infraViz.securityContext.seccompProfile | コンテナで使用される seccomp オプションを指定します。ポッドレベルとコンテナレベルの両方で seccomp オプションが指定されている場合、コンテナオプションはポッドオプションをオーバーライドします。
| オプション |
infraViz.securityContext.windowsOptions | すべてのコンテナに Windows 固有のオプションを指定します。
| オプション |
InfraViz のポッド設定 | ||
| InfraViz のポッド仕様の Kubernetes ノードセレクタフィールド。 | オプション |
| InfraViz のポッド仕様の Kubernetes CPU およびメモリのリソース。 | オプション |
| InfraViz ポッドのイメージプルポリシー。 | オプション |
infravizPod.imagePullSecret | プライベート Docker レジストリまたはリポジトリからイメージを取得する場合の認証に使用されるクレデンシャルファイル。 | オプション |
infravizPod.priorityClassName | ポッドの仕様で優先順位を設定するために使用される、ポッド優先順位クラスの名前。 | オプション |
infravizPod.env | 環境変数のリスト。 | オプション |
infravizPod.overrideVolumeMounts | volumeMounts のリスト。 | オプション |
infravizPod.tolerations | ノードに関連付けられている taint に基づく許容値のリスト。 | オプション |
オペレータのポッド設定 | ||
| Splunk AppDynamics オペレータのポッド仕様の Kubernetes ノードセレクタフィールド | オプション |
| Splunk AppDynamics オペレータのポッド仕様の Kubernetes 許容フィールド | オプション |
| Splunk AppDynamics オペレータポッド仕様の Kubernetes CPU およびメモリのリソース | オプション |
機密データのベストプラクティス
複数の values.yaml ファイルを使用して、機密データを個別の values.yaml ファイルに分けることを推奨します。これらの値の例を次に示します。
controllerInfo.password
controllerInfo.accessKey
controllerInfo.customSSLCert
controllerInfo.proxyPassword
各 values
のファイルはデフォルトの構造(values.yaml
)に従い、機密性の低い設定プロパティのファイルを簡単に共有し、機密性の高い値を安全に保ちます。
デフォルトの user-values.yaml
ファイルの例
user-values.yaml
# To install InfraViz installInfraViz: true imageInfo: operatorImage: docker.io/appdynamics/cluster-agent-operator operatorTag: 22.1.0 imagePullPolicy: Always # Will be used for operator pod machineAgentImage: docker.io/appdynamics/machine-agent machineAgentTag: latest netVizImage: docker.io/appdynamics/machine-agent-netviz netvizTag: latest controllerInfo: url: https://<controller-url>:443 account: <appdynamics-controller-account> username: <appdynamics-controller-username> password: <appdynamics-controller-password> accessKey: <appdynamics-controller-access-key> infravizServiceAccount: appdynamics-infraviz-ssl # Can be any valid name operatorServiceAccount: appdynamics-operator-ssl # Can be any valid name
user-values-sensitive.yaml
controllerInfo: password: welcome accessKey: abc-def-ghi-1516
Helm チャートをインストールする場合は、複数の -f
パラメータを使用してファイルを参照します。
helm install -f ./user-values.yaml -f ./user-values-sensitive.yaml "<my-cluster-agent-helm-release>" appdynamics-charts/cluster-agent --namespace ca-appdynamics
クラスタへのクラスタエージェントおよびインフラストラクチャの可視性のインストール
クラスタエージェントとインフラストラクチャの可視性を同時にインストールするには、「クラスタへのインフラストラクチャの可視性のインストール」に記載されている手順と同じ手順に従い、以下の更新を行います。
yaml ファイルで以下のように指定します(values.ca1 など):
installClusterAgent: true installInfraViz: true
CODE- コントローラのログイン情報を使用して
controllerInfo
プロパティを更新します。clusterAgent
プロパティを更新して、モニターする名前空間とポッドを設定します。nsToMonitor
、nsToMonitorRegex
、nsToExcludeRegex
などの使用可能なプロパティの詳細については、「クラスタエージェントの設定」を参照してください。InfraViz
およびNetViz
プロパティを更新します。values.yaml
のenableMasters
、enableContainerHostId
、enableServerViz
などの使用可能なプロパティの詳細については、「InfraViz 構成設定」を参照してください。