Configuration, Installation et Utilisation de Red Hat OpenStack Services On OpenShift
Accédez à Votre Environnement de Laboratoire
Pendant ce laboratoire, on vous demandera de vous connecter par ssh à votre hyperviseur à cette adresse IP {bastion_public_hostname}
.
Utilisez ce nom utilisateur {bastion_ssh_user_name}
et le mot de passe {bastion_ssh_password}
. L’uuid de votre laboratoire est : my-guid
Une fois connecté à l’hyperviseur, vous pouvez accéder au bastion à l’adresse IP 192.168.123.100
en temps que root
en utilisant le mot de passe redhat
.
- Si nécessaire, vous pouvez naviguer vers l’URL de la console OpenShift
-
{ocp_console_url}[{ocp_console_url}^] en utilisant l’utilisateur
admin
et le mot de passe{ocp_admin_password}
Prérequis pour l’Installation
Certains prérequis nécessaires pour installer Red Hat OpenStack Services sur OpenShift (RHOSO) sont déjà inclus dans l’environnement de laboratoire tels que:
-
Un cluster OpenShift opérationnel qui prend en charge le CNI Multus
-
L’outil de ligne de commande oc sur votre poste de travail (hôte bastion)
-
L’outil de ligne de commande k9s sur votre poste de travail (hôte bastion)
-
L’outil de ligne de commande podman sur votre poste de travail (hôte bastion)
-
Accès aux dépôts qui contiennent le code d’Openstack
-
Accès à un registre existant ou création d’un registre Quay local
-
Des fichiers YAML d’exemple sont disponibles dans ce dépôt qui peut être cloné ou copié-collé pour utilisation. Pour faciliter les instructions, il sera supposé que le dépôt a été cloné
Prérequis pour installer les Opérateurs
Il y a trois opérateurs qui doivent être installés avant de pouvoir installer les opérateurs OpenStack, NMState Operator MetalLB Operator et Cert-Manager + Operator
Accès au Cluster
Depuis l’hypervisor, connectez-vous au bastion
sudo -i
ssh root@192.168.123.100
Les mot de passe est redhat
.
[root@ocp4-bastion ~]
Assurez-vous de pouvoir accéder au cluster OpenShift, par exemple, en listant les nœuds de votre cluster :
oc get nodes
NAME STATUS ROLES AGE VERSION ocp4-master1.aio.example.com Ready control-plane,master 26h v1.25.16+9946c63 ocp4-master2.aio.example.com Ready control-plane,master 26h v1.25.16+9946c63 ocp4-master3.aio.example.com Ready control-plane,master 26h v1.25.16+9946c63 ocp4-worker1.aio.example.com Ready worker 25h v1.25.16+9946c63 ocp4-worker2.aio.example.com Ready worker 25h v1.25.16+9946c63 ocp4-worker3.aio.example.com Ready worker 25h v1.25.16+9946c63
L’opérateur NMState
NMState est un outil de gestion de configuration réseau pour Linux qui permet de configurer et de maintenir l’état du réseau de manière déclarative. Il fournit une API et une bibliothèque qui permettent aux administrateurs système et aux développeurs de définir l’état souhaité d’une configuration réseau plutôt que de spécifier les commandes pour y parvenir.
Créez le namespace pour l’opérateur NMState:
cat << EOF | oc apply -f -
apiVersion: v1
kind: Namespace
metadata:
labels:
kubernetes.io/metadata.name: openshift-nmstate
name: openshift-nmstate
name: openshift-nmstate
spec:
finalizers:
- kubernetes
EOF
Créez l'OperatorGroup:
cat << EOF | oc apply -f -
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
annotations:
olm.providedAPIs: NMState.v1.nmstate.io
name: openshift-nmstate
namespace: openshift-nmstate
spec:
targetNamespaces:
- openshift-nmstate
EOF
Confirmez que l’OperatorGroup est installé dans le namespace:
oc get operatorgroup -n openshift-nmstate
NAME AGE openshift-nmstate 5s
S’abonner à l’opérateur nmstate :
cat << EOF| oc apply -f -
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
labels:
operators.coreos.com/kubernetes-nmstate-operator.openshift-nmstate: ""
name: kubernetes-nmstate-operator
namespace: openshift-nmstate
spec:
channel: stable
installPlanApproval: Automatic
name: kubernetes-nmstate-operator
source: redhat-operators
sourceNamespace: openshift-marketplace
EOF
Vérifiez que l’opérateur NMstate est en cours d’exécution. Répétez cette commande jusqu’à ce que vous obteniez le résultat Succeeded :
oc get clusterserviceversion -n openshift-nmstate -o custom-columns=Name:.metadata.name,Phase:.status.phase -w
L’option -w (wait), qui permet d’attendre les différentes sorties de le commande sans avoir à la rafraichir.
Name Phase kubernetes-nmstate-operator.4.16.0-202502111405 Succeeded
Attendez que la phase passe en Succeeded, puis appuyez sur CTRL + C pour revenir au prompt.
Créer une instance de l’opérateur nmstate :
cat << EOF | oc apply -f -
apiVersion: nmstate.io/v1
kind: NMState
metadata:
name: nmstate
EOF
Confirmez que le déploiement de l’opérateur nmstate est réussi :
oc get clusterserviceversion -n openshift-nmstate \
-o custom-columns=Name:.metadata.name,Phase:.status.phase
Name Phase kubernetes-nmstate-operator.4.16.0-202502111405 Succeeded
L’opérateur MetalLB
MetalLB est une solution de Load Balancer pour les clusters Kubernetes qui s’exécutent dans des environnements où les services de type LoadBalancer ne sont pas disponibles nativement (comme dans les installations bare-metal). MetalLB permet ainsi à vos applications Kubernetes d’être accessibles depuis l’extérieur du cluster avec une adresse IP dédiée.
Créez le namespace pour l’opérateur MetalLB:
cat << EOF | oc apply -f -
apiVersion: v1
kind: Namespace
metadata:
name: metallb-system
EOF
Créez l'OperatorGroup:
cat << EOF | oc apply -f -
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
name: metallb-operator
namespace: metallb-system
EOF
Confirmez que l’OperatorGroup est installé dans le namespace :
oc get operatorgroup -n metallb-system
Abonnez-vous à l’opérateur metallb :
cat << EOF| oc apply -f -
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: metallb-operator-sub
namespace: metallb-system
spec:
channel: stable
name: metallb-operator
source: redhat-operators
sourceNamespace: openshift-marketplace
EOF
Confirmez que le plan d’installation metallb se trouve dans l’espace de noms :
oc get installplan -n metallb-system -w
Confirmez que l’opérateur metallb est installé :
oc get clusterserviceversion -n metallb-system \
-o custom-columns=Name:.metadata.name,Phase:.status.phase
Répétez la requête jusqu’à ce que la phase soit réussie ou utiliser la commande avec l’option -w.
Créez une instance unique d’une ressource metallb :
cat << EOF | oc apply -f -
apiVersion: metallb.io/v1beta1
kind: MetalLB
metadata:
name: metallb
namespace: metallb-system
spec:
nodeSelector:
node-role.kubernetes.io/worker: ""
EOF
Vérifiez que le déploiement du contrôleur metallb est en cours d’exécution :
oc get deployment -n metallb-system controller
Répétez la commande (ou utilisez l’option -w) jusqu’à ce que AVAILABLE soit égal à 1
Les speakers de MetalLB sont responsables de l’annonce des adresses IP attribuées aux services LoadBalancer à travers le réseau. Les speakers fonctionnent sous forme de DaemonSet dans Kubernetes, ce qui signifie qu’une instance est exécutée sur chaque nœud du cluster. Vérifiez que le démon défini pour le speaker est en cours d’exécution :
oc get daemonset -n metallb-system speaker
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE speaker 3 3 3 3 3 kubernetes.io/os=linux,node-role.kubernetes.io/worker= 32s
L’opérateur Cert-Manager
Cert Manager est un outil de gestion de certificats TLS/SSL pour Kubernetes. Il facilite l’obtention, le renouvellement et l’utilisation des certificats cryptographiques dans les environnements Kubernetes. Cert Manager est devenu un composant essentiel dans de nombreux déploiements Kubernetes pour gérer de manière fiable et automatisée la sécurité TLS des applications.
Créez le namespace pour l’opérateur cert-manager-operator:
cat << EOF | oc apply -f -
apiVersion: v1
kind: Namespace
metadata:
name: cert-manager-operator
labels:
pod-security.kubernetes.io/enforce: privileged
security.openshift.io/scc.podSecurityLabelSync: "false"
EOF
Créez l'OperatorGroup:
cat << EOF | oc apply -f -
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
name: cert-manager-operator
namespace: cert-manager-operator
spec:
targetNamespaces:
- cert-manager-operator
upgradeStrategy: Default
EOF
Confirmez que l’OperatorGroup est installé dans le namespace :
oc get operatorgroup -n cert-manager-operator
NAME AGE cert-manager-operator 7s
Abonnez-vous à l’opérateur cert-manager :
cat << EOF | oc apply -f -
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
labels:
operators.coreos.com/openshift-cert-manager-operator.cert-manager-operator: ""
name: openshift-cert-manager-operator
namespace: cert-manager-operator
spec:
channel: stable-v1
installPlanApproval: Automatic
name: openshift-cert-manager-operator
source: redhat-operators
sourceNamespace: openshift-marketplace
EOF
Confirmez que le plan d’installation cert-manager se trouve dans le namespace :
oc get installplan -n cert-manager-operator -w
NAME CSV APPROVAL APPROVED install-64885 cert-manager-operator.v1.15.0 Automatic true
Confirmez que l’opérateur cert-manager est installé :
oc get clusterserviceversion -n cert-manager-operator \
-o custom-columns=Name:.metadata.name,Phase:.status.phase
Name Phase cert-manager-operator.v1.15.0 Succeeded
Vérifiez que les pods cert-manager sont opérationnels en entrant la commande suivante :
oc get pods -n cert-manager
Répétez la commande (ou utilisez l’option -w) jusqu’à ce que tous les modules affichent READY 1/1
NAME READY STATUS RESTARTS AGE cert-manager-54b4497999-9tzsr 1/1 Running 0 36m cert-manager-cainjector-7459fbc5c-l4ggd 1/1 Running 0 37m cert-manager-webhook-858d54b79d-l5qgd 1/1 Running 0 37m
Les 3 opérateurs requis pour l’installation d’Openstack sont maintenant installés et configurés.