Download PDF
Download page Kubernetes CLI を使用したインフラストラクチャの可視性のインストール.
Kubernetes CLI を使用したインフラストラクチャの可視性のインストール
このページでは、クラスタ エージェント オペレータがインストールされている Kubernetes クラスタにマシンエージェントとネットワークエージェントをインストールする方法について説明します。
クラスタ エージェント オペレータは、InfraViz
と呼ばれるカスタムリソース定義を提供します。InfraViz
を使用すると、Kubernetes クラスタ内の daemonset
としてのマシンエージェントとネットワークエージェントの展開を簡素化できます。さらに、クラスタ エージェント オペレータを必要としない daemonset YAML
を作成することで、これらのエージェントを展開できます。詳細については、これらの例を参照してください。
分析エージェントを Kubernetes クラスタ内の daemonset
として展開するには、「Kubernetes でのエージェント側コンポーネントのインストール」を参照してください。
要 件
開始する前に、次のことを確認します。
- kubectl 1.16 以上がインストールされていること
- クラスタエージェント 21.3.1 以上
- 「クラスタエージェントの要件およびサポート対象環境」の要件を満たしていること
- サーバの可視性が必要な場合は、クラスタ内のワーカーノードの数に基づいて十分なサーバの可視性ライセンスがあること
- 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
BASH
コントローラに接続するマシン エージェント アクセス キーを使用して、クラスタ エージェント シークレットを作成します。
cluster-agent-secret
が存在しない場合は、作成する必要があります。「Kubernetes CLI を使用したクラスタエージェントのインストール」を参照してください。kubectl -n appdynamics create secret generic cluster-agent-secret --from-literal=controller-key=<access-key>
BASHコントローラの [License] ページの情報に基づいて、
controllerUrl
、account
、およびglobalAccount
の値を設定するように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
設定ファイルの例では、クラスタ内のノードごとに 1 つのポッドを実行する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
PodSecurityPolicies
が特定のポッド セキュリティ コンテキスト設定をブロックする環境では、infraviz.yaml
ファイルを編集する前にinfraviz-pod-security-policy.yaml
を展開する必要があります。特権ポッドなど、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
BASHkubectl 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 AppDynamics Machine Agent Successfully
BASH
混合オペレーティング システム クラスタ
クラスタ エージェント オペレータは、Linux と Windows の両方のノードにマシンエージェント daemonsets
を展開できます。混合オペレーティングシステム(OS)クラスタの展開戦略は、nodeOS
プロパティの値によって決まります。このプロパティは、次のいずれかのオプションに設定できます。
all
linux
windows
Linux と Windows の両方の daemonsets
が、単一の infraviz.yaml
ファイルで設定できる同じプロパティを共有する場合、nodeOS:
all
を設定します。nodeOS
が all
または windows
に設定されている場合、imageWin
プロパティを Windows マシンエージェントイメージに設定する必要があります。
この例では、単一の infraviz.yaml
ファイルを使用して、Windows および Linux ノードで実行されるマシンエージェントを設定します。
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
netVizImage: appdynamics/machine-agent-netviz:latest
netVizPort: 3892
resources:
limits:
cpu: 500m
memory: "1G"
requests:
cpu: 200m
memory: "800M"
imageWin: docker.io/appdynamics/machine-agent-analytics:win-latest
nodeOS: all
Windows と Linux の daemonsets
プロパティが異なり、別々の infraviz.yaml
ファイルで定義する必要がある場合、Set nodeOS: windows
または nodeOS: linux
を設定します。nodeOS
の値に応じて、クラスタ エージェント オペレータはマシンエージェントに nodeSelector
値を割り当て、マシンエージェントの配置を決定します。nodeOS: windows
では、"kubernetes.io/os"
を windows
に設定します。nodeOS: linux
では、kubernetes.io/os
を linux
に設定します。
このデフォルトの動作を上書きするには、infraviz.yaml
で n
odeSelector
を指定します。 {{2}}は特定の属性を識別し、 {{3}} はこの属性に割り当てる新規の値を指定します。
apiVersion: v1
kind: ServiceAccount
metadata:
name: appdynamics-infraviz
namespace: appdynamics
---
apiVersion: cluster.appdynamics.com/v1alpha1
kind: InfraViz
metadata:
name: appdynamics-infraviz
namespace: appdynamics
spec:
# ... content removed for brevity
nodeOS: windows
imageWin: docker.io/appdynamics/machine-agent-analytics:win-latest
nodeSelector:
kubernetes.io/os: my-windows-node-selector
InfraViz
設定
インフラストラクチャの可視性を設定するには、ダウンロードパッケージに含まれている infraviz.yaml
ファイルの次のパラメータを変更します。ファイルを変更したら、InfraViz
展開を削除して再作成し、変更を適用します。
パラメータ | 説明 | 必須/任意 | デフォルト |
---|---|---|---|
account | AppDynamics のアカウント名 | Required | 該当なし |
args | コマンド引数のリスト | オプション | 該当なし |
controllerUrl | AppDynamics コントローラの URL | Required | 該当なし |
enableContainerHostId | コンテナ名の導出方法を決定するフラグ。pod name または container id を指定します。 | 必須 | false |
enableMasters | デフォルトでは、ワーカーノードのみがモニタされます。true に設定すると、マスターノードに対してサーバの可視性が提供されます。管理対象の Kubernetes プロバイダーの場合、マスタープレーンにアクセスできないため、フラグは無効です。 | オプション | false |
enableServerViz | サーバの可視性の有効化 | 必須
| false |
enableDockerViz | Docker の可視性の有効化 | 必須 | false |
env | 環境変数のリスト | オプション | 該当なし |
eventServiceUrl | イベント サービス エンドポイント | オプション | 該当なし |
globalAccount | グローバルアカウント名 | Required | 該当なし |
image | マシンエージェントイメージの最新バージョンを取得します。 | オプション | appdynamics/machine-agent:latest |
imagePullSecret | プルシークレットイメージの名前 | オプション | 該当なし |
imageWin | Windows ノードのマシンエージェントイメージ | nodeOS が all または windows に設定されている場合は必須 | appdynamics/machine-agent-analytics:win-latest |
logLevel | ロギングの冗長性のレベル。有効なオプションは、info または debug です。 | オプション | info |
metricsLimit | マシンエージェントがコントローラに送信するメトリックの最大数。 | オプション | 該当なし |
netVizImage | ネットワーク エージェント イメージの最新バージョンを取得します。 | オプション | appdynamics/machine-agent-netviz:latest |
netVizPort | 0 より大きい場合、ネットワークエージェントはマシンエージェントとともにサイドカーに展開されます。デフォルトでは、ネットワークの可視性エージェントはポート 3892 で動作します。 | オプション | 3892 |
nodeSelector | daemonset ポッドのスケジューリング用のノードを識別する OS 固有のラベル。 | オプション | all |
| volumeMounts のリスト。 | オプション |
|
| ポッドを削除する必要がある場合の優先順位を決定するプライオリティクラスの名前。 | オプション | 該当なし |
propertyBag | その他のマシン エージェント パラメータを含む文字列 | オプション | 該当なし |
proxyUrl | プロキシサーバの URL(protocol://domain:port ) | オプション | 該当なし |
proxyUser | プロキシユーザのログイン情報(user@password ) | オプション | 該当なし |
resources | マシンエージェントのリソースと制限の定義 | オプション | 該当なし |
resourcesNetViz | ネットワークの可視性(NetViz)コンテナのリソースを設定 | オプション | Request
Limit
|
stdoutLogging | ログをファイルに保存するか、コンソールにリダイレクトするかを決定します。 | オプション | false |
tolerations | ノードに関連付けられている taint に基づく許容値のリスト。 | オプション | 該当なし |
uniqueHostId | AppDynamics の一意のホスト ID。有効なオプションは、spec.nodeName 、status.hostIP です。 | オプション | spec.nodeName |