Ressources OCI pour le programme d'installation basé sur un agent pour l'installation manuelle

Créez manuellement les ressources OCI requises pour installer une grappe de plate-forme conteneur OpenShift à l'aide du programme d'installation basé sur un agent.

Conseil

Si vous provisionnez des ressources avec Terraform, comme décrit sous Installation d'une grappe avec un programme d'installation basé sur un agent à l'aide de Terraform, vous pouvez ignorer cette rubrique.

Le flux de travail du programme d'installation basé sur un agent pour configurer l'infrastructure commence dans la console Red Hat Hybrid Cloud, où vous téléchargez le binaire openshift-install pour créer une image ISO de détection nécessaire pour provisionner des instances de calcul dans OCI. Voir la page OpenShift Téléchargements du programme d'installation et de l'interface de ligne de commande pour télécharger le fichier binaire.

Pour pouvoir générer l'image ISO de détection (utilisée pour provisionner des instances de calcul dans OCI), vous devez provisionner l'infrastructure OCI. Cela inclut les OCID, les intervalles CIDR du VCN, le nombre de plans de contrôle et d'instances de calcul, ainsi que d'autres entrées requises pour créer les fichiers d'installation basés sur l'agent agent-config.yaml, install-config.yaml et openshift/custom_manifest.yaml.

Après avoir généré l'image, passez à la console OCI pour provisionner l'infrastructure restante et poursuivre le déploiement de la grappe.

Lorsque vous utilisez le programme d'installation basé sur un agent, vous avez besoin des ressources décrites dans la rubrique Préalables et des composants d'infrastructure suivants :

  • compartiment
  • VCN
  • Équilibreurs de charge
  • Enregistrements DNS pour les équilibreurs de charge
  • Espace de noms de marqueur et marqueurs définis pour les noeuds de calcul de la grappe
  • Groupe dynamique IAM pour les noeuds de calcul de la grappe
  • Politiques IAM pour le groupe dynamique
  • Image personnalisée pour le provisionnement d'instance de calcul, créée à partir de l'image ISO de détection OpenShift.
Conseil

Vous pouvez créer la plupart de ces ressources avant de commencer, à l'exception de l'image de calcul personnalisée, qui nécessite l'image ISO de détection.

compartiment

Les compartiments permettent d'organiser et d'isoler des ressources en nuage. Nous vous recommandons de créer un nouveau compartiment pour la grappe OpenShift. Pour plus d'informations, voir Création d'un compartiment.

VCN et ressources de réseau

Les noeuds de calcul, les équilibreurs de charge et les autres ressources OpenShift utilisent un réseau en nuage virtuel (VCN) OCI pour se connecter. Voir Création d'un réseau VCN pour obtenir des instructions sur la création d'un réseau VCN.

Vous devez disposer des autorisations IAM pour gérer les réseaux en nuage virtuels et les ressources de réseau connexes dans le type de ressource agrégé virtual-network-family. Voir Gestion de l'accès aux ressources pour plus de détails. Notez que les autorisations réseau sont décrites dans la section Core Services.

Vous pouvez éventuellement utiliser des groupes de sécurité de réseau dans votre VCN pour contrôler l'accès. Voir Groupes de sécurité de réseau pour plus de détails sur l'utilisation des groupes de sécurité de réseau pour contrôler le trafic et l'accès au réseau. Notez que le groupe de sécurité de réseau doit se trouver dans le même compartiment que les autres ressources d'infrastructure OpenShfit.

Voir la page Ressources définies par Terraform pour OpenShift sur OCI sur GitHub pour plus de détails sur la configuration du VCN et du sous-réseau. Pour des définitions de ressource spécifiques, accédez aux dossiers pertinents du répertoire shared_modules et recherchez les ressources suivantes : oci_core_vcn, oci_core_internet_gateway, oci_core_nat_gateway, oci_core_route_table, oci_core_subnet et oci_core_network_security_group.

Équilibrage de charge

La grappe Red Hat OpenShift nécessite deux équilibreurs de charge, l'un pour le trafic réseau interne et l'autre pour le trafic externe. Voir Création d'un équilibreur de charge pour obtenir des instructions. Pour des détails de haut niveau sur les configurations d'équilibreur de charge, consultez la page Ressources définies par Terraform pour OpenShift sur OCI sur GitHub. Pour des définitions de ressource spécifiques, accédez au dossier pertinent dans le répertoire shared_modules et recherchez les ressources suivantes : oci_load_balancer_load_balancer, oci_load_balancer_backend_set et oci_load_balancer_listener.

