Installation de l'opérateur Enterprise d' Instana
Installez l'opérateur « Instana Enterprise » à l'aide du plug-in « kubectl ». Vous devez configurer un ensemble de secrets pour installer l'opérateur Enterprise d' Instana.
Dans cet article, les termes « Kubernetes » et « Red Hat OpenShift » sont utilisés de manière interchangeable. Les références des objets Kubernetes sont également applicables à Red Hat OpenShift.
Création de secrets pour le téléchargement d'images
À moins que vous ne disposiez de votre propre registre Docker en miroir artifact-public.instana.io et que vous n'ayez pas besoin de secrets de récupération, vous devez créer un secret de récupération d'image pour l'espace de noms dans lequel l'opérateur Instana Enterprise sera installé. Suivez ces étapes :
Créez un espace de noms dans lequel l'opérateur Enterprise d' Instana sera installé.
kubectl create ns <namespace_name>Remplacez < nom_espace_nom> par le nom d'espace de nom de votre choix, par exemple
instana-operator.Installez le secret dans l'espace de nom que vous avez créé à l'aide de l'une des méthodes suivantes:
Créez le secret directement.
kubectl create secret docker-registry <secret-name> \ --namespace=<namespace_name> \ --docker-username=_ \ --docker-password=<agent_key> \ --docker-server=artifact-public.instana.io- Remplacez <namespace_name> par le nom de l'espace de noms dans lequel l'opérateur Enterprise d' Instana sera installé.
- Remplacez < agent_key> par votre clé d'agent.
- Remplacez < secret-name> par un nom de secret de votre choix.
Créez l' YAML pour le secret sans appliquer l' YAML. Le secret est imprimé sans création.
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=yamlEnsuite, créez le secret.
kubectl create -f <secret-file-name.yaml> --namespace <namespace>Facultatif : créez un secret de récupération d'image si votre registre d'images interne nécessite une authentification.
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>
Création de secrets d' TLS s pour le webhook d'admission
L'opérateur est livré avec un webhook d'admission pour la mise en défaut, la validation et la conversion de version. TLS est nécessaire pour un webhook d'admission; en d'autres termes, des certificats d' TLS doivent être mis en place.
Assurez-vous que le secret « TLSinstana-operator-webhook » de type kubernetes.io/tls est bien présent. Vous pouvez choisir d'utiliser soit des certificats « cert-manager », soit des certificats personnalisés.
Utilisation d' cert-manager
Par défaut, cert-manager est utilisé pour provisionner automatiquement le secret. Cela fonctionne immédiatement si cert-manager est installé sur le cluster. Dans ce cas, les objets « Issuer » et « Certificate » sont créés lors de l'installation, ce qui déclenche la procédure de provisionnement et d'injection des certificats par l' cert-manager.
Pour plus d'informations sur l'installation d' cert-manager, consultez la documentation disponible à l'adresse cert-manager.
Utilisation des certificats personnalisés
Nous vous recommandons d'utiliser cert-manager. Toutefois, si vous préférez mettre à disposition les certificats vous-même, vous pouvez le faire. Le secret doit contenir les entrées suivantes :
ca.crttls.crttls.key
Le certificat (tls.crt) doit contenir les noms de système de noms de domaine suivants :
instana-operator.<namespace>.svcinstana-operator.<namespace>.svc.<clusterDomain>
- Remplacez <namespace> par le nom de l'espace de noms dans lequel l'opérateur Enterprise d' Instana sera installé.
- Remplacez <clusterDomain> par le nom de domaine du cluster sur lequel l'opérateur Instana Enterprise sera installé.
Pour créer un secret instana-operator-webhook de type kubernetes.io/tls« TLS », procédez de l'une des manières suivantes :
Créez le secret directement.
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.crtCréez l' YAML e du mot de passe sans l'appliquer. Le secret est imprimé sans création.
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=yamlEnsuite, créez le secret.
kubectl create -f <secret-file-name.yaml>
Création du fichier de valeurs
Ce values fichier contient les paramètres de configuration de l'opérateur Enterprise d' Instana. Le mécanisme est le même que celui utilisé par Helm.
Les options disponibles que vous pouvez configurer sont répertoriées dans le tableau des options de configuration de l'opérateur d' Instana Enterprise.
Outre les configurations par défaut du fichier values , vous devez mettre à jour la zone imagePullSecrets avec le secret d'extraction d'image que vous avez créé dans la section Création de secrets d'extraction d'image .
Créez un fichier values.yaml dans le répertoire de travail et ajoutez les lignes suivantes:
imagePullSecrets:
- name: <image_pull_secret>
Consultez l'exemple de fichier values suivant:
operator:
image:
registry: my.registry.com
webhook:
image:
registry: my.registry.com
imagePullSecrets:
- name: my-registry-secret
Mise à jour du fichier de valeurs pour IBM Z® et LinuxONE ( s390x )
Assurez-vous que la configuration système requise pour l'édition personnalisée auto-hébergée, telle que décrite sur IBM Z® et LinuxONE ( s390x ), est respectée. Pour plus d'informations, consultez la section « Configuration système requise pour Custom Edition » sur IBM Z® et LinuxONE ( s390x ).
Pour installer Custom Edition sur IBM Z® et LinuxONE ( s390x ), ajoutez les lignes suivantes dans le fichier values.yaml operator :
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"
Installation des bases de données
Vous devez installer des magasins de données pour les mesures, les traces, les journaux et d'autres données. Pour plus d'informations, consultez la section « Configuration des magasins de données ».
Installation de l'opérateur Enterprise d' Instana
Vous pouvez désormais procéder à l'installation de l'opérateur Enterprise d' Instana. Pour ce faire, vous disposez des deux options suivantes.
Appliquer directement les manifestes
Cette option crée des définitions de ressources personnalisées et installe le déploiement de l'opérateur et des ressources associées sur le cluster Kubernetes.
cluster.local) ou si vous avez généré vous-même les certificats.Pour installer l'opérateur Enterprise d' Instana. dans un espace de noms spécifique, tel que
instana-operator, exécutez la commande suivante :kubectl instana operator apply --values values.yaml --namespace=instana-operatorPour installer l'opérateur Enterprise d' Instana dans un espace de noms spécifié à l'aide de certificats personnalisés, exécutez la commande suivante :
kubectl instana operator apply --values values.yaml --ca-bundle-base64=<base64-encoded ca.crt file> --namespace=instana-operatorRemplacez <base64-encoded ca.crt codé en base64 > par le nom du fichier de bundle de l'autorité de certification base64-encoded .
Générer les manifestes d'abord, puis les appliquer
Rendez les manifestes et écrivez-les d'abord dans la sortie standard (STDOUT) ou dans les fichiers d'un répertoire spécifique. Pour afficher les manifestes, procédez comme suit:
Pour générer les fichiers d' YAML s avec un espace de noms spécifié et les enregistrer dans un répertoire spécifié :
kubectl instana operator template --values values.yaml --namespace=instana-operator --output-dir <dir>Pour traiter des fichiers « YAML » avec un espace de noms spécifié et les enregistrer dans un répertoire spécifié à l'aide d'un domaine de cluster personnalisé :
kubectl instana operator template --values values.yaml --cluster-domain=my-domain.local --namespace=instana-operator --output-dir <dir>Pour générer des fichiers ` YAML ` avec un espace de noms spécifié et les enregistrer dans un répertoire donné à l'aide de certificats personnalisés :
kubectl instana operator template --values values.yaml --ca-bundle-base64=<base64-encoded ca.crt file> --namespace=instana-operator --output-dir <dir>Remplacez <base64-encoded ca.crt codé en base64 > par le nom du fichier de bundle de l'autorité de certification base64-encoded .
Ensuite, vous pouvez appliquer les manifestes à l'aide des commandes de la rubrique Application directe des manifestes.
Mise à jour de la version du backend
Le backend Instana est déployé avec une version de publication par défaut. Dans l'idéal, utilisez le dernier correctif disponible ou passez à une version plus récente du backend d' Instana.
Vous pouvez utiliser les instana-kubectlversions commandes pour mettre à jour le backend Instana. Pour plus d'informations, voir procédure de mise à niveau.
Vérification du statut d'opérateur d' Instana Enterprise
Pour rechercher des problèmes sur les pods, vérifiez les événements sur les pods.
Pour rechercher tous les événements, exécutez l'une des commandes suivantes:
oc/kubectl get events -n instana-core
oc/kubectl get events -n instana-units
Si vous voyez des erreurs, consultez les journaux de l'opérateur.
Pour vérifier les journaux de l'opérateur, procédez comme suit:
Vérifiez les noms et le statut de l'opérateur:
oc get pods -n instana-operatorVérifiez les journaux de l'opérateur
oc logs -f -n instana-operator <Pod name>
Facultatif : Utilisation de la configuration avancée des opérateurs
Après avoir installé l'opérateur Instana Instana, vous pouvez le configurer en mettant à jour les values Le fichier YAML que vous avez créé dans la section « Création du fichier de valeurs ».
Pour connaître les options disponibles que vous pouvez configurer, consultez la section « Options de configuration de l'opérateur » de la documentation d' Instana Enterprise.
Une fois le values fichier ` YAML ` mis à jour, appliquez les modifications dans un espace de noms spécifique comme suit :
kubectl instana operator apply --values values.yaml --namespace=instana-operator
Instana Options de configuration pour les opérateurs d'entreprise
Les options disponibles que vous pouvez configurer sont répertoriées dans le tableau des options de configuration de l'opérateur d' Instana Enterprise.
| Clé | Type | Par défaut | Description |
|---|---|---|---|
| fullnameOverride | chaîne | "" |
Remplace le nom complet du graphique (instana-enterprise-operator). |
| imagePullPolicy | chaîne | "IfNotPresent" |
Stratégie d'extraction d'image. |
| imagePullSecrets | liste | [{"name":"instana-registry"}] |
Liste des secrets d'extraction d'image. |
| installCRDs | booléen | true |
Indique si les définitions de ressources personnalisées sont installées. |
| nameOverride | chaîne | "" |
Remplace le nom du graphique (instana-enterprise-operator). |
| operator.affinity | objet | {} |
Affinité pour le pod de l'opérateur. |
| operator.clusterDomain | chaîne | "" |
Indique un domaine de clusters personnalisé. |
| operator.enabled | booléen | true |
Si la valeur est true, le déploiement de l'opérateur est installé. |
| operator.extraArgs | liste | [] |
Arguments CLI supplémentaires pour le processus opérateur. |
| operator.extraEnv | liste | [] |
Variables d'environnement supplémentaires pour le processus opérateur. |
| operator.image.registry | chaîne | "artifact-public.instana.io" |
Registre d'images à utiliser. |
| operator.image.repository | chaîne | "infrastructure/instana-enterprise-operator" |
Référentiel d'images à utiliser. |
| operator.image.tag | chaîne | "" |
Balise d'image à utiliser. Par défaut, il s'agit de l' appVersion du graphique. |
| operator.nodeSelector | objet | {} |
Sélecteur de noeud pour le pod d'opérateur. |
| operator.replicas | int | 1 |
Nombre de répliques à créer. |
| operator.resources | objet | {} |
Demandes de ressources et limites pour le pod de l'opérateur. |
| operator.securityContext | objet | {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true} |
Contexte de sécurité pour le conteneur d'opérateur. |
| operator.tolerations | liste | [] |
Tolérances pour le pod de l'opérateur. |
| webhook.affinity | objet | {} |
Affinité pour le pod de l'opérateur. |
| webhook.caBundleBase64 | chaîne | "" |
Bundle d'autorité de certification Base64-encoded pour le webhook. |
| webhook.enabled | booléen | true |
Si la valeur est true, le déploiement de webhook est installé. |
| webhook.extraArgs | liste | [] |
Arguments CLI supplémentaires pour le processus opérateur. |
| webhook.extraEnv | liste | [] |
Variables d'environnement supplémentaires pour le processus opérateur. |
| webhook.image.registry | chaîne | "artifact-public.instana.io" |
Registre d'images à utiliser. |
| webhook.image.repository | chaîne | "infrastructure/instana-enterprise-operator-webhook" |
Référentiel d'images à utiliser. |
| webhook.image.tag | chaîne | "" |
Balise d'image à utiliser. Par défaut, il s'agit de l' appVersion du graphique. |
| webhook.nodeSelector | objet | {} |
Sélecteur de noeud pour le pod d'opérateur. |
| webhook.replicas | int | 1 |
Nombre de répliques à créer. |
| webhook.resources | objet | {} |
Demandes de ressources et limites pour le pod de l'opérateur. |
| webhook.securityContext | objet | {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true} |
Contexte de sécurité pour le conteneur d'opérateur. |
| webhook.tolerations | liste | [] |
Tolérances pour le pod de l'opérateur. |