Download PDF
Download page Kubernetes CLI を使用したインフラストラクチャの可視性のインストール.
Kubernetes CLI を使用したインフラストラクチャの可視性のインストール
このページでは、クラスタ エージェント オペレータがインストールされている Kubernetes クラスタにマシンエージェントとネットワークエージェントをインストールする方法について説明します。
クラスタ エージェント オペレータは、InfraViz
というカスタムリソース定義を提供します。InfraViz
を使用すると、マシンエージェントとネットワークエージェントを daemonset
として Kubernetes クラスタに簡単に展開できます。さらに、クラスタ エージェント オペレータを必要としない daemonset YAML
を作成することで、これらのエージェントを展開できます。詳細については、これらの例を参照してください。
分析エージェントを Kubernetes クラスタ内の daemonset
として展開するには、「Kubernetes でのエージェント側コンポーネントのインストール」を参照してください。
この展開では、Windows コンテナはサポートされていません。
要 件
開始する前に、次のことを確認します。
- kubectl 1.16 以上がインストールされていること
- クラスタエージェント 21.3.1 以上
- 「クラスタエージェントの要件およびサポート対象環境」の要件を満たしていること
- サーバの可視性が必要な場合は、クラスタ内のワーカーノードの数に基づいて十分なサーバの可視性ライセンスがあること
- Cisco AppDynamics コントローラでサーバーを表示する権限
設置手順
クラスタエージェントのインストール)。この Alpine Linux の例から次の手順を実行します。
クラスタ エージェント バンドルをダウンロードします。
クラスタ エージェント バンドルを解凍します。
適切な Kubernetes および OpenShift バージョンを指定する CLI を使用してクラスタ エージェント オペレータを展開します(該当する場合)。
unzip appdynamics-cluster-agent-alpine-linux-<version>.zip kubectl create namespace appdynamics
BASHkubectl create -f cluster-agent-operator.yaml
BASHkubectl create -f cluster-agent-operator-openshift.yaml
BASHkubectl create -f cluster-agent-operator-openshift-1.15-or-less.yaml
BASHOpenShift クラスタの OpenShift OperatorHub からクラスタ エージェント オペレータをインストールすることもできます。
コントローラに接続するマシン エージェント アクセス キーを使用して、クラスタ エージェント シークレットを作成します。
cluster-agent-secret
が存在しない場合は、作成する必要があります。「Kubernetes CLI を使用したクラスタエージェントのインストール」を参照してください。kubectl -n appdynamics create secret generic cluster-agent-secret --from-literal=controller-key=<access-key>
BASH- (オプション)キーストアのログイン情報を使用して、インフラストラクチャの可視性のシークレットを作成します。
次のコマンドを実行して、custom-ssl.pem ファイルから CA 証明書をインポートします。
keytool -import -alias rootCA -file custom-ssl.pem -keystore cacerts.jks -storepass <your-password>
CODEキーストア ファイル シークレットを作成します。
kubectl -n appdynamics create secret generic <cacertinfraviz> --from-file=cacerts.jks
CODEキーストア パスワード シークレットの作成
kubectl -n appdynamics create secret generic <kspassinfraviz> --from-literal=keystore-password="<your-password>"
CODEここで、
cacertinfraviz
はキーストアのファイル名、kspassinfraviz
はインフラストラクチャの可視性のキーストアのパスワードです。ここで指定するキーストアファイルとパスワードは、カスタム SSL 構成を適用するために
infraviz.yaml
ファイルに含める必要があります。次の例を参考にしてください。keyStoreFileSecret: cacertinfraviz keystorePasswordSecret: kspassinfraviz
CODE
コントローラの [License] ページの情報に基づいて、
controllerUrl
およびaccount
の値を設定するようにinfraviz.yaml
ファイルを更新します。
サーバーの可視性を有効にするには、enableServerViz
をtrue
に設定します(infraviz.yaml
の設定例に示されています)。
サーバーの可視性を有効にせずにマシンエージェントを展開するには、enableServerViz
をfalse
に設定します。infraviz.yaml Configuration File with Server Visibility Enabled
apiVersion: v1 kind: ServiceAccount metadata: name: appdynamics-infraviz namespace: appdynamics --- apiVersion: cluster.appdynamics.com/v1alpha1 kind: InfraViz metadata: name: appdynamics-infraviz namespace: appdynamics spec: controllerUrl: "https://mycontroller.saas.appdynamics.com" image: "docker.io/appdynamics/machine-agent:latest" account: "<your-account-name>" globalAccount: "<your-global-account-name>" enableContainerHostId: true enableServerViz: true resources: limits: cpu: 500m memory: "1G" requests: cpu: 200m memory: "800M"
YMLinfraviz.yaml
構成ファイルの例では、クラスタ内のノードごとに単一のポッドを実行するdaemonset
を展開します。各ポッドは、マシンエージェント、またはサーバの可視性エージェントが実行される単一のコンテナを実行します。ネットワークの可視性エージェントを同じポッド内の 2 番目のコンテナで実行できるようにするには、次の構成ファイルの例に示すように、
netVizImage
とnetVizPort
のキーと値を追加します。infraviz.yaml Configuration File with Second Container in a Single Pod
apiVersion: v1 kind: ServiceAccount metadata: name: appdynamics-infraviz namespace: appdynamics --- apiVersion: cluster.appdynamics.com/v1alpha1 kind: InfraViz metadata: name: appdynamics-infraviz namespace: appdynamics spec: controllerUrl: "https://mycontroller.saas.appdynamics.com" image: "docker.io/appdynamics/machine-agent:latest" account: "<your-account-name>" enableContainerHostId: true enableServerViz: true netVizImage: appdynamics/machine-agent-netviz:latest netVizPort: 3892 resources: limits: cpu: 500m memory: "1G" requests: cpu: 200m memory: "800M"
YMLkubectl
を使用してinfraviz.yaml
を展開します。- Kubernetes が 1.25 以降の環境では、PodSecurityPolicy は Kubernetes 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
サービスアカウントに明示的にアタッチする必要があります。 - 特権ポッドなど、OpenShift
SecurityContextConstraints
が特定のポッド セキュリティ コンテキスト設定をブロックする環境では、infraviz.yaml
ファイルを編集する前にinfraviz-security-context-constraint-openshift.yaml
を展開する必要があります。
kubectl create -f infraviz.yaml
BASHkubectl create -f infraviz-pod-security-policy.yaml kubectl create -f infraviz.yaml
BASHインフラストラクチャの可視性がインストールされている名前空間に次の Kubernetes ラベルを指定します。
pod-security.kubernetes.io/<MODE>: <LEVEL>(必須)
pod-security.kubernetes.io/<MODE>-version: <VERSION>(オプション)
詳細については、https://kubernetes.io/docs/tasks/configure-pod-container/enforce-standards-namespace-labels/ を参照してください。sample-namespace.yaml
apiVersion: v1 kind: Namespace metadata: name: appdynamics labels: pod-security.kubernetes.io/enforce: privileged pod-security.kubernetes.io/enforce-version: v1.27 pod-security.kubernetes.io/audit: privileged pod-security.kubernetes.io/audit-version: v1.27 pod-security.kubernetes.io/warn: privileged pod-security.kubernetes.io/warn-version: v1.27
YML
次のコマンドを実行します。
kubectl create -f infraviz.yaml
CODE
kubectl create -f infraviz-security-context-constraint-openshift.yaml kubectl create -f infraviz.yaml
BASHappdynamics-infraviz
ポッドが実行中で、マシンエージェント、サーバの可視性エージェント、およびネットワークエージェントのコンテナの準備が完了していることを確認します。kubectl -n appdynamics get pods NAME READY STATUS RESTARTS AGE appdynamics-infraviz-shkhj 2/2 Running 0 18s
BASHエージェントがコントローラに登録されていることを確認するには、ログを確認し、エージェントがコントローラ管理 UI の [Agents Dashboard] に表示されることを確認します。コントローラでサーバの可視性が有効になっている場合、ノードは [ Controller] > [Servers] の下に表示されます。
kubectl -n appdynamics logs appdynamics-infraviz-shkhj -c appd-infra-agent ... Started Machine Agent Successfully
BASH
InfraViz
設定
インフラストラクチャの可視性を設定するには、ダウンロードパッケージに含まれている infraviz.yaml
ファイルの次のパラメータを変更します。ファイルを変更したら、InfraViz
展開を削除して再作成し、変更を適用します。
パラメータ | 説明 | 必須/任意 | デフォルト |
---|---|---|---|
account | Cisco AppDynamics アカウント名 | Required | 該当なし |
appName | クラスタ名としてコントローラ UI に表示されるクラスタの名前。この設定によって、master 、worker 、infra 、worker-infra ロールに基づいてクラスタのノードがグループ化され、メトリックブラウザに表示されます。 | オプション | 該当なし |
args | コマンド引数のリスト | オプション | 該当なし |
controllerUrl | Cisco AppDynamics コントローラの URL | Required | 該当なし |
enableContainerHostId | コンテナ名の導出方法を決定するフラグ。true または false を指定します。 | 必須 | true |
enableMasters | デフォルトでは、ワーカーノードのみがモニタされます。true に設定すると、マスターノードに対してサーバの可視性が提供されます。管理対象の Kubernetes プロバイダーの場合、マスタープレーンにアクセスできないため、フラグは無効です。 | オプション | false |
enableServerViz | サーバの可視性の有効化 | 必須
| false |
enableDockerViz | Docker の可視性の有効化 | 必須 | false |
env | 環境変数のリスト | オプション | 該当なし |
eventServiceUrl | イベント サービス エンドポイント | オプション | 該当なし |
globalAccount | グローバルアカウント名 | オプション | 該当なし |
image | マシンエージェントイメージの最新バージョンを取得します。 | オプション | appdynamics/machine-agent:latest |
imagePullPolicy | InfraViz ポッドのイメージプルポリシー。 | オプション |
|
imagePullSecret | プルシークレットイメージの名前 | オプション | 該当なし |
logLevel | ロギングの冗長性のレベル。有効なオプションは、info または debug です。 | オプション | info |
metricsLimit | マシンエージェントがコントローラに送信するメトリックの最大数。 | オプション | 該当なし |
netVizImage | ネットワーク エージェント イメージの最新バージョンを取得します。 | オプション | appdynamics/machine-agent-netviz:latest |
netVizPort | 0 より大きい場合、ネットワークエージェントはマシンエージェントとともにサイドカーに展開されます。デフォルトでは、ネットワークの可視性エージェントはポート 3892 で動作します。 | オプション | 3892 |
nodeSelector | daemonset ポッドのスケジューリング用のノードを識別する OS 固有のラベル。 | オプション | linux |
| volumeMounts のリスト。 | オプション |
|
| ポッドを削除する必要がある場合の優先順位を決定するプライオリティクラスの名前。 | オプション | 該当なし |
propertyBag | その他のマシン エージェント パラメータを含む文字列 | オプション | 該当なし |
proxyUrl | プロキシサーバの URL(protocol://domain:port ) | オプション | 該当なし |
proxyUser | プロキシユーザのログイン情報(user@password ) | オプション | 該当なし |
resources | マシンエージェントのリソースと制限の定義 | オプション | 該当なし |
resourcesNetViz | ネットワークの可視性(NetViz)コンテナのリソースを設定 | オプション | Request
Limit
|
runAsUser | コンテナプロセスのエントリポイントを実行する UID(ユーザー ID)。UID を指定しない場合、これはデフォルトで、イメージで指定されたユーザー ID になります。 docker.io/appdynamics/machine-agent docker.io/appdynamics/machine-agent-analytics:latest 他の UID で実行する必要がある場合は、グループ ID を変更せずに、runAsUser の UID を変更します。 | オプション |
|
runAsGroup | コンテナプロセスのエントリポイントを実行する GID(グループ ID)。ID を指定しない場合、これはイメージで指定された UID を使用します。 | オプション | UID: 1001 Username: appdynamics |
stdoutLogging | ログをファイルに保存するか、コンソールにリダイレクトするかを決定します。 | オプション | false |
tolerations | ノードに関連付けられている taint に基づく許容値のリスト。 | オプション | 該当なし |
uniqueHostId | Cisco AppDynamics の一意のホスト ID。有効なオプションは、 | オプション | spec.nodeName |