Équilibreur de charge interne

Utilisez les informations suivantes pour configurer l'équilibreur de charge utilisé pour le trafic interne :
Port Machines dorsales (membres de la piscine) Description
6,443 Amorce et plan de contrôle Serveur d'API Kubernetes
22,623 Amorce et plan de contrôle Serveur de configuration de machine
22,624 Amorce et plan de contrôle Serveur de configuration de machine

Équilibreur de charge d'API

Utilisé pour le trafic du serveur d'API Kubernetes. Elle peut être publique ou privée. Utilisez les informations suivantes pour configurer l'équilibreur de charge d'API

Port Machines dorsales (membres de la piscine) Description
6,443 Nœuds d'amorçage et de plan de contrôle Trafic du serveur d'API Kubernetes (HTTPS)
22,624 Nœuds d'amorçage et de plan de contrôle Utilisé par les noeuds de travail pour télécharger les configurations d'allumage lors de la jointure de la grappe.
Note

Le port 22624 est requis pour ajouter de nouveaux noeuds de travail à la grappe. Assurez-vous qu'il est ouvert et acheminé correctement sur l'équilibreur de charge d'API externe (et non interne).

Équilibreur de charge d'applications

Utilisé pour le trafic entrant d'application (par exemple, applications utilisateur, console Web OpenShift). Elle peut être publique ou privée. Utilisez les informations suivantes pour configurer l'équilibreur de charge Apps
Port Machines dorsales (membres du groupe) Description
80 Noeuds exécutant des pods du contrôleur de trafic entrant (généralement des noeuds de calcul ou de travail) Trafic HTTP
443 Noeuds exécutant des pods du contrôleur de trafic entrant (généralement des noeuds de calcul ou de travail) trafic HTTPS
Note

Vous pouvez configurer les équilibreurs de charge pour qu'ils soient publics ou privés, selon les exigences en matière de réseau et de sécurité.

Enregistrements DNS

Créer des enregistrements DNS pour l'acheminement du trafic réseau OpenShift interne et externe. Selon vos exigences en matière de réseau et de sécurité, créez une zone DNS publique, une zone DNS privée ou les deux. Une zone DNS privée ne peut être résolue que dans les réseaux Oracle (tels que votre VCN). Une zone DNS publique permet l'accès externe.

Après avoir créé les zones, ajoutez des enregistrements DNS pour les noms d'hôte suivants :
  • api.<cluster_name>.<base_domain>
  • api-int.<cluster_name>.<base_domain>
  • *.apps.<cluster_name>.<base_domain>

Chaque enregistrement DNS doit référencer les mêmes ID équilibreur de charge public et privé.

Voir Zones pour obtenir des instructions sur la création et la gestion des zones DNS.

Pour les détails de configuration DNS de haut niveau, voir la page Ressources définies par Terraform pour OpenShift sur OCI sur GitHub. Pour des définitions de ressource spécifiques, accédez au dossier pertinent dans le répertoire shared_modules et recherchez les ressources suivantes : oci_dns_zone et oci_dns_rrset.

Composant Enregistrement Équilibreur de charge Description
API Kubernetes api.<cluster_name>.<base_domain>. Utiliser l'adresse IP de l'équilibreur de charge d'API

Un enregistrement DNS A/AAAA ou CNAME, et un enregistrement DNS PTR, pour identifier l'équilibreur de charge d'API.

Ces enregistrements doivent pouvoir être résolus par des clients externes au cluster et à partir de tous les noeuds du cluster.

API Kubernetes api-int.<cluster_name>.<base_domain>. Utiliser l'adresse IP interne de l'équilibreur de charge

Un enregistrement DNS A/AAAA ou CNAME, et un enregistrement DNS PTR, pour identifier en interne l'équilibreur de charge d'API.

Ces enregistrements doivent pouvoir être résolus à partir de tous les noeuds du cluster.

Trafic entrant d'application *.apps.<cluster_name>.<base_domain>. Utiliser l'adresse IP de l'équilibreur de charge des applications

