このページでは、カスタム クラスタ エージェント コンテナ イメージを作成する方法、または公式にリリースされている事前作成されたイメージを使用して内部レジストリに保存する方法について説明します。

この手順は、次の場合に必須です。

  • カスタム クラスタ エージェント コンテナ イメージを作成する必要がある
  • DockerHub または RedHat Container Registry からの事前作成されたクラスタ エージェント イメージを使用して、内部レジストリに保存する必要がある

それ以外の場合は、cluster-agent.yaml または values.yaml Helm ファイルの AppDynamics DockerHub リポジトリまたは AppDynamics RedHat Registry にある事前作成されたクラスタ エージェント コンテナ イメージを直接プルして使用できます。

この例では、DockerHub にパブリッシュされた事前作成済みのクラスタ エージェント イメージ 21.12.0 を使用します。

apiVersion: cluster.appdynamics.com/v1alpha1
kind: Clusteragent
metadata:
 name: k8s-cluster-agent
 namespace: appdynamics
spec:
 controllerUrl: "http://<account>.saas.appdynamics.com"
 account: "<account-name>"
 appName: "Cluster1"
 image: docker.io/appdynamics/cluster-agent:21.12.0
YML
deploymentMode: PRIMARY


installclusteragent: true
installInfraviz: false


# Docker images
imageInfo:
agentImage: docker.io/appdynamics/cluster-agent
agentTag: 21.12.0
operatorImage: docker.io/appdynamics/cluster-agent-operator
operatorTag:21.12.0
imagePullPolicy: Always
machineAgentImage: docker.io/appdynamics/machine-agent-analytics
machineAgentTag:21.9.0
machineAgentWinTag:21.9.0-win-ltsc2019
netVizImage: docker.io/appdynamics/machine-agent-netviz
YML

カスタム クラスタ エージェント イメージの作成

AppDynamics ダウンロードポータルのダウンロードパッケージには、クラスタエージェントのコンテナイメージを作成および展開する必要があるファイルが含まれています。 

クラスタエージェントのイメージを作成するために使用されるベースイメージに応じて、ポータルで使用できるパッケージには次の 2 つのタイプがあります。

  • Alpine Linux ベース
  • Rhel Linux 7 ベースOpenshift クラスタにのみ推奨)

Alpine および Rhel Linux のダウンロードパッケージのディレクトリ構造は次のとおりです。

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
├── infraviz-pod-security-policy.yaml
├── infraviz-security-context-constraint-openshift.yaml
├── README-alpine.md 
└── docker 
    ├── cluster-agent.zip 
    ├── Dockerfile
    ├── LICENSE 
    └── start-appdynamics
└── helm-charts
	├── Chart.yaml
    ├── README.md
    ├── crds
    ├── templates
    └── values.yaml
TEXT
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 
├── infraviz.yaml
├── infraviz-pod-security-policy.yaml
├── infraviz-security-context-constraint-openshift.yaml
├── README-rhel.md 
└── docker 
    ├── cluster-agent.zip 
    ├── Dockerfile-rhel
    ├── LICENSE 
    └── start-appdynamics
└── helm-charts
	├── Chart.yaml
    ├── README.md
    ├── crds
    ├── templates
    └── values.yaml
TEXT

カスタム クラスタ エージェント イメージの作成

Rhel Linux 7 ベースのクラスタ エージェント イメージは、Red Hat Linux でのみ作成できます。Red Hat Linux はサブスクリプションベースのシステムです。Dockerfile-rhel で使用される microdnf などのパッケージマネージャを使用するには、Red Hat Linux システムに登録する必要があります。Rhel の docker build コマンドを実行する前に、次のタスクを実行します。

  1. Red Hat Linux 7 を使用します(Rhel VM Box、Rhel EC2 インスタンスなど)

  2. Red Hat Linux システムに登録するには、コマンドプロンプトから次のように入力します。

    $ subscription-manager register --username=<your-username> --password=<your-password>
    CODE
  3. プール ID を取得するには、次のように入力します。

    $ subscription-manager list --available
    CODE
  4. ステップ 3 でプール ID を追加するには、次のように入力します。

    $ subscription-manager attach --pool=<pool-id>
    CODE
  5. リポジトリを有効にするには、次のように入力します。

    $ subscription-manager repos --enable=rhel-7-server-rpms
    $ subscription-manager repos --enable=rhel-7-server-extras-rpms
    $ subscription-manager repos --enable=rhel-7-server-optional-rpms
    CODE
  6. Rhel マシンに Docker をインストールするには、次のように入力します。

    $ yum install docker device-mapper-libs device-mapper-event-lib
    CODE
  7. Docker サービスを開始するには、次のように入力します。

    $ systemctl start docker.service
    $ systemctl enable docker.service
    CODE
  8. Docker を使用して Rhel ベースのクラスタ エージェント イメージを作成するには、次のように入力します。

    $ docker build -t docker.io/<organization>/cluster-agent:<Agent-Version> -f Dockerfile-rhel
    CODE

    詳細については、Red Hat の Web サイトの「Using the docker command and service」を参照してください。


また、これらの手順は、Red Hat 公式 Web サイトの「Using the docker command and service」にもあります。

