Instana Enterpriseオペレーターのインストール

「 kubectl 」プラグインを使用して、「 Instana Enterprise」オペレーターをインストールします。 Instana Enterpriseオペレーターをインストールするには、一連のシークレットを設定する必要があります。

このトピックでは、「 Kubernetes 」と「 Red Hat OpenShift 」を同義語として扱っています。 Kubernetes オブジェクトのリファレンスは、 Red Hat OpenShiftにも適用されます。

イメージのプル用シークレットの作成

Docker のレポジトリをミラーリングしている独自のレポジトリを持っており、 artifact-public.instana.io かつプルシークレットを必要としない場合を除き、 Instana Enterpriseオペレーターをインストールするネームスペース用にイメージのプルシークレットを作成する必要があります。 以下の手順に従います。

  1. Instana Enterpriseオペレーターをインストールするネームスペースを作成します。

    kubectl create ns <namespace_name>
     

    < namespace_name> を目的の名前空間名 ( instana-operatorなど) に置き換えます。

  2. 以下のいずれかの方法を使用して、作成した名前空間に秘密をインストールします。

    • シークレットを直接作成します。

      kubectl create secret docker-registry <secret-name> \
          --namespace=<namespace_name> \
          --docker-username=_ \
          --docker-password=<agent_key> \
          --docker-server=artifact-public.instana.io
       
      • <namespace_name> を、 Instana Enterprise オペレーターをインストールするネームスペース名に置き換えてください。
      • < agent_key> をエージェント・キーに置き換えます。
      • < secret-name> は、必要なシークレット名に置き換えてください。
    • 「 YAML 」を適用せずに、そのシークレット用の「 YAML 」を作成します。 秘密は作成されずに印刷されます。

      kubectl create secret docker-registry <secret-name> \
          --namespace=<namespace_name> \
          --docker-username=_ \
          --docker-password=<agent_key> \
          --docker-server=artifact-public.instana.io \
          --dry-run=client \
          --output=yaml
       

      次に、シークレットを作成します。

      kubectl create -f <secret-file-name.yaml> --namespace <namespace>
       
    • (任意):社内イメージレジストリで認証が必要な場合は、イメージプル用シークレットを作成してください。

      kubectl create secret docker-registry <secret_name> --namespace <namespace> \
      --docker-username=<registry_username> \
      --docker-password=<registry_password> \
      --docker-server=<internal-image-registry>:<internal-image-registry-port> \
      --docker-email=<registry_email>
       

Admission Webhook用の TLS シークレットの作成

オペレーターには、デフォルト設定、検証、およびバージョン変換用のアドミッション Webhook が用意されています。 アドミッション Web フックには TLS が必要です。つまり、TLS 証明書を用意する必要があります。

タイプ の instana-operator-webhookkubernetes.io/tlsTLS シークレットが存在することを確認してください。 cert-manager か、カスタム証明書のいずれかを使用するように選択できます。

cert-manager の使用

デフォルトでは、 cert-manager を使用してシークレットを自動的にプロビジョニングします。 クラスタに cert-manager がインストールされていれば、これはそのまま動作します。 この場合、インストール時に Issuer オブジェクトとCertificateオブジェクトが作成され、これにより cert-manager が証明書のプロビジョニングとインジェクションを行います。

cert-manager のインストールに関する詳細については、 cert-manager のドキュメントを参照してください。

カスタム証明書の使用

cert-manager を使用することをお勧めします。 ただし、自分で証明書をプロビジョンしたい場合は、プロビジョンすることができます。 シークレットには、以下の項目が含まれている必要があります。

  • ca.crt
  • tls.crt
  • tls.key

証明書 (tls.crt) には、以下の DNS 名が含まれている必要があります。

  • instana-operator.<namespace>.svc
  • instana-operator.<namespace>.svc.<clusterDomain>
  • <namespace> を、 Instana Enterprise オペレーターをインストールする名前空間の名前に置き換えてください。
  • <clusterDomain> 」を、 Instana Enterpriseオペレーターをインストールするクラスターのドメイン名に置き換えてください。

TLS のシークレット instana-operator-webhook (タイプ kubernetes.io/tls)を作成するには、次のいずれかの方法を使用します:

  • シークレットを直接作成します。

    kubectl create secret generic instana-operator-webhook \
        --type=kubernetes.io/tls \
        --from-file=tls.key=path/to/tls.key \
        --from-file=tls.crt=path/to/tls.crt \
        --from-file=ca.crt=path/to/ca.crt
     
  • 適用せずに、そのシークレット用の YAML を作成します。 秘密は作成されずに印刷されます。

    kubectl create secret generic instana-operator-webhook \
        --type=kubernetes.io/tls \
        --from-file=tls.key=path/to/tls.key \
        --from-file=tls.crt=path/to/tls.crt \
        --from-file=ca.crt=path/to/ca.crt \
        --dry-run=client \
        --output=yaml
     

    次に、シークレットを作成します。

    kubectl create -f <secret-file-name.yaml>
     

