Download PDF
Download page クラスタエージェントの設定.
クラスタエージェントの設定
このページでは、ダウンロードポータルからダウンロードしたクラスタ エージェント バンドルの内容と、一般的な構成タスクの実行方法について説明します。
設定オプションの詳細については、「クラスタエージェント YAML ファイル設定リファレンス」を参照してください。
このページには、Kubernetes のマニュアルへのリンクが含まれています。Kubernetes で自身のマニュアルを管理しているため、Splunk AppDynamics では Kubernetes のマニュアルの精度については一切保証しません。
クラスタ エージェント バンドルのディレクトリ構造
解凍されたクラスタ エージェント バンドルには、次のディレクトリ構造が含まれています。
cluster-agent ├── cluster-agent-operator.yaml ├── appdynamics-operator-alpine-linux-amd64-<version> ├── 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-alpine-linux-arm64-<version> ├── 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-<version> ├── 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-<version> | Splunk AppDynamics オペレータアーティファクトには、Alpine AMD ベースのオペレータイメージを作成するために使用される、Dockerfile、オペレータバイナリ、ライセンス、およびスクリプトが含まれています。 |
appdynamics-operator-alpine-linux-arm64-<version> | Splunk AppDynamics オペレータアーティファクトには、Alpine ARM ベースのオペレータイメージを作成するために使用される、Dockerfile、オペレータバイナリ、ライセンス、およびスクリプトが含まれています。 |
appdynamics-operator-rhel-linux-amd64-<version> | Splunk 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 の構成と展開に使用されるファイル。
|
ライセンス | クラスタ エージェント イメージに添付された最新の EULA ファイル。 |
| クラスタエージェントのバイナリと構成ファイルを含む zip アーカイブ。 |
helm-charts | Kubernetes で Helm を使用してクラスタエージェントを展開するためのチャートの作成に使用されるフォルダ。 |
| 優先オペレーティングシステムを使用してクラスタエージェントを起動する方法に関する指示が含まれています。 |
| Docker 内でクラスタエージェントを実行するために使用するスクリプト。 |
プロキシサポートの構成
Kubernetes のプロキシを理解するには、Kubernetes のドキュメント(「Proxies in Kubernetes」)を参照してください。
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) | 要否 |
---|---|---|---|---|---|---|
| Splunk AppDynamics アカウント名。 | admin | 該当なし | いいえ | 文字列 | 必須 |
| クラスタの名前。クラスタ名としてコントローラ UI に表示されます。 この名前は、同じクラスタまたは同じコントローラの一部である別のクラスタにインストールされているクラスタエージェントごとに一意であることを確認します。 | k8s-cluster | N/A | いいえ | 文字列 | 必須 |
| プロトコルおよびポートを含むフル Splunk AppDynamics コントローラ URL。 | HTTP:http://appd-controller.com:8090/ HTTPS:https://appd-controller.com:443 | N/A | いいえ | 文字列 | 必須 |
| クラスタエージェントに自己署名証明書またはパブリック証明書を提供します。 | "ssl-cert" | N/A | いいえ | 文字列 | オプション |
| Kubernetes の警告および状態変更イベントがコントローラにアップロードされる頻度(秒単位)。Kubernetes イベントのモニタを参照してください。 | 10 | 10 | × | 整数 | オプション |
| コントローラから応答を受信しなかった場合にサーバコールが終了するまでの秒数。 | 30 | 30 | × | 整数 | オプション |
| クラスタ エージェント イメージ。 | your-docker-registry/appdynamics/cluster-agent:latest | N/A | いいえ | 文字列 | 必須 |
| クラスタエージェントのイメージプルポリシー。 | IfNotPresent |
| いいえ | 文字列 | オプション |
| プライベート Docker レジストリまたはリポジトリからイメージをプルする場合の認証に使用されるクレデンシャルファイル。Docker レジストリ構成に基づいて、クラスタエージェントのイメージをプルする場合に Splunk AppDynamics オペレータが使用するシークレットファイルの作成が必要になる場合があります。「Create a Secret by providing credentials on the command line」を参照してください。 | regcred | N/A | いいえ | 文字列 | オプション |
instrumentationMaxPollingAttempts | クラスタエージェントがインストゥルメンテーションのロールアウトが成功したかどうかをチェックしてから失敗とマークするまでの最大回数。 | instrumentationMaxPollingAttempts: 15 | 10 | はい | integer | オプション |
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 | N/A | いいえ | map[string]string | オプション |
nsToMonitorRegex | クラスタでモニタする必要のある名前空間を選択するための正規表現。 複数の名前空間をモニターする必要がある場合は、スペースを使用せずに 「名前空間の編集」を参照してください。 |
| N/A | Yes | 正規表現 | オプション |
nsToExcludeRegex |
このパラメータは、20.9 以上のクラスタエージェント、および 20.10 以上のコントローラでサポートされます。 このパラメータは、 |
| N/A | Yes | 正規表現 | オプション |
| 次に基づいたブロックリストまたは許可リストポッド:
名前によるブロックリストまたは許可リストの登録は、ラベルによるブロックリストまたは許可リストの登録よりも優先されます。たとえば、 podFilter: blocklistedLabels: allowlistedNames: これにより、名前が '
| podFilter: | N/A | はい | 文字列 | オプション |
priorityClassName | ポッドの仕様で優先順位を設定するために使用される、ポッド優先順位クラスの名前。 | priorityClassName: system-node-critical | N/A | いいえ | 文字列 | オプション |
| プロキシのパブリックにアクセス可能なホスト名。 | https://myproxy.example.com:8080 | N/A | いいえ | 文字列 | オプション |
| 基本認証クレデンシャルに関連付けられているユーザ名。 | "user1" | N/A | いいえ | 文字列 | オプション |
リソース | クラスタエージェントに対する CPU リソースとメモリリソースの要求と制限。 | resources: |
| はい | 配列 | オプション |
| デフォルトでは、クラスタエージェントは | "true", "false" | true | はい | 文字列 | オプション |
| ポッドに必要な許容値の配列。「Taint and Tolerations」を参照してください。 | tolerations: key:type value:test - effect: NoExecute key:node.kubernetes.io/not-ready | N/A | いいえ | 配列 | オプション |
OpenShift バージョンが たとえば、 |
これにより、エージェント アーティファクトに適切なファイル権限が設定されます。 この値は、インストゥルメント化されたすべてのリソースに適用されます。 デフォルトのインストゥルメンテーション用に設定されている |
CODE
| N/A | No | 配列(Array) | オプション |
これにより、エージェント アーティファクトに適切なファイル権限が設定されます。 この値は、インストゥルメント化されたすべてのリソースに適用されます。 デフォルトのインストゥルメンテーション用に設定されている | ||||||
このパラメータを設定しない場合、Helm はデフォルト値 true を使用します。
| ||||||
| ||||||
このパラメータを設定しない場合、Helm はデフォルト値 true を使用します。
| ||||||
このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。 | ||||||
| ||||||
この値が true の場合、Kubelet は実行時にイメージを検証して、ルートとして実行したときにコンテナの開始が失敗することを確認します。このパラメータが指定されていない場合、または値が false の場合、検証は行われません。 このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。 | ||||||
| ||||||
| ||||||
|
自動インストゥルメンテーションの構成について詳しくは、「クラスタエージェントを使用したアプリケーションの自動インストゥルメンテーション」を参照してください。また、.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