Enregistrement DNS A/AAAA ou CNAME générique faisant référence à l'équilibreur de charge entrant de l'application.

L'équilibreur de charge entrant de l'application cible les machines qui exécutent les pods du contrôleur de trafic entrant. Les pods du contrôleur de trafic entrant s'exécutent par défaut sur les machines de calcul.

Ces enregistrements doivent pouvoir être résolus par des clients externes au cluster et à partir de tous les noeuds du cluster.

Par exemple, console-openshift-console.apps.<cluster_name>.<base_domain> est utilisé comme chemin générique vers la console de plate-forme de conteneur OpenShift.

Étiquettes définies

Des marqueurs définis sont requis pour regrouper et identifier tous les plans de contrôle et noeuds de calcul.

À l'aide du service de marquage, créez deux espaces de noms de marqueur et définissez les marqueurs requis dans le compartiment que vous utilisez pour créer la grappe OpenShift :

  • Espace de noms de marqueur : openshift-tags et openshift-{cluster_name}
  • Noms et valeurs de marqueur définis :
    • Pour openshift-tags : openshift-resource
    • Pour openshift-{cluster_name} :
      • instance-role : control_plane ou compute (selon le type de noeud)
      • boot-volume-type : PARAVIRTUALIZED ou ISCSI

Ces marqueurs doivent être appliqués à toutes les ressources pertinentes lors du provisionnement. Pour plus d'informations, voir Marqueurs d'attribution de ressource.

Pour plus d'informations, voir Marqueurs et concepts d'espace de noms de marqueur.

Pour des instructions de haut niveau spécifiques à OpenShift sur OCI, voir la page Ressources définies par Terraform pour OpenShift sur OCI sur GitHub. Pour des définitions de ressource spécifiques, accédez au dossier pertinent dans le répertoire shared_modules et recherchez les ressources suivantes : oci_identity_tag_namespace et oci_identity_tag.

Groupes dynamiques

Les groupes dynamiques vous permettent de regrouper les instances de calcul Oracle Cloud Infrastructure (OCI) en tant qu'acteurs "principaux" (similaires aux groupes d'utilisateurs) pour accorder l'accès au moyen de politiques IAM.

Vous pouvez créer des politiques IAM (voir la section suivante) qui référencent ces groupes dynamiques pour contrôler l'accès aux ressources OCI. Pour obtenir des instructions, voir Gestion des groupes dynamiques. Pour des détails de haut niveau sur la configuration des groupes dynamiques, voir la page Ressources définies par Terraform pour OpenShift sur OCI sur GitHub. Pour des définitions de ressource spécifiques, accédez au dossier pertinent dans le répertoire shared_modules et recherchez la ressource suivante : oci_identity_dynamic_group.

Utilisez les valeurs suivantes pour définir le groupe dynamique pour les instances de plan de contrôle :
  • Nom du groupe dynamique :
    ${var.cluster_name}_control_plane_nodes
  • Compartiment : Compartiment de la grappe
  • Règle de correspondance :
    all {
      instance.compartment.id = "${var.compartment_ocid}",
      tag.${var.op_openshift_tag_namespace}.${var.op_openshift_tag_instance_role}.value = "control_plane"
    }

Politiques de groupe dynamique

