5.3. Installation du sous-système de journalisation pour Red Hat OpenShift à l'aide du CLI
Vous pouvez utiliser le CLI de OpenShift Container Platform pour installer les opérateurs OpenShift Elasticsearch et Red Hat OpenShift Logging.
Conditions préalables
Assurez-vous que vous disposez du stockage persistant nécessaire pour Elasticsearch. Notez que chaque nœud Elasticsearch nécessite son propre volume de stockage.
NoteSi vous utilisez un volume local pour le stockage persistant, n'utilisez pas de volume de blocs bruts, qui est décrit avec
volumeMode: block
dans l'objetLocalVolume
. Elasticsearch ne peut pas utiliser de volumes de blocs bruts.Elasticsearch est une application gourmande en mémoire. Par défaut, OpenShift Container Platform installe trois nœuds Elasticsearch avec des demandes de mémoire et des limites de 16 Go. Cet ensemble initial de trois nœuds OpenShift Container Platform peut ne pas avoir assez de mémoire pour faire fonctionner Elasticsearch dans votre cluster. Si vous rencontrez des problèmes de mémoire liés à Elasticsearch, ajoutez des nœuds Elasticsearch supplémentaires à votre cluster plutôt que d'augmenter la mémoire des nœuds existants.
Procédure
Pour installer OpenShift Elasticsearch Operator et Red Hat OpenShift Logging Operator à l'aide de la CLI :
Créer un espace de noms pour l'OpenShift Elasticsearch Operator.
Créer un fichier YAML d'objet d'espace de noms (par exemple,
eo-namespace.yaml
) pour l'opérateur OpenShift Elasticsearch :apiVersion: v1 kind: Namespace metadata: name: openshift-operators-redhat 1 annotations: openshift.io/node-selector: "" labels: openshift.io/cluster-monitoring: "true" 2
- 1
- Vous devez spécifier l'espace de noms
openshift-operators-redhat
. Pour éviter d'éventuels conflits avec les métriques, vous devez configurer la pile Prometheus Cluster Monitoring pour qu'elle récupère les métriques de l'espace de nomsopenshift-operators-redhat
et non de l'espace de nomsopenshift-operators
. L'espace de nomsopenshift-operators
peut contenir des opérateurs communautaires, qui ne sont pas fiables et qui pourraient publier une mesure portant le même nom que la mesure, ce qui entraînerait des conflits. - 2
- Chaîne. Vous devez spécifier cette étiquette comme indiqué pour vous assurer que la surveillance des clusters balaie l'espace de noms
openshift-operators-redhat
.
Créer l'espace de noms :
oc create -f <nom-de-fichier>.yaml
Par exemple :
$ oc create -f eo-namespace.yaml
Créez un espace de noms pour Red Hat OpenShift Logging Operator :
Créez un fichier YAML d'objet d'espace de noms (par exemple,
olo-namespace.yaml
) pour l'opérateur de journalisation de Red Hat OpenShift :apiVersion: v1 kind: Namespace metadata: name: openshift-logging annotations: openshift.io/node-selector: "" labels: openshift.io/cluster-monitoring: "true"
Créer l'espace de noms :
oc create -f <nom-de-fichier>.yaml
Par exemple :
$ oc create -f olo-namespace.yaml
Installez l'OpenShift Elasticsearch Operator en créant les objets suivants :
Créer un fichier YAML d'objet Operator Group (par exemple,
eo-og.yaml
) pour l'opérateur OpenShift Elasticsearch :apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-operators-redhat namespace: openshift-operators-redhat 1 spec: {}
- 1
- Vous devez spécifier l'espace de noms
openshift-operators-redhat
.
Créer un objet Groupe d'opérateurs :
oc create -f <nom-de-fichier>.yaml
Par exemple :
$ oc create -f eo-og.yaml
Créer un fichier YAML d'objet d'abonnement (par exemple,
eo-sub.yaml
) pour abonner un espace de noms à l'opérateur Elasticsearch d'OpenShift.Exemple d'abonnement
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: "elasticsearch-operator" namespace: "openshift-operators-redhat" 1 spec: channel: "stable-5.5" 2 installPlanApproval: "Automatic" 3 source: "redhat-operators" 4 sourceNamespace: "openshift-marketplace" name: "elasticsearch-operator"
- 1
- Vous devez spécifier l'espace de noms
openshift-operators-redhat
. - 2
- Spécifiez
stable
oustable-5.<x>
comme canal. Voir la note suivante. - 3
Automatic
permet au gestionnaire du cycle de vie de l'opérateur (OLM) de mettre automatiquement à jour l'opérateur lorsqu'une nouvelle version est disponible.Manual
exige qu'un utilisateur disposant des informations d'identification appropriées approuve la mise à jour de l'opérateur.- 4
- Spécifiez
redhat-operators
. Si votre cluster OpenShift Container Platform est installé sur un réseau restreint, également connu sous le nom de cluster déconnecté, indiquez le nom de l'objet CatalogSource créé lors de la configuration de l'Operator Lifecycle Manager (OLM).
NoteEn spécifiant
stable
, vous installez la version actuelle de la dernière version stable. L'utilisation destable
avecinstallPlanApproval: "Automatic"
, mettra automatiquement à niveau vos opérateurs vers la dernière version stable majeure et mineure.En spécifiant
stable-5.<x>
, vous installez la version mineure actuelle d'une version majeure spécifique. L'utilisation destable-5.<x>
avecinstallPlanApproval: "Automatic"
, mettra automatiquement à niveau vos opérateurs vers la dernière version mineure stable de la version majeure que vous spécifiez avecx
.Créer l'objet Abonnement :
oc create -f <nom-de-fichier>.yaml
Par exemple :
$ oc create -f eo-sub.yaml
L'OpenShift Elasticsearch Operator est installé dans l'espace de noms
openshift-operators-redhat
et copié dans chaque projet du cluster.Vérifier l'installation de l'opérateur :
$ oc get csv --all-namespaces
Exemple de sortie
NAMESPACE NAME DISPLAY VERSION REPLACES PHASE default elasticsearch-operator.5.1.0-202007012112.p0 OpenShift Elasticsearch Operator 5.5.0-202007012112.p0 Succeeded kube-node-lease elasticsearch-operator.5.5.0-202007012112.p0 OpenShift Elasticsearch Operator 5.5.0-202007012112.p0 Succeeded kube-public elasticsearch-operator.5.5.0-202007012112.p0 OpenShift Elasticsearch Operator 5.5.0-202007012112.p0 Succeeded kube-system elasticsearch-operator.5.5.0-202007012112.p0 OpenShift Elasticsearch Operator 5.5.0-202007012112.p0 Succeeded openshift-apiserver-operator elasticsearch-operator.5.5.0-202007012112.p0 OpenShift Elasticsearch Operator 5.5.0-202007012112.p0 Succeeded openshift-apiserver elasticsearch-operator.5.5.0-202007012112.p0 OpenShift Elasticsearch Operator 5.5.0-202007012112.p0 Succeeded openshift-authentication-operator elasticsearch-operator.5.5.0-202007012112.p0 OpenShift Elasticsearch Operator 5.5.0-202007012112.p0 Succeeded openshift-authentication elasticsearch-operator.5.5.0-202007012112.p0 OpenShift Elasticsearch Operator 5.5.0-202007012112.p0 Succeeded ...
Il devrait y avoir un OpenShift Elasticsearch Operator dans chaque espace de noms. Le numéro de version peut être différent de celui indiqué.
Installez l'opérateur de journalisation Red Hat OpenShift en créant les objets suivants :
Créez un fichier YAML d'objet de groupe d'opérateurs (par exemple,
olo-og.yaml
) pour l'opérateur de journalisation Red Hat OpenShift :apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: cluster-logging namespace: openshift-logging 1 spec: targetNamespaces: - openshift-logging 2
Créer l'objet OperatorGroup :
oc create -f <nom-de-fichier>.yaml
Par exemple :
$ oc create -f olo-og.yaml
Créez un fichier YAML d'objet d'abonnement (par exemple,
olo-sub.yaml
) pour abonner un espace de noms à l'opérateur de journalisation de Red Hat OpenShift.apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: cluster-logging namespace: openshift-logging 1 spec: channel: "stable" 2 name: cluster-logging source: redhat-operators 3 sourceNamespace: openshift-marketplace
- 1
- Vous devez spécifier l'espace de noms
openshift-logging
. - 2
- Spécifiez
stable
oustable-5.<x>
comme canal. - 3
- Spécifiez
redhat-operators
. Si votre cluster OpenShift Container Platform est installé sur un réseau restreint, également connu sous le nom de cluster déconnecté, indiquez le nom de l'objet CatalogSource que vous avez créé lors de la configuration de l'Operator Lifecycle Manager (OLM).
oc create -f <nom-de-fichier>.yaml
Par exemple :
$ oc create -f olo-sub.yaml
Red Hat OpenShift Logging Operator est installé dans l'espace de noms
openshift-logging
.Vérifier l'installation de l'opérateur.
Il devrait y avoir un Red Hat OpenShift Logging Operator dans l'espace de noms
openshift-logging
. Le numéro de version peut être différent de celui indiqué.$ oc get csv -n openshift-logging
Exemple de sortie
NAMESPACE NAME DISPLAY VERSION REPLACES PHASE ... openshift-logging clusterlogging.5.1.0-202007012112.p0 OpenShift Logging 5.1.0-202007012112.p0 Succeeded ...
Créer une instance OpenShift Logging :
Créez un fichier YAML d'objet d'instance (par exemple,
olo-instance.yaml
) pour l'opérateur de journalisation de Red Hat OpenShift :NoteCette configuration par défaut d'OpenShift Logging devrait prendre en charge un large éventail d'environnements. Consultez les rubriques sur le réglage et la configuration des composants du sous-système de journalisation pour obtenir des informations sur les modifications que vous pouvez apporter à votre cluster OpenShift Logging.
apiVersion: "logging.openshift.io/v1" kind: "ClusterLogging" metadata: name: "instance" 1 namespace: "openshift-logging" spec: managementState: "Managed" 2 logStore: type: "elasticsearch" 3 retentionPolicy: 4 application: maxAge: 1d infra: maxAge: 7d audit: maxAge: 7d elasticsearch: nodeCount: 3 5 storage: storageClassName: "<storage-class-name>" 6 size: 200G resources: 7 limits: memory: "16Gi" requests: memory: "16Gi" proxy: 8 resources: limits: memory: 256Mi requests: memory: 256Mi redundancyPolicy: "SingleRedundancy" visualization: type: "kibana" 9 kibana: replicas: 1 collection: logs: type: "fluentd" 10 fluentd: {}
- 1
- Le nom doit être
instance
. - 2
- L'état de gestion d'OpenShift Logging. Dans certains cas, si vous modifiez les paramètres par défaut d'OpenShift Logging, vous devez définir ce paramètre à
Unmanaged
. Cependant, un déploiement non géré ne reçoit pas de mises à jour jusqu'à ce qu'OpenShift Logging soit replacé dans un état géré. Le fait de remettre un déploiement dans un état géré peut annuler toutes les modifications que vous avez apportées. - 3
- Paramètres de configuration d'Elasticsearch. En utilisant la ressource personnalisée (CR), vous pouvez configurer la politique de réplication et le stockage persistant.
- 4
- Spécifiez la durée pendant laquelle Elasticsearch doit conserver chaque source de journal. Saisissez un nombre entier et une désignation de temps : semaines(w), heures(h/H), minutes(m) et secondes(s). Par exemple,
7d
pour sept jours. Les journaux antérieurs àmaxAge
sont supprimés. Vous devez spécifier une politique de rétention pour chaque source de logs, sinon les index Elasticsearch ne seront pas créés pour cette source. - 5
- Spécifiez le nombre de nœuds Elasticsearch. Voir la note qui suit cette liste.
- 6
- Saisissez le nom d'une classe de stockage existante pour le stockage Elasticsearch. Pour de meilleures performances, spécifiez une classe de stockage qui alloue des blocs de stockage. Si vous ne spécifiez pas de classe de stockage, OpenShift Container Platform déploie OpenShift Logging avec un stockage éphémère uniquement.
- 7
- Spécifiez les demandes de CPU et de mémoire pour Elasticsearch si nécessaire. Si vous laissez ces valeurs vides, OpenShift Elasticsearch Operator définit des valeurs par défaut qui sont suffisantes pour la plupart des déploiements. Les valeurs par défaut sont
16Gi
pour la demande de mémoire et1
pour la demande de CPU. - 8
- Spécifiez les demandes de CPU et de mémoire pour le proxy Elasticsearch si nécessaire. Si vous laissez ces valeurs vides, OpenShift Elasticsearch Operator définit des valeurs par défaut qui devraient être suffisantes pour la plupart des déploiements. Les valeurs par défaut sont
256Mi
pour la demande de mémoire et100m
pour la demande de CPU. - 9
- Paramètres de configuration de Kibana. En utilisant le CR, vous pouvez mettre à l'échelle Kibana pour la redondance et configurer le CPU et la mémoire pour vos pods Kibana. Pour plus d'informations, voir Configuring the log visualizer.
- 10
- Paramètres pour la configuration de Fluentd. En utilisant le CR, vous pouvez configurer les limites de CPU et de mémoire de Fluentd. Pour plus d'informations, voir Configuring Fluentd.
NoteLe nombre maximum de nœuds de plan de contrôle Elasticsearch est de trois. Si vous spécifiez une adresse
nodeCount
supérieure à3
, OpenShift Container Platform crée trois nœuds Elasticsearch qui sont des nœuds éligibles au rôle de maître, avec les rôles de maître, de client et de données. Les nœuds Elasticsearch supplémentaires sont créés en tant que nœuds de données uniquement, avec les rôles de client et de données. Les nœuds du plan de contrôle effectuent des actions à l'échelle du cluster, telles que la création ou la suppression d'un index, l'allocation de shards et le suivi des nœuds. Les nœuds de données détiennent les nuages et effectuent des opérations liées aux données telles que CRUD, la recherche et les agrégations. Les opérations liées aux données sont gourmandes en E/S, en mémoire et en CPU. Il est important de surveiller ces ressources et d'ajouter des nœuds de données supplémentaires si les nœuds actuels sont surchargés.Par exemple, si
nodeCount=4
, les nœuds suivants sont créés :$ oc get deployment
Exemple de sortie
cluster-logging-operator 1/1 1 1 18h elasticsearch-cd-x6kdekli-1 1/1 1 0 6m54s elasticsearch-cdm-x6kdekli-1 1/1 1 1 18h elasticsearch-cdm-x6kdekli-2 1/1 1 0 6m49s elasticsearch-cdm-x6kdekli-3 1/1 1 0 6m44s
Le nombre d'unités primaires pour les modèles d'index est égal au nombre de nœuds de données Elasticsearch.
Create the instance:
oc create -f <nom-de-fichier>.yaml
Par exemple :
$ oc create -f olo-instance.yaml
Cela crée les composants du sous-système de journalisation, la ressource personnalisée
Elasticsearch
et ses composants, ainsi que l'interface Kibana.
Vérifier l'installation en listant les pods dans le projet openshift-logging.
Vous devriez voir plusieurs pods pour les composants du sous-système de journalisation, comme dans la liste suivante :
$ oc get pods -n openshift-logging
Exemple de sortie
NAME READY STATUS RESTARTS AGE cluster-logging-operator-66f77ffccb-ppzbg 1/1 Running 0 7m elasticsearch-cdm-ftuhduuw-1-ffc4b9566-q6bhp 2/2 Running 0 2m40s elasticsearch-cdm-ftuhduuw-2-7b4994dbfc-rd2gc 2/2 Running 0 2m36s elasticsearch-cdm-ftuhduuw-3-84b5ff7ff8-gqnm2 2/2 Running 0 2m4s collector-587vb 1/1 Running 0 2m26s collector-7mpb9 1/1 Running 0 2m30s collector-flm6j 1/1 Running 0 2m33s collector-gn4rn 1/1 Running 0 2m26s collector-nlgb6 1/1 Running 0 2m30s collector-snpkt 1/1 Running 0 2m28s kibana-d6d5668c5-rppqm 2/2 Running 0 2m39s