Download PDF
Download page クラスタエージェントの設定.
クラスタエージェントの設定
このページでは、ダウンロードポータルからダウンロードしたクラスタ エージェント バンドルの内容と、一般的な構成タスクの実行方法について説明します。
設定オプションの詳細については、「クラスタエージェント YAML ファイル設定リファレンス」を参照してください。
このページには、Kubernetes のマニュアルへのリンクが含まれています。Kubernetes で自身のマニュアルを管理しているため、AppDynamics では Kubernetes のマニュアルの精度については一切保証しません。
クラスタ エージェント バンドルのディレクトリ構造
解凍されたクラスタ エージェント バンドルには、次のディレクトリ構造が含まれています。
cluster-agent
├── cluster-agent-operator.yaml
├── appdynamics-operator-alpine-linux-amd64-21.12.0-88
├── cluster-agent-operator-openshift-1.15-or-less.yaml
├── cluster-agent-operator-openshift.yaml
├── cluster-agent.yaml
├── infraviz.yaml
├── README-alpine.md
└── docker
├── cluster-agent.zip
├── Dockerfile
├── LICENSE
└── start-appdynamics
└── helm-charts
├── Chart.yaml
├── README.md
├── crds
├── templates
└── values.yaml
cluster-agent
├── cluster-agent-operator.yaml
├── appdynamics-operator-rhel-linux-amd64-21.12.0-88
├── cluster-agent-operator-openshift-1.15-or-less.yaml
├── cluster-agent-operator-openshift.yaml
├── cluster-agent.yaml
├── README-rhel.md
└── docker
├── cluster-agent.zip
├── Dockerfile-rhel
├── LICENSE
└── start-appdynamics
└── helm-charts
├── Chart.yaml
├── README.md
├── crds
├── templates
└── values.yaml
クラスタ エージェント バンドル ファイル
この表では、クラスタエージェントのディレクトリファイルについて説明します。
ファイル名 | 説明 |
---|---|
appdynamics-operator-alpine-linux-amd64-21.12.0-88 | AppDynamics オペレータアーティファクトには、Alpine ベースのオペレータイメージを作成するために使用される、Dockerfile、オペレータバイナリ、ライセンス、およびスクリプトが含まれています。 |
appdynamics-operator-rhel-linux-amd64-21.12.0-88 | AppDynamics オペレータアーティファクトには、Rhel ベースのオペレータイメージを作成するために使用される、Dockerfile-rhel、オペレータバイナリ、ライセンス、およびスクリプトが含まれています。 |
| クラスタエージェントの構成と展開に使用されるファイル。
|
| クラスタ エージェント オペレータの展開に使用されるファイル。これらのファイルは、最小限の RBAC 権限を含む、Kubernetes、Amazon EKS、AKS のデフォルト値を設定します。 |
| Red Hat OpenShift でのクラスタエージェントの展開に使用されるファイル。これらのファイルは、最小限の RBAC 権限を含む Red Hat OpenShift のデフォルト値を設定します。 |
| Docker ディレクトリには、クラスタ エージェント イメージを作成するために必要なすべてのファイルが含まれています。 |
| Alpine ベースのクラスタ エージェント イメージの作成に使用される dockerfile 。 |
Dockerfile-rhel | Rhel ベースのクラスタ エージェント イメージの作成に使用される dockerfile 。 |
infraviz.yaml | InfraViz の構成と展開に使用されるファイル。
|
LICENSE | クラスタ エージェント イメージに添付された最新の EULA ファイル。 |
| クラスタエージェントのバイナリと構成ファイルを含む zip アーカイブ。 |
helm-charts | Kubernetes で Helm を使用してクラスタエージェントを展開するためのチャートの作成に使用されるフォルダ。 |
| 優先オペレーティングシステムを使用してクラスタエージェントを起動する方法に関する指示が含まれています。 |
| Docker 内でクラスタエージェントを実行するために使用するスクリプト。 |
プロキシサポートの構成
cluster-agent.yaml
ファイルを見つけて編集します。cluster-agent.yaml
ファイルにproxyUrl
パラメータを追加します。proxyUrl: <protocol>://<host>:<port>
TEXT(オプション)プロキシサーバで認証が必要な場合は、次の手順を実行します。
proxyUser
を追加します。proxyUser: <user>
CODEproxy-password
を使用してsecret
を作成します。kubectl -n appdynamics create secret generic cluster-agent-proxy-secret --from-literal=proxy-password='<password>'
CODE
- (オプション)プロキシにのみ SSL を使用する場合は、次の手順を実行します。
.pem
証明書ファイルからsecret
を作成します(証明書ファイルの名前はproxy-ssl.pem)
にする必要があります)。kubectl -n appdynamics create secret generic ssl-cert --from-file=proxy-ssl.pem
TEXTcluster-agent.yaml
ファイルでシークレットファイル名を設定します。customSSLSecret: “ssl-cert”
TEXT
プロキシおよびコントローラで SSL を使用するには、「プロキシ証明書とオンプレミス証明書の組み合わせ」を参照してください。
オンプレミスのコントローラに SSL を使用するためのクラスタエージェントの構成
SaaS コントローラでは、クラスタエージェント SSL が自動的に処理されます。
パブリック証明書と自己署名証明書を持つコントローラ
パブリック証明書または自己署名証明書を使用して SSL を構成するために、kubectl
を使用してシークレットを生成します。次の kubectl
コマンドを入力して、パブリック証明書または自己署名証明書へのパスを含めます。
kubectl -n appdynamics create secret generic ssl-cert --from-file=<path-to-your-self-signed-certs>/custom-ssl.pem
証明書ファイルには、次の名前を付ける必要があります。custom-ssl.pem
秘密が作成されたら、前の手順で指定した秘密名を使用して customSSLSecret
プロパティを cluster-agent.yaml
ファイルに追加する必要があります。
customSSLSecret: “ssl-cert”
プロキシ証明書とオンプレミス証明書の組み合わせ
2 つの異なる SSL 証明書(プロキシサーバに 1 つとオンプレミスコントローラに別の 1 つ)がある場合は、これらの両方を次のように 1 つのシークレットにカプセル化できます。
kubectl -n appdynamics create secret generic ssl-cert --from-file=proxy-ssl.pem --from-file=<path-to-your-self-signed-certs>/custom-ssl.pem
クラスタエージェントは、customSSLSecret
属性で指定されたシークレットから各証明書をプルし、適切に使用します。
この例は、 customSSLSecret
属性が定義された cluster-agent.yaml
ファイルを示しています。
apiVersion: cluster.appdynamics.com/v1alpha1
kind: Clusteragent
metadata:
name: k8s-cluster-agent-manual
namespace: appdynamics
spec:
# init agent configuration
appName: "test-k8s-cluster-agent"
controllerUrl: "https://<controller-url>:443" # always schema and port
account: "<account-name>" # account
# agent related properties
# custom SSL secret name
customSSLSecret: "ssl-cert"
# logging properties
logLevel: INFO
logFileSizeMb: 7
logFileBackups: 6
# docker image info
image: "<image-url>"
クラスタエージェントがコンテナレジストリからイメージをプルするためにシークレットを必要とする場合は、Kubernetes API を使用してシークレットを作成し、cluster-agent.yaml
で参照します。
$ kubectl -n appdynamics create secret docker-registry myregcred --docker-server=https://index.docker.io/v1 --docker-username=<docker-username> --docker-password=<docker-password> --docker-email=unused
$ oc -n appdynamics create secret docker-registry myregcred --docker-server=https://index.docker.io/v1 --docker-username=<docker-username> --docker-password=<docker-password> --docker-email=unused
$ oc -n appdynamics secrets link appdynamics-operator regcred --for=pull
cluster-agent.yaml
の imagePullSecret
プロパティを、上記で作成したシークレットの名前(myregcred
)に設定します。
kind: Clusteragent
metadata:
name: k8s-cluster-agent
namespace: appdynamics
spec:
appName: "mycluster"
controllerUrl: "http://<appdynamics-controller-host>:8080"
account: "<account-name>"
image: "<your-docker-registry>/appdynamics/cluster-agent:tag"
serviceAccountName: appdynamics-cluster-agent
imagePullSecret: "myregcred"
クラスタエージェント YAML
ファイル設定リファレンス
クラスタエージェントを構成するには、ダウンロードパッケージに含まれている cluster-agent.yaml
ファイルをテンプレートとして使用します。次のパラメータを変更できます。
パラメータ | 説明 | 例 | Default | 動的に構成可能 | タイプ(Type) | 要否 |
---|---|---|---|---|---|---|
| AppDynamics のアカウント名。 | admin | 該当なし | いいえ | 文字列 | 必須 |
| クラスタの名前。クラスタ名としてコントローラ UI に表示されます。 | k8s-cluster | 該当なし | いいえ | 文字列 | 必須 |
| プロトコルおよびポートを含むフル AppDynamics コントローラ URL。 | HTTP: http://appd-controller.com:8090/ HTTPS: https://appd-controller.com:443 | 該当なし | いいえ | 文字列 | 必須 |
| クラスタエージェントに自己署名証明書またはパブリック証明書を提供します。 | "ssl-cert" | 該当なし | いいえ | 文字列 | オプション |
| Kubernetes の警告および状態変更イベントがコントローラにアップロードされる頻度(秒単位)。Kubernetes イベントのモニタを参照してください。 | 10 | 10 | × | 整数 | オプション |
| コントローラから応答を受信しなかった場合にサーバコールが終了するまでの秒数。 | 30 | 30 | × | 整数 | オプション |
| クラスタ エージェント イメージ。 | your-docker-registry/appdynamics/cluster-agent:latest | 該当なし | いいえ | 文字列 | 必須 |
| プライベート Docker レジストリまたはリポジトリからイメージをプルする場合の認証に使用されるクレデンシャルファイル。Docker レジストリ構成に基づいて、クラスタエージェントのイメージをプルする場合に AppDynamics オペレータが使用するシークレットファイルの作成が必要になる場合があります。「Create a Secret by providing credentials on the command line」を参照してください。 | regcred | 該当なし | いいえ | 文字列 | オプション |
labels | 必要なポッドラベルをクラスタエージェントポッドに追加します。 | labels: | 次のラベルはデフォルトで作成され、変更できません。 このパラメータに指定したキーと値のペアは、デフォルト値とともにクラスタエージェントポッドに追加されます。 | いいえ | map[string]string | オプション |
| ログの最大ファイルサイズ(MB 単位)。 | 5 | 5 | はい | 整数 | オプション |
| ログに保存するバックアップの最大数。最大バックアップ数に達すると、最初のログファイルの次に最も古いログファイルが削除されます。 | 3 | 3 | はい | 整数 | オプション |
| ログの詳細の数。INFO 、WARNING 、DEBUG 、または TRACE 。 | "INFO" |
| はい | 文字列 | オプション |
maxPodLogsTailLinesCount | ログの収集中に tail される行数。 このパラメータを使用するには、ログキャプチャ機能を有効にします。「失敗したポッドのログ収集の有効化」を参照してください。 | 500 | 500 | [はい(Yes)] に設定 | 整数 | オプション |
| クラスタエージェントポッドは、その labels プロパティ内に指定された key-value ペアを含むノードで実行されます。「nodeSelector」を参照してください。 | nodeSelector: kubernetes.io/e2e-az-name: az1 | 該当なし | いいえ | map[string]string | オプション |
| クラスタ内でモニタされる名前空間。 | nsToMonitor: - "default" | default | いいえ | 文字列リスト(シーケンス) | オプション |
nsToMonitorRegex | クラスタでモニタする必要のある名前空間を選択するための正規表現。 このパラメータは、 このパラメータは、20.9 以上のクラスタエージェント、および 20.10 以上のコントローラでサポートされます。 「名前空間の編集」を参照してください。 | nsToMonitorRegex: .* | N/A | Yes | 正規表現 | オプション |
nsToExcludeRegex |
このパラメータは、20.9 以上のクラスタエージェント、および 20.10 以上のコントローラでサポートされます。 このパラメータは、 | nsToExcludeRegex: ns.* | N/A | Yes | 正規表現 | オプション |
| 次に基づいたブロックリストまたは許可リストポッド:
名前によるブロックリストまたは許可リストの登録は、ラベルによるブロックリストまたは許可リストの登録よりも優先されます。たとえば、 podFilter: blocklistedLabels: allowlistedNames: これにより、名前が「
| podFilter: | 該当なし | はい | 文字列 | オプション |
| プロキシのパブリックにアクセス可能なホスト名。 | https://myproxy.example.com:8080 | 該当なし | いいえ | 文字列 | オプション |
| 基本認証クレデンシャルに関連付けられているユーザ名。 | "user1" | 該当なし | いいえ | 文字列 | オプション |
resources | クラスタエージェントに対する CPU リソースとメモリリソースの要求と制限。 | resources: |
| はい | 配列 | オプション |
| デフォルトでは、クラスタエージェントは | "true", "false" | true | はい | 文字列 | オプション |
| ポッドに必要な許容値の配列。「Taint and Tolerations」を参照してください。 | tolerations: key:type value:test - effect: NoExecute key:node.kubernetes.io/not-ready operator:Exists tolerationSeconds:600 | 該当なし | いいえ | 配列 | オプション |
自動インストゥルメンテーションの構成について詳しくは、「クラスタエージェントを使用したアプリケーションの自動インストゥルメンテーション」を参照してください。また、.yaml
ファイルには、自動インストゥルメンテーションのための権限が含まれています。これは、デフォルトで有効になっています。自動インストゥルメンテーションを使用しない場合は、.yaml
ファイルから次のテキストを削除します。
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: appdynamics-cluster-agent-instrumentation
subjects:
- kind: ServiceAccount
name: appdynamics-cluster-agent
namespace: appdynamics
roleRef:
kind: ClusterRole
name: appdynamics-cluster-agent-instrumentation
apiGroup: rbac.authorization.k8s.io
クラスタ エージェント ファイルの例
次に、cluster-agent.yaml
構成ファイルの例を示します。
apiVersion: cluster.appdynamics.com/v1alpha1
kind: Clusteragent
metadata:
name: k8s-cluster-agent
namespace: appdynamics
spec:
appName: "<app-name>"
controllerUrl: "<protocol>://<appdynamics-controller-host>:8080"
account: "<account-name>"
# docker image info
image: "<your-docker-registry>/appdynamics/cluster-agent:tag"
nsToMonitor:
- "default"
eventUploadInterval: 10
containerRegistrationInterval: 120
httpClientTimeout: 30
customSSLSecret: "<secret-name>"
proxyUrl: "<protocol>://<domain>:<port>"
proxyUser: "<proxy-user>"
metricsSyncInterval: 30
clusterMetricsSyncInterval: 60
metadataSyncInterval: 60
containerBatchSize: 25
containerParallelRequestLimit: 3
podBatchSize: 30
metricUploadRetryCount: 3
metricUploadRetryIntervalMilliSeconds: 5
podFilter:
# blocklistedLabels:
# - label1: value1
# allowlistedLabels:
# - label1: value1
# - label2: value2
# allowlistedNames:
# - name1
# blocklistedNames:
# - name2
logLevel: "INFO"
logFileSizeMb: 5
logFileBackups: 3
stdoutLogging: "true"
resources:
limits:
cpu: 300m
memory: "200Mi"
requests:
cpu: 200m
memory: "100Mi"
labels:
key1: value1
key2: value2