Trois politiques IAM sont requises pour que le groupe dynamique de plan de contrôle OpenShift puisse accéder aux ressources OCI et les gérer lors de la création de la grappe. Ces politiques IAM sont requises pour le groupe dynamique master. Pour obtenir des instructions, voir Gestion des groupes dynamiques et Aperçu des politiques IAM. Pour des détails de haut niveau sur les configurations de politique de groupe dynamique, voir la page Ressources définies par Terraform pour OpenShift sur OCI sur GitHub. Pour des définitions de ressource spécifiques, accédez au dossier pertinent dans le répertoire shared_modules et recherchez la ressource suivante : oci_identity_policy.

  • Politique d'accès aux ressources du plan de contrôle : Cette politique permet aux noeuds de plan de contrôle de gérer les ressources d'infrastructure de base. Le groupe dynamique pour les noeuds de plan de contrôle est nommé ${var.cluster_name}_control_plane_nodes
    • Nom de la politique : ${var.cluster_name}_control_plane_nodes
    • Compartiment : Compartiment de la grappe
    • Énoncés de la politique :
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage volume-family in compartment id ${var.compartment_ocid}
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage instance-family in compartment id ${var.compartment_ocid}
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage security-lists in compartment id ${var.compartment_ocid}
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to use virtual-network-family in compartment id ${var.compartment_ocid}
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage load-balancers in compartment id ${var.compartment_ocid}
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage objects in compartment id ${var.compartment_ocid}
  • Politique d'accès au service de marquage des ressources de grappe : Cette politique accorde l'accès aux noeuds de plan de contrôle pour utiliser l'espace de noms openshift-tags pour marquer des ressources de grappe.
    • Nom de la politique : ${var.cluster_name}_control_plane_nodes_tags
    • Compartiment : Compartiment racine
    • Énoncé de politique :
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to use tag-namespaces in tenancy
  • Politique d'accès au réseau (facultatif) : Cette politique n'est requise que si les composants de réseau se trouvent dans un compartiment différent de celui des instances de grappe.
    • Nom de la politique : ${var.cluster_name}_control_plane_nodes_networking_access_policy

    • Compartiment : Compartiment de réseau
    • Énoncés de la politique :
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage security-lists in compartment id ${var.networking_compartment_ocid}
      
      Allow dynamic-group ${oci_identity_dynamic_group.openshift_control_plane_nodes.name} to manage virtual-network-family in compartment id ${var.networking_compartment_ocid}  

Image personnalisée pour les instances de plate-forme de conteneur OpenShift

Pour créer des noeuds de grappe pour la plate-forme de conteneur OpenShift à l'aide du programme d'installation basé sur un agent, vous devez disposer d'une image personnalisée du service de calcul qui contient le logiciel Red Hat nécessaire pour exécuter les noeuds de grappe. Pour créer cette image, vous devez effectuer les opérations suivantes :

  1. Créez une image ISO de détection localement, à l'aide du fichier binaire openshift-install, disponible à partir de la console Red Hat Hybrid Cloud Console. Pour obtenir des instructions, voir Création de fichiers de configuration pour installer une grappe sur OCI (documentation sur Red Hat) (documentation sur Red Hat).
  2. Chargez votre image ISO de détection dans le stockage d'objets OCI. Pour obtenir des instructions, voir Création d'un seau de stockage d'objets et Chargement d'un objet de stockage d'objets dans un seau.
  3. Créez une image personnalisée dans un service de calcul basé sur la détection ISO. Pour obtenir des instructions, voir Gestion des images personnalisées.
Important

Lors de la création de votre image personnalisée, vous devez effacer la fonction BIOS afin que cette option ne soit pas activée pour votre image. Pour plus de détails, voir Configuration des capacités d'image pour les images personnalisées dans la documentation sur la gestion des images personnalisées.

Fichiers de configuration d'agent

Le programme d'installation basé sur un agent nécessite deux fichiers de configuration qui doivent être modifiés afin que vous puissiez utiliser le programme d'installation basé sur un agent pour générer l'image ISO de détection. Il s'agit des fichiers agent-config.yaml et install-config.yaml. Pour plus de détails, voir Création de fichiers de configuration pour l'installation d'une grappe sur OCI (documentation sur Red Hat).

Après avoir créé les fichiers agent-config.yaml et install-config.yaml, enregistrez-les localement. La structure de votre répertoire local doit être la suivante :

.
└── local_machine_work_directory/
    ├── agent-config.yaml
    ├── install-config.yaml
    └── openshift /
        ├── manifest.yml

Configuration de pare-feu

Assurez-vous que votre pare-feu est configuré pour accorder l'accès aux sites requis par la plate-forme de conteneur OpenShift. Voir Configuration de votre pare-feu pour la plate-forme de conteneur OpenShift (documentation sur Red Hat) pour plus de détails sur la configuration de la liste d'autorisation de votre pare-feu pour la plate-forme de conteneur OpenShift.

Définissez la liste d'autorisation de votre pare-feu pour inclure les URL suivantes :
URL Port Fonction
ghcr.io 443 Fournit l'image de conteneur pour Oracle Cloud Control Manager (CCM) et l'interface de stockage de conteneurs (CSI).
registry.k8s.io 443 Fournit les images de conteneur kubernetes prises en charge pour CCM et CSI.