valuesファイルの作成

この values ファイルには、 Instana Enterpriseオペレーターの設定が含まれています。 このメカニズムは、 Helmによって使用されるメカニズムと同じです。

設定可能なオプションは、 「 Instana Enterprise オペレーター設定オプション 」の表に記載されています。

values ファイル内のデフォルト構成に加えて、 イメージ・プル・シークレットの作成 セクションで作成したイメージ・プル・シークレットで imagePullSecrets フィールドを更新する必要があります。

作業ディレクトリーに values.yaml ファイルを作成し、以下の行を追加します。

imagePullSecrets:
  - name: <image_pull_secret>
 
注: 「<image_pull_secret> 」の部分を、「イメージプルシークレットの作成 」のセクションで作成したイメージプルシークレットに置き換えてください。

以下の values ファイルの例を参照してください。

operator:
  image:
    registry: my.registry.com
webhook:
  image:
    registry: my.registry.com

imagePullSecrets:
  - name: my-registry-secret
 

IBM Z® および LinuxONE の値ファイルの更新 ( s390x )

注: このセクションは、 IBM Z® および LinuxONE ( s390x ) への Custom Edition のインストールにのみ適用されます。

IBM Z® および LinuxONE ( s390x ) 上でセルフホスト型カスタムエディションを実行するためのシステム要件を満たしていることを確認してください。 詳細については、 IBM Z® および LinuxONE ( s390x ) の「Custom Edition のシステム要件 」をご覧ください。

IBM Z® および LinuxONE ( s390x ) に Custom Edition をインストールするには、operator ファイル values.yaml に以下の行を追加してください:

operator:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: node-role.kubernetes.io/monitor
            operator: In
            values:
            - "true"
  tolerations:
    - key: node.instana.io/monitor
      operator: "Exists"
      effect: "NoSchedule"
webhook:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: node-role.kubernetes.io/monitor
            operator: In
            values:
            - "true"
  tolerations:
    - key: node.instana.io/monitor
      operator: "Exists"
      effect: "NoSchedule"
 

Instana Enterpriseオペレーターのインストール

以下の2つの方法のいずれかを使用して、 Instana Enterpriseオペレーターのインストールを続行できます。

注:Instana ではマルチアーキテクチャイメージが使用されています。 画像はすべてのプラットフォームで同じです。

マニフェストを直接適用する

このオプションでは、CRD を作成し、オペレーターのデプロイメントおよび関連するリソースを Kubernetes クラスターにインストールします。

注:cert-manager をカスタムクラスタドメイン(つまり、 ではないもの cluster.local)と組み合わせて使用する場合、または証明書を自身で生成した場合は、特に注意が必要です。
  • Instana Enterpriseオペレーターを、`` instana-operatorなどの指定されたネームスペースにインストールするには、次のコマンドを実行します:

    kubectl instana operator apply --values values.yaml --namespace=instana-operator
     
  • カスタム証明書を使用して、指定したネームスペースに Instana Enterpriseオペレーターをインストールするには、次のコマンドを実行します

    kubectl instana operator apply --values values.yaml --ca-bundle-base64=<base64-encoded ca.crt file> --namespace=instana-operator
     

    <base64-encoded ca.crt file> を base64-encoded CA バンドル・ファイル名に置き換えます。

まずマニフェストをレンダリングし、次にマニフェストを適用する

マニフェストをレンダリングし、最初にそれらを標準出力 (STDOUT) または特定のディレクトリー内のファイルに書き込みます。 マニフェストをレンダリングするには、以下のステップのいずれかを実行します。

  • 指定された名前空間で YAML ファイルをレンダリングし、指定されたディレクトリに書き出すには:

    kubectl instana operator template --values values.yaml --namespace=instana-operator --output-dir <dir>
     
  • カスタムクラスタドメインを使用して、指定された名前空間の YAML ファイルをレンダリングし、指定されたディレクトリに書き出すには:

    kubectl instana operator template --values values.yaml --cluster-domain=my-domain.local --namespace=instana-operator --output-dir <dir>
     
  • 指定した名前空間を持つ YAML ファイルをレンダリングし、カスタム証明書を使用して指定したディレクトリに書き出すには:

    kubectl instana operator template --values values.yaml --ca-bundle-base64=<base64-encoded ca.crt file> --namespace=instana-operator --output-dir <dir>
     

    <base64-encoded ca.crt file> を base64-encoded CA バンドル・ファイル名に置き換えます。

