Instana Enterpriseオペレーターのインストール
「 kubectl 」プラグインを使用して、「 Instana Enterprise」オペレーターをインストールします。 Instana Enterpriseオペレーターをインストールするには、一連のシークレットを設定する必要があります。
このトピックでは、「 Kubernetes 」と「 Red Hat OpenShift 」を同義語として扱っています。 Kubernetes オブジェクトのリファレンスは、 Red Hat OpenShiftにも適用されます。
イメージのプル用シークレットの作成
Docker のレポジトリをミラーリングしている独自のレポジトリを持っており、 artifact-public.instana.io かつプルシークレットを必要としない場合を除き、 Instana Enterpriseオペレーターをインストールするネームスペース用にイメージのプルシークレットを作成する必要があります。 以下の手順に従います。
Instana Enterpriseオペレーターをインストールするネームスペースを作成します。
kubectl create ns <namespace_name>< namespace_name> を目的の名前空間名 (
instana-operatorなど) に置き換えます。以下のいずれかの方法を使用して、作成した名前空間に秘密をインストールします。
シークレットを直接作成します。
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.crttls.crttls.key
証明書 (tls.crt) には、以下の DNS 名が含まれている必要があります。
instana-operator.<namespace>.svcinstana-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>
以下の 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 ) 上でセルフホスト型カスタムエディションを実行するためのシステム要件を満たしていることを確認してください。 詳細については、 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オペレーターのインストールを続行できます。
マニフェストを直接適用する
このオプションでは、CRD を作成し、オペレーターのデプロイメントおよび関連するリソースを Kubernetes クラスターにインストールします。
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
エラーが表示された場合は、オペレーター・ログを確認してください。
オペレーター・ログを確認するには、以下の手順を実行します。
オペレーターの名前と状況を確認します。
oc get pods -n instana-operatorオペレーターのログを確認してください。
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 オペレーター設定オプション」の表に記載されています。
| キー | タイプ | 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 | リスト | [] |
オペレーター・ポッドの耐障害性。 |