上記の手順を実行できない場合は、「事前構築済みのクラスタ エージェント イメージの使用」で述べた事前構築済みの Rhel ベースのクラスタ エージェント イメージを使用できます。この事前構築オプションでは、インストール済みの Docker と Red Hat ログイン情報が必要です。事前構築済みのイメージは、任意のオペレーティングシステムで実行できます。Red Hat ログイン情報を取得するには、Red Hat ポータルでアカウントを作成します

  1. ディレクトリを docker に変更します。

    $ cd docker
    CODE
  2. 次の構文を使用して docker イメージを構築し、タグを付けます。

    $ docker build -t <registryname>/<accountname>/cluster-agent:<Agent-version> --build-arg version=<alpine-version> .
    CODE
    $ docker build -t <registryname>/<accountname>/cluster-agent:<Agent-version> -f Dockerfile-rhel .
    CODE

    特定の Alpine イメージバージョンを使用する場合は、--build-arg version=<alpine-version> を使用してバージョンを指定できます。

    イメージバージョンを指定しない場合、build コマンドは最新の Alpine イメージバージョンを自動的に取得します。


    たとえば、アカウント名 johndoe: の Docker Hub レジストリで、最新の Alpine バージョンを使用してイメージバージョン 21.12.0 を作成し、タグ付けするには、次のようにします。

    $ docker build -t docker.io/johndoe/cluster-agent:21.12.0 .
    CODE
    $ docker build -t docker.io/johndoe/cluster-agent:21.12.0 -f Dockerfile-rhel .
    CODE
  3. ビルドが成功したら、このイメージがローカル Docker リポジトリに表示されていることを確認します。

  4. 次のようにしてイメージをプッシュします。

    $ docker push <registryname>/<accountname>/cluster-agent:<Agent-version>
    BASH

    たとえば、アカウント名 Johndoe の Docker Hub レジストリにイメージバージョン 21.12.0 をプッシュします:

    $ docker push docker.io/johndoe/cluster-agent:21.12.0
    BASH

事前構築済みのクラスタ エージェント イメージの使用

また、事前構築済みの Alpine ベースのクラスタエージェントまたは Rhel ベースのクラスタエージェントを内部レジストリに使用することもできます。

Alpine クラスタ エージェント イメージ

AppDynamics Docker Hub アカウントから事前構築された Alpine ベースのクラスタ エージェント イメージを使用できます。

  1. Docker Hub アカウントにログインします。

    $ docker login docker.io -u <your-username> -p <your-password>
    CODE
  2. 次のようにして、イメージをプルします。

    $ docker pull docker.io/appdynamics/cluster-agent:<Agent-version>
    CODE

    たとえば、Alpine ベースのクラスタ エージェント イメージ バージョン 21.12.0 をプルするには、次の手順を実行します。

    $ docker pull docker.io/appdynamics/cluster-agent:21.12.0
    CODE

このイメージを内部レジストリまたはアカウントにプッシュするには、次の手順を実行します。

  1. イメージの名前を変更します。

    $ docker tag docker.io/appdynamics/cluster-agent:<Agent-version> <registryname>/<accountname>/cluster-agent:<Agent-version>
    CODE

    次に例を示します。

    $ docker tag docker.io/appdynamics/cluster-agent:21.12.0 docker.io/johndoe/cluster-agent:21.12.0
    CODE
  2. 次のようにしてイメージをプッシュします。

    $ docker push <registryname>/<accountname>/cluster-agent:<Agent-version>
    CODE

    たとえば、アカウント名 Johndoe の Docker Hub レジストリにイメージバージョン 21.12.0 をプッシュするには、次のようにします。

    $ docker push docker.io/johndoe/cluster-agent:21.12.0
    CODE

Rhel クラスタ エージェント イメージ

または、AppDynamics Redhat Container Registry アカウントから事前構築された Rhel ベースのクラスタ エージェント イメージを使用することもできます。

  1. カスタマーポータルのログイン情報を使用して Red Hat Registry にログインします。

    $ docker login registry.connect.redhat.com -u <your-username> -p <your-password>
    CODE
  2. 次のようにして、イメージをプルします。

    $ docker pull registry.connect.redhat.com/appdynamics/cluster-agent:<Agent-version>
    CODE

    たとえば、Rhel ベースのクラスタ エージェント バージョン 21.12.0 をプルするには、次の手順を実行します。

    $ docker pull registry.connect.redhat.com/appdynamics/cluster-agent:21.12.0
    CODE

これでクラスタ エージェント イメージを使用できます。

このイメージを内部レジストリまたは別のアカウントにプッシュするには、次の手順を実行します。

  1. イメージの名前を変更します。

    $ docker tag registry.connect.redhat.com/appdynamics/cluster-agent:<Agent-version> <registryname>/<accountname>/cluster-agent:<Agent-version>
    CODE

    次に例を示します。

    $ docker tag registry.connect.redhat.com/appdynamics/cluster-agent:21.12.0 scan.connect.redhat.com/johndoe/cluster-agent:21.12.0
    CODE
  2. 次のようにしてイメージをプッシュします。

    $ docker push <registryname>/<accountname>/cluster-agent:<Agent-version>
    CODE

    たとえば、アカウント名 johndoe の Redhat Registry にイメージバージョン 21.12.0 をプッシュするには、次の手順を実行します。

    $ docker push scan.connect.redhat.com/johndoe/cluster-agent:21.12.0
    CODE

クラスタエージェントの YAML 仕様でのイメージの設定

cluster-agent.yaml でイメージを参照してください。spec:

apiVersion: cluster.appdynamics.com/v1alpha1
kind: Clusteragent
metadata:
  name: k8s-cluster-agent
  namespace: appdynamics
spec:
  controllerUrl: "http://<account>.saas.appdynamics.com"
  account: "<account-name>"
  appName: "Cluster1"
  image: <registryname>/<username>/cluster-agent:<Agent-version>
CODE

詳細については、AppDynamics サポートにお問い合わせください。