その後、 「マニフェストの直接適用」のコマンドを使用して、マニフェストを適用できます。

バックエンドのバージョンを更新する

Instana のバックエンドは、デフォルトのリリースバージョンでデプロイされます。 可能であれば、最新のパッチリリースを使用するか、利用可能なより新しい Instana バックエンドバージョンに更新してください。

Instana のバックエンドをアップグレードするには、以下の versionsinstana-kubectl コマンドを使用できます。 詳しくはアップグレード手順をご覧ください。

Instana Enterpriseのオペレーターステータスの確認

ポッドの問題を調べるには、ポッドのイベントを確認します。

すべてのイベントを検索するには、以下のいずれかのコマンドを実行します。

   oc/kubectl get events -n instana-core
 
    oc/kubectl get events -n instana-units
 

エラーが表示された場合は、オペレーター・ログを確認してください。

オペレーター・ログを確認するには、以下の手順を実行します。

  1. オペレーターの名前と状況を確認します。

        oc get pods -n instana-operator
     
  2. オペレーターのログを確認してください。

        oc logs -f -n instana-operator <Pod name>
     

オプション:高度な演算子設定の使用

Instana Enterpriseオペレーターをインストールした後、「 valuesファイルの作成」 セクションで作成した YAMLvalues ファイルを更新することで、 Instana Enterpriseオペレーターを設定できます。

設定可能なオプションについては、 『 Instana Enterprise』 の「オペレーター設定オプション」のセクションを参照してください。

YAML values ファイルを更新した後、次のように指定されたネームスペースに変更を適用します

kubectl instana operator apply --values values.yaml --namespace=instana-operator
 

Instana エンタープライズ向けオペレーター設定オプション

設定可能なオプションは、「 Instana Enterprise オペレーター設定オプション」の表に記載されています。

表 1. エンタープライズオペレーターの設定
キー タイプ Default 説明
fullnameOverride ストリング "" チャートの完全な名前(instana-enterprise-operator)を上書きします。
imagePullPolicy ストリング "IfNotPresent" イメージのプル・ポリシー。
imagePullSecrets リスト [{"name":"instana-registry"}] イメージ・プル・シークレットのリスト。
installCRDs ブール値 true CRD がインストールされているかどうかを指定します。
nameOverride ストリング "" チャートの名前(instana-enterprise-operator)を上書きします。
operator.affinity オブジェクト {} オペレーター・ポッドのアフィニティー。
operator.clusterDomain ストリング "" カスタム・クラスター・ドメインを指定します。
operator.enabled ブール値 true true の場合、オペレーター・デプロイメントがインストールされます。
operator.extraArgs リスト [] オペレーター・プロセスの追加の CLI 引数。
operator.extraEnv リスト [] オペレーター・プロセスの追加の環境変数。
operator.image.registry ストリング "artifact-public.instana.io" 使用するイメージ・レジストリー。
operator.image.repository ストリング "infrastructure/instana-enterprise-operator" 使用するイメージ・リポジトリー。
operator.image.tag ストリング "" 使用するイメージ・タグ。 デフォルトでは、チャートの appVersion が使用されます。
operator.nodeSelector オブジェクト {} オペレーター・ポッドのノード・セレクター。
operator.replicas int 1 作成するレプリカの数。
operator.resources オブジェクト {} オペレーター・ポッドのリソース要求と制限。
operator.securityContext オブジェクト {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true} オペレーター・コンテナーのセキュリティー・コンテキスト。
operator.tolerations リスト [] オペレーター・ポッドの耐障害性。
webhook.affinity オブジェクト {} オペレーター・ポッドのアフィニティー。
webhook.caBundleBase64 ストリング "" Webhook 用の Base64-encoded CA バンドル。
webhook.enabled ブール値 true true の場合、Webhook デプロイメントがインストールされます。
webhook.extraArgs リスト [] オペレーター・プロセスの追加の CLI 引数。
webhook.extraEnv リスト [] オペレーター・プロセスの追加の環境変数。
webhook.image.registry ストリング "artifact-public.instana.io" 使用するイメージ・レジストリー。
webhook.image.repository ストリング "infrastructure/instana-enterprise-operator-webhook" 使用するイメージ・リポジトリー。
webhook.image.tag ストリング "" 使用するイメージ・タグ。 デフォルトでは、チャートの appVersion が使用されます。
webhook.nodeSelector オブジェクト {} オペレーター・ポッドのノード・セレクター。
webhook.replicas int 1 作成するレプリカの数。
webhook.resources オブジェクト {} オペレーター・ポッドのリソース要求と制限。
webhook.securityContext オブジェクト {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true} オペレーター・コンテナーのセキュリティー・コンテキスト。
webhook.tolerations リスト [] オペレーター・ポッドの耐障害性。