Remarque :
- Ce tutoriel est disponible dans un environnement d'atelier gratuit fourni par Oracle.
- Il utilise des exemples de valeur pour les informations d'identification Oracle Cloud Infrastructure, la location et les compartiments. A la fin de votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Déployer un environnement natif Oracle Cloud
Introduction
L'environnement natif Oracle Cloud est une suite entièrement intégrée pour le développement et la gestion d'applications cloud natives. Le module Kubernetes est le module de base. Il est utilisé pour déployer et gérer les conteneurs et installe et configure également automatiquement les conteneurs CRI-O, runC et Kata. CRI-O gère l'exécution de conteneur pour un cluster Kubernetes. L'exécution peut être des conteneurs runC ou Kata.
Objectifs
Ce laboratoire montre comment :
- Installer Oracle Cloud Native Environment version 1.5 sur un cluster à 3 noeuds
- Configuration des certificats d'autorité de certification privés x.590
- Configurer l'environnement natif Oracle Cloud sur un cluster à 3 noeuds
- Vérification de l'installation réussie
Prérequis
Les systèmes hôtes pour effectuer les étapes de ce tutoriel sont répertoriés dans cette section. Pour réussir, il faut :
-
3 systèmes Oracle Linux à utiliser en tant que :
- Noeud opérateur (ocne-operator)
- Noeud de plan de contrôle Kubernetes (ocne-control)
- Noeud de processus actif Kubernetes (ocne-worker)
-
Chaque système doit disposer au minimum des éléments suivants :
- La dernière version d'Oracle Linux 8 (x86_64) installée et exécutant Unbreakable Enterprise Kernel version 6 (UEK R6)
-
Cet environnement est préconfiguré avec les éléments suivants :
- Création d'un compte utilisateur Oracle (utilisé lors de l'installation)
- Octroi de l'accès 'sudo' au compte Oracle
- Configurer SSH basé sur une clé, également appelé SSH sans mot de passe, entre les instances
Configurer l'environnement des exercices
Remarque : lorsque vous utilisez l'environnement d'atelier gratuit, reportez-vous à Oracle Linux Lab Basics pour obtenir des instructions de connexion et d'utilisation.
Ce laboratoire implique plusieurs systèmes, chacun nécessitant des étapes différentes. Il est recommandé d'ouvrir trois fenêtres de terminal et de se connecter aux noeuds ocne-operator, ocne-control et ocne-worker. Cela évite de devoir se connecter et se déconnecter à plusieurs reprises.
-
Ouvrez un terminal et connectez-vous via SSH à chacun des trois noeuds.
ssh oracle@<ip_address_of_ol_node>
Remarque Lorsqu'une étape indique "(On all node)" dans l'exercice, effectuez ces actions sur ocne-operator, ocne-control et ocne-worker. La raison de cette approche est d'éviter la répétition, car l'action requise sera identique sur chaque noeud.
(Facultatif) Mise à niveau d'Oracle Linux
-
(Sur tous les noeuds) Assurez-vous qu'Oracle Linux est à jour.
sudo dnf -y updateCette opération peut prendre quelques minutes. Elle peut gagner du temps si cette étape est exécutée en parallèle sur chaque noeud séparément.
-
(Sur tous les noeuds), réinitialisez et reconnectez-vous.
sudo reboot -
(Sur tous les noeuds) Après la réinitialisation du système, reconnectez-vous aux noeuds via ssh.
ssh oracle@<ip_address_of_ol_node>
Installer et activer le référentiel Yum de l'environnement natif Oracle Cloud
-
(Sur tous les noeuds) Installez le référentiel yum.
sudo dnf -y install oracle-olcne-release-el8 -
(Sur tous les noeuds) Activez le référentiel Oracle Cloud Native Environment en cours.
sudo dnf config-manager --enable ol8_olcne15 ol8_addons ol8_baseos_latest ol8_appstream ol8_UEKR6 -
(Sur tous les noeuds) Désactivez toutes les versions précédentes du référentiel.
sudo dnf config-manager --disable ol8_olcne12 ol8_olcne13 ol8_olcne14 ol8_developer
Installer et activer Chrony
-
(Sur tous les noeuds) S'il n'est pas déjà disponible sur le système, installez et activez le service chronologique.
Vérifiez si chrony est installé.
sudo dnf list --installed chronyDans le cas contraire, installez l'ordre chronologique.
sudo dnf -y install chrony sudo systemctl enable --now chronydRemarque : le service chrony (time) est déjà installé et configuré dans l'environnement d'atelier gratuit.
Désactiver le swap
-
(Sur tous les noeuds) Désactivez le swap sur tous les noeuds.
sudo swapoff -a sudo sed -i '/swap/ s/^#*/#/' /etc/fstab
Configuration du pare-feu Oracle Linux
Remarque : le service firewalld est installé et s'exécute par défaut sur Oracle Linux.
-
(Sur ocne-operator) Définissez les règles de pare-feu pour le noeud opérateur.
sudo firewall-cmd --add-port=8091/tcp --permanent sudo firewall-cmd --reload -
(Sur ocne-control) Définissez les règles de pare-feu pour les noeuds de plan de contrôle.
sudo firewall-cmd --zone=trusted --add-interface=cni0 --permanent sudo firewall-cmd --add-port=8090/tcp --permanent sudo firewall-cmd --add-port=10250/tcp --permanent sudo firewall-cmd --add-port=10255/tcp --permanent sudo firewall-cmd --add-port=8472/udp --permanent sudo firewall-cmd --add-port=6443/tcp --permanent sudo firewall-cmd --reload -
(Sur ocne-control) Ajoutez les éléments suivants qui sont utilisés pour la haute disponibilité et requis pour réussir la validation.
sudo firewall-cmd --add-port=10251/tcp --permanent sudo firewall-cmd --add-port=10252/tcp --permanent sudo firewall-cmd --add-port=2379/tcp --permanent sudo firewall-cmd --add-port=2380/tcp --permanent sudo firewall-cmd --reload -
(Sur ocne-worker) Définissez les règles de pare-feu pour les noeuds de processus actif.
sudo firewall-cmd --zone=trusted --add-interface=cni0 --permanent sudo firewall-cmd --add-port=8090/tcp --permanent sudo firewall-cmd --add-port=10250/tcp --permanent sudo firewall-cmd --add-port=10255/tcp --permanent sudo firewall-cmd --add-port=8472/udp --permanent sudo firewall-cmd --reload
Chargement du module de filtrage de pont
-
(Sur ocne-control et ocne-worker) Activez et chargez le module.
sudo modprobe br_netfilter sudo sh -c 'echo "br_netfilter" > /etc/modules-load.d/br_netfilter.conf'
Configurer le noeud opérateur
Le noeud opérateur exécute et gère le déploiement des environnements, y compris le déploiement du cluster Kubernetes. Un noeud opérateur peut être un noeud dans le cluster Kubernetes ou un hôte distinct, comme dans ce tutoriel. Installez l'interface de ligne de commande, le serveur d'API de plate-forme et les utilitaires Oracle Cloud Native Environment Platform sur le noeud opérateur.
-
(Sur ocne-operator) Installez l'interface de ligne de commande de plate-forme, le serveur d'API de plate-forme et les utilitaires.
sudo dnf -y install olcnectl olcne-api-server olcne-utils -
(Sur ocne-operator) Activez le service
olcne-api-server, mais ne le démarrez pas.sudo systemctl enable olcne-api-server.service
Configuration des noeuds Kubernetes
Le plan de contrôle Kubernetes et les noeuds de processus actif contiennent l'agent Oracle Cloud Native Environment Platform et les packages utilitaires.
-
(Sur ocne-control et ocne-worker) Installez le package et les utilitaires de l'agent de plate-forme.
sudo dnf -y install olcne-agent olcne-utils -
(Sur ocne-control et ocne-worker) Activez
olcne-agent(mais pas le démarrer).sudo systemctl enable olcne-agent.service
Les étapes ci-dessus complètent la configuration initiale et l'installation logicielle de chaque noeud.
(Facultatif) Configuration du serveur proxy
Si vous utilisez un serveur proxy, configurez-le avec CRI-O sur chaque noeud Kubernetes.
Remarque : cette opération n'est pas requise dans l'environnement d'atelier gratuit.
-
(Sur tous les noeuds) Créez le service CRIO.
sudo mkdir /etc/systemd/system/crio.service.d -
(Sur tous les noeuds) Ouvrez le fichier de configuration proxy avec vi et définissez-le sur le mode "insert".
sudo vi /etc/systemd/system/crio.service.d/proxy.conf -
(Sur tous les noeuds), remplacez les valeurs de proxy appropriées pour celles de votre environnement à l'aide du fichier exemple ci-dessous.
[Service] Environment="HTTP_PROXY=proxy.example.com:80" Environment="HTTPS_PROXY=proxy.example.com:80" Environment="NO_PROXY=.example.com,192.0.2.*"
Configurer des certificats d'autorité de certification privés X.509
Utilisez le script /etc/olcne/gen-certs-helper.sh fourni pour générer une CA privée et des certificats pour les noeuds. Exécutez le script à partir du répertoire /etc/olcne sur le noeud opérateur, en enregistrant les fichiers de certificat dans le répertoire en cours.
-
(Sur ocne-operator, créez les certificats X.509.
cd /etc/olcne sudo ./gen-certs-helper.sh \ --cert-request-organization-unit "My Company Unit" \ --cert-request-organization "My Company" \ --cert-request-locality "My Town" \ --cert-request-state "My State" \ --cert-request-country US \ --cert-request-common-name pub.linuxvirt.oraclecvn.com \ --nodes ocne-worker.pub.linuxvirt.oraclevcn.com,ocne-control.pub.linuxvirt.oraclevcn.com,ocne-operator.pub.linuxvirt.oraclevcn.comFournissez les informations d'autorité de certification privée à l'aide des options
--cert-request*. Certaines de ces options existent dans l'exemple. Exécutez la commandegen-certs-helper.sh --helppour obtenir la liste complète des options.--cert-request-common-name: indiquez le nom de domaine DNS approprié pour votre environnement.--nodes: indiquez le nom de domaine qualifié complet de vos noeuds d'opérateur, de plan de contrôle et de processus actif.
Transfert des certificats d'autorité de certification privés X.509
Après avoir généré les certificats, copiez-les sur chacun des noeuds.
-
(Sur ocne-operator) Mettez à jour les détails utilisateur dans le script de transfert fourni.
sudo sed -i 's/USER=opc/USER=oracle/g' configs/certificates/olcne-tranfer-certs.shCe tutoriel nécessite cette étape car l'utilisateur par défaut du script est
opc. Depuis l'installation du produit à l'aide de l'utilisateuroracle, mettez à jour la variableUSERdans le script en conséquence. -
(Sur ocne-operator) Définissez les autorisations pour chaque noeud.key généré par le script de création de certificat.
sudo chmod 644 /etc/olcne/configs/certificates/tmp-olcne/ocne-control.pub.linuxvirt.oraclevcn.com/node.key sudo chmod 644 /etc/olcne/configs/certificates/tmp-olcne/ocne-operator.pub.linuxvirt.oraclevcn.com/node.key sudo chmod 644 /etc/olcne/configs/certificates/tmp-olcne/ocne-worker.pub.linuxvirt.oraclevcn.com/node.key -
(Sur ocne-operator) Transférez les scripts vers chaque noeud.
Cette étape nécessite une connexion SSH sans mot de passe configurée entre les noeuds. La configuration de ce didacticiel n'est pas comprise dans le cadre de ce didacticiel, mais elle est préconfigurée dans l'environnement d'exercices gratuits.
bash -ex /etc/olcne/configs/certificates/olcne-tranfer-certs.sh -
(Sur tous les noeuds) Vérifiez que les fichiers ont été copiés correctement.
sudo -u olcne ls /etc/olcne/configs/certificates/productionExemple de sortie :
[oracle@ocne-control ~]$ sudo -u olcne ls /etc/olcne/configs/certificates/production ca.cert node.cert node.key
Configuration de certificats X.509 pour le service Kubernetes externalIPs
Le service Kubernetes externalip-validation-webhook-service requiert la configuration de certificats X.509 avant le déploiement de Kubernetes.
-
(Sur ocne-operator) Générez les certificats.
cd /etc/olcne sudo ./gen-certs-helper.sh \ --cert-dir /etc/olcne/configs/certificates/restrict_external_ip/ \ --cert-request-organization-unit "My Company Unit" \ --cert-request-organization "My Company" \ --cert-request-locality "My Town" \ --cert-request-state "My State" \ --cert-request-country US \ --cert-request-common-name cloud.example.com \ --nodes externalip-validation-webhook-service.externalip-validation-system.svc,\ externalip-validation-webhook-service.externalip-validation-system.svc.cluster.local \ --one-cert \ --byo-ca-cert /etc/olcne/configs/certificates/production/ca.cert \ --byo-ca-key /etc/olcne/configs/certificates/production/ca.key--byo-ca-*: cette option utilise la clé et le certificat CA précédemment créés.
-
(Sur ocne-operator) Définissez les autorisations pour le répertoire contenant node.key généré par le script de création de certificat.
sudo chown -R oracle:oracle /etc/olcne/configs/certificates/restrict_external_ip/
Démarrer le serveur d'API de plate-forme
-
(Sur ocne-operator) Exécutez le script d'initialisation pour configurer le serveur d'API de plate-forme afin qu'il utilise les certificats.
sudo /etc/olcne/bootstrap-olcne.sh \ --secret-manager-type file \ --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert \ --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert \ --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key \ --olcne-component api-serverExemple de sortie :
[oracle@ocne-operator olcne]$ sudo /etc/olcne/bootstrap-olcne.sh \ > --secret-manager-type file \ > --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert \ > --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert \ > --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key \ > --olcne-component api-server * olcne-api-server.service - API server for Oracle Linux Cloud Native Environments Loaded: loaded (/usr/lib/systemd/system/olcne-api-server.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/olcne-api-server.service.d `-10-auth.conf Active: active (running) since Wed 2022-05-11 13:35:19 GMT; 2s ago Main PID: 96132 (olcne-api-serve) Tasks: 7 (limit: 203120) Memory: 12.2M CGroup: /system.slice/olcne-api-server.service `-96132 /usr/libexec/olcne-api-server -i /etc/olcne/modules --secret-manager-type file --olcne-ca-path /etc/olcne... May 11 13:35:19 ocne-operator systemd[1]: Started API server for Oracle Linux Cloud Native Environments. May 11 13:35:19 ocne-operator olcne-api-server[96132]: time=11/05/22 13:35:19 level=info msg=Api server listening on: 8091- Vous pouvez également utiliser des certificats gérés par HashiCorp Vault. L'utilisation de cette méthode n'est pas incluse dans ce tutoriel.
-
(Sur ocne-operator) Vérifiez que le serveur d'API de plate-forme est en cours d'exécution.
sudo systemctl status olcne-api-serverExemple de sortie :
[oracle@ocne-operator olcne]$ sudo systemctl status olcne-api-server * olcne-api-server.service - API server for Oracle Linux Cloud Native Environments Loaded: loaded (/usr/lib/systemd/system/olcne-api-server.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/olcne-api-server.service.d `-10-auth.conf Active: active (running) since Wed 2022-05-11 10:44:30 GMT; 9min ago Main PID: 59600 (olcne-api-serve) Tasks: 7 (limit: 203120) Memory: 12.6M CGroup: /system.slice/olcne-api-server.service `-59600 /usr/libexec/olcne-api-server -i /etc/olcne/modules --secret-manager-type file --olcne-ca-path /etc/olcne/c> May 11 10:44:30 ocne-operator systemd[1]: Started API server for Oracle Linux Cloud Native Environments. May 11 10:44:30 ocne-operator olcne-api-server[59600]: time=11/05/22 10:44:30 level=info msg=Api server listening on: 8091 ... -
(Sur ocne-operator), appuyez sur "q" pour quitter le processus et passer à l'étape suivante.
Démarrer les agents de plate-forme
-
(Sur ocne-control et ocne-worker), exécutez le script bootstrap pour configurer l'agent de plate-forme afin qu'il utilise les certificats.
sudo /etc/olcne/bootstrap-olcne.sh \ --secret-manager-type file \ --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert \ --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert \ --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key \ --olcne-component agent
Exemple de sortie :
[oracle@ocne-worker ~]$ sudo /etc/olcne/bootstrap-olcne.sh \ > --secret-manager-type file \ > --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert \ > --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert \ > --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key \ > --olcne-component agent * olcne-agent.service - Agent for Oracle Linux Cloud Native Environments Loaded: loaded (/usr/lib/systemd/system/olcne-agent.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/olcne-agent.service.d `-10-auth.conf Active: active (running) since Wed 2022-05-11 11:13:58 GMT; 2s ago Main PID: 66500 (olcne-agent) Tasks: 8 (limit: 203120) Memory: 7.1M CGroup: /system.slice/olcne-agent.service `-66500 /usr/libexec/olcne-agent --secret-manager-type file --olcne-ca-path /etc/olcne/configs/certificates/produc... May 11 11:13:58 ocne-control systemd[1]: Started Agent for Oracle Linux Cloud Native Environments. May 11 11:13:58 ocne-control olcne-agent[66500]: time=11/05/22 11:13:58 level=info msg=Started server on[::]:8090
Création d'un fichier de configuration de la CLI de plate-forme
Les administrateurs peuvent utiliser un fichier de configuration pour simplifier la création et la gestion des environnements et des modules. Le fichier de configuration, écrit dans une syntaxe YAML valide, inclut toutes les informations sur les environnements et les modules à créer. L'utilisation d'un fichier de configuration enregistre les entrées répétées des options de commande de la CLI de plate-forme.
Lors du déploiement de l'exercice, un fichier de configuration est automatiquement généré et prêt à être utilisé. Pour plus d'informations sur la création manuelle d'un fichier de configuration, reportez-vous à la documentation à l'adresse Utilisation d'un fichier de configuration.
-
(Sur ocne-operator) Affichez le contenu du fichier de configuration.
cat ~/myenvironment.yaml
Création de l'environnement et du module Kubernetes
-
(Sur ocne-operator) Créez l'environnement.
cd ~ olcnectl environment create --config-file myenvironment.yamlExemple de sortie :
[oracle@ocne-operator ~]$ olcnectl environment create --config-file myenvironment.yaml Environment myenvironment created. -
(Sur ocne-operator) Créez le module Kubernetes.
olcnectl module create --config-file myenvironment.yamlExemple de sortie :
[oracle@ocne-operator ~]$ olcnectl module create --config-file myenvironment.yaml Modules created successfully. -
(Sur ocne-operator) Validez le module Kubernetes.
olcnectl module validate --config-file myenvironment.yamlExemple de sortie :
[oracle@ocne-operator ~]$ olcnectl module validate --config-file myenvironment.yaml Validation of module mycluster succeeded.Dans cet exemple, il n'y a aucune erreur de validation. En cas d'erreur, les commandes requises pour corriger les noeuds sont fournies en sortie de cette commande.
-
(Sur ocne-operator) Installez le module Kubernetes.
olcnectl module install --config-file myenvironment.yamlLe déploiement de Kubernetes sur les noeuds peut prendre plusieurs minutes.
Exemple de sortie :
[oracle@ocne-operator ~]$ olcnectl module install --config-file myenvironment.yaml Modules installed successfully. -
(Sur ocne-operator) Validez le déploiement du module Kubernetes.
olcnectl module instances --config-file myenvironment.yamlExemple de sortie :
[oracle@ocne-operator ~]$ olcnectl module instances --config-file myenvironment.yaml INSTANCE MODULE STATE mycluster kubernetes installed ocne-control.pub.linuxvirt.oraclevcn.com:8090 node installed ocne-worker.pub.linuxvirt.oraclevcn.com:8090 node installed
Configurer kubectl
-
(Sur ocne-control) Configurez la commande
kubectl.mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config export KUBECONFIG=$HOME/.kube/config echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc -
(Sur ocne-control) Vérifiez que
kubectlfonctionne.kubectl get nodesExemple de sortie :
[oracle@ocne-control ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ocne-control Ready control-plane,master 10m v1.22.8+1.el8 ocne-worker Ready <none> 10m v1.22.8+1.el8
Pour plus d'informations
- Documentation de l'environnement natif Oracle Cloud
- Formation Oracle Cloud Native Environment
- Abonnement de formation Oracle Linux
- Cursus Oracle Linux
Ressources de formation supplémentaires
Explorez d'autres exercices sur docs.oracle.com/learn ou accédez à davantage de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir Oracle Learning Explorer.
Pour consulter la documentation du produit, consultez le centre d'aide Oracle.
Deploy Oracle Cloud Native Environment
F49687-05
May 2022
Copyright © 2022, Oracle and/or its affiliates.