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.
Utiliser l'installation rapide pour déployer Oracle Cloud Native Environment
Introduction
Oracle Cloud Native Environment est une suite entièrement intégrée dédiée au 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 des conteneurs, ainsi que pour installer et configurer 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 runC ou Kata Containers.
Oracle Cloud Native Environment version 1.5.7 a permis d'utiliser l'interface de ligne de commande de la plate-forme Oracle Cloud Native Environment pour effectuer une installation rapide de lui-même. Pour ce faire, utilisez la commande olcnectl provision sur un hôte d'installation (noeud operator). La commande olcnectl provision peut effectuer les opérations suivantes sur les noeuds cible :
- Générer des certificats CA.
- Copiez les certificats CA sur chaque noeud.
- Configurez le système d'exploitation sur chaque noeud, y compris les ports réseau.
- Installez les packages logiciels Oracle Cloud Native Environment sur chaque noeud.
- Démarrez les services de plate-forme Oracle Cloud Native Environment (Platform API Server et Platform Agent).
- Créez un environnement Oracle Cloud Native Environment.
- Créez, validez et installez un module Kubernetes, qui crée le cluster Kubernetes.
- Configurez les certificats de plate-forme sur
~./olcnesur le noeud operator pour accéder à l'environnement à l'aide de la commande olcnectl.
Ce tutoriel explique comment effectuer une installation rapide en utilisant la série d'étapes la plus simple possible pour installer Oracle Cloud Native Environment et un cluster Kubernetes. Ce tutoriel utilise des certificats CA privés. Il est recommandé d'utiliser vos propres certificats CA dans un environnement de production.
Vous pouvez obtenir des topologies d'installation plus complexes en écrivant votre propre fichier de configuration Oracle Cloud Native Environment, puis en le transmettant à la commande olcnectl provision à l'aide de l'option -config-file. Pour plus d'informations sur les options de syntaxe fournies par la commande olcnectl provision et sur la façon d'écrire un fichier de configuration, reportez-vous au guide Platform Command-Line Interface.
Objectifs
Ce laboratoire explique comment :
- Effectuer une installation rapide d'Oracle Cloud Native Environment
- Configuration d'un hôte à l'aide de la CLI de plate-forme (olcnectl) sur le noeud operator
- Utilisez la commande olcnectl provision pour effectuer une installation rapide
- Installer Oracle Cloud Native Environment version 1.5 sur un cluster à 3 noeuds
- Vérification de l'installation terminée
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 comme :
- 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 :
- Compte utilisateur oracle (utilisé lors de l'installation) avec accès sudo
- SSH basé sur une clé, également appelé SSH sans mot de passe, entre les hôtes
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. La plupart des opérations seront lancées à partir du noeud ocne-operator. Il est donc recommandé d'ouvrir une fenêtre de terminal sur ce noeud au minimum.
-
Ouvrez un terminal et connectez-vous via SSH à chaque noeud.
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 vers Unbreakable Enterprise Kernel 7 (UEK7)
Oracle Cloud Native Environment version 1.5.7 a introduit la prise en charge d'Oracle Linux 8 Unbreakable Enterprise Kernel 7. Les étapes suivantes indiquent donc comment effectuer une mise à niveau vers cette nouvelle version de noyau. Les étapes suivantes décrivent la mise à jour de l'environnement d'atelier qui utilise Oracle Linux 8 Update 6 UEK R6 vers Unbreakable Enterprise Kernel 7 (UEK7).
-
(Sur tous les noeuds) Vérifiez quels référentiels sont actuellement configurés :
dnf repolistExemple de sortie :
[oracle@ocne-operator ~]$ dnf repolist repo id repo name ol8_MySQL80 MySQL 8.0 for Oracle Linux 8 (x86_64) ol8_MySQL80_connectors_community MySQL 8.0 Connectors Community for Oracle Linux 8 (x86_64) ol8_MySQL80_tools_community MySQL 8.0 Tools Community for Oracle Linux 8 (x86_64) ol8_UEKR6 Latest Unbreakable Enterprise Kernel Release 6 for Oracle Linux 8 (x86_64) ol8_addons Oracle Linux 8 Addons (x86_64) ol8_appstream Oracle Linux 8 Application Stream (x86_64) ol8_baseos_latest Oracle Linux 8 BaseOS Latest (x86_64) -
(Sur tous les noeuds) Vérifiez que le noyau Enterpriose instable est installé
dnf list installed kernel-uekExemple de sortie :
[oracle@ocne-operator ~]$ dnf list installed kernel-uek Installed Packages kernel-uek.x86_64 5.4.17-2136.311.6.1.el8uek @@commandline kernel-uek.x86_64 5.4.17-2136.312.3.4.el8uek @ol8_UEKR6 kernel-uek.x86_64 5.4.17-2136.313.6.el8uek @ol8_UEKR6 -
(Sur tous les noeuds) Activez le nouveau noyau Unbreakable Enterprise Kernel et désactivez l'ancien.
sudo dnf config-manager --set-disabled ol8_UEKR6 sudo dnf config-manager --set-enabled ol8_UEKR7 -
(Sur tous les noeuds) Vérifiez quels nouveaux référentiels Unbreakable Enterprise Kernel sont désormais activés.
dnf repolistExemple de sortie :
[oracle@ocne-operator ~]$ dnf repolist repo id repo name ol8_MySQL80 MySQL 8.0 for Oracle Linux 8 (x86_64) ol8_MySQL80_connectors_community MySQL 8.0 Connectors Community for Oracle Linux 8 (x86_64) ol8_MySQL80_tools_community MySQL 8.0 Tools Community for Oracle Linux 8 (x86_64) ol8_UEKR7 Latest Unbreakable Enterprise Kernel Release 7 for Oracle Linux 8 (x86_64) ol8_addons Oracle Linux 8 Addons (x86_64) ol8_appstream Oracle Linux 8 Application Stream (x86_64) ol8_baseos_latest Oracle Linux 8 BaseOS Latest (x86_64) -
(Sur tous les noeuds) Mettez à niveau l'environnement.
sudo dnf -y upgrade kernel-uekRemarque importante : cette opération peut prendre quelques minutes. Elle gagnera du temps si cette étape est exécutée en parallèle sur chaque noeud séparément.
-
(Sur tous les noeuds) Vérifiez que le noyau Enterpriose instable est installé
dnf list installed kernel-uekExemple de sortie :
[oracle@ocne-operator ~]$ dnf list installed kernel-uek Installed Packages kernel-uek.x86_64 5.4.17-2136.311.6.1.el8uek @@commandline kernel-uek.x86_64 5.4.17-2136.312.3.4.el8uek @ol8_UEKR6 kernel-uek.x86_64 5.4.17-2136.313.6.el8uek @ol8_UEKR6 kernel-uek.x86_64 5.15.0-3.60.5.1.el8uek @ol8_UEKR7 -
(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> -
(Sur tous les noeuds) Vérifiez que le nouveau noyau est installé.
uname -aExemple de sortie :
[oracle@ocne-worker ~]$ uname -a Linux ocne-worker 5.15.0-3.60.5.1.el8uek.x86_64 #2 SMP Wed Oct 19 20:04:48 PDT 2022 x86_64 x86_64 x86_64 GNU/Linux
Configuration de l'hôte d'installation (noeud Operator) sur Oracle Linux 8
Ces étapes permettent de configurer l'hôte Oracle Linux (noeud operator) afin qu'il puisse être utilisé pour l'installation rapide d'Oracle Cloud Native Environment.
-
(Sur ocne-operator) Installez le package de version
oracle-olcne-release-el8.sudo dnf -y install oracle-olcne-release-el8 -
(Sur ocne-operator) Activez le référentiel Oracle Cloud Native Environment actuel.
sudo dnf config-manager --enable ol8_olcne15 ol8_addons ol8_baseos_latest ol8_appstream ol8_kvm_appstream ol8_UEKR6Remarque importante : si vous avez suivi l'étape (facultatif) pour mettre à niveau le noyau vers UEK7, utilisez la commande suivante à la place :
sudo dnf config-manager --enable ol8_olcne15 ol8_addons ol8_baseos_latest ol8_appstream ol8_kvm_appstream ol8_UEKR7 -
(Sur ocne-operator) Désactivez toutes les versions précédentes du référentiel.
sudo dnf config-manager --disable ol8_olcne14 ol8_olcne13 ol8_olcne12 ol8_developer -
(Sur ocne-operator) Installez le package logiciel olcnectl.
sudo dnf -y install olcnectl
Effectuer une installation rapide
Les étapes suivantes décrivent la méthode la plus rapide pour configurer un déploiement de base d'Oracle Cloud Native Environment et installer un cluster Kubernetes. Elle nécessite au moins trois noeuds, à savoir :
- Noeud d'opérateur utilise la CLI de plate-forme (olcnectl) pour effectuer l'installation, ainsi que pour héberger le serveur API de plate-forme.
- Le plan de contrôle Kubernetes requiert au moins un noeud à utiliser en tant que noeud de plan de contrôle Kubernetes.
- Processeur Kuberbetes requiert au moins un noeud à utiliser en tant que noeud de processus actif Kubernetes.
-
(Sur ocne-operator), utilisez la commande olcnectl provision pour démarrer l'installation.
olcnectl provision \ --api-server ocne-operator \ --master-nodes ocne-control \ --worker-nodes ocne-worker \ --environment-name myenvironment \ --name myclusterRemarque importante : cette opération peut prendre entre 10 et 15 minutes et il n'y aura aucune indication visible indiquant que quelque chose se produit jusqu'à la fin.
Où :
- -api-server : nom de domaine qualifié complet du noeud sur lequel l'API de plate-forme doit être configurée.
- -master-nodes - Nom de domaine qualifié complet des noeuds qui seront configurés avec l'agent de plate-forme et auxquels le rôle de plan de contrôle Kubernetes sera affecté. Si plusieurs noeuds sont présents, il doit s'agir d'une liste séparée par des virgules.
- -worker-nodes - Nom de domaine qualifié complet des noeuds qui seront configurés avec l'agent de plate-forme et auxquels le rôle de processus actif Kubernetes sera affecté. Si plusieurs noeuds sont présents, il doit s'agir d'une liste séparée par des virgules.
- -environment-name - utilisé pour identifier l'environnement.
- -name : permet de définir le nom du module Kubernetes.
Remarque Lors de l'exécution de cette commande, une invite s'affiche et répertorie les modifications à apporter aux hôtes et demande confirmation. Pour éviter cette invite, utilisez l'option
--yes. Cette option définit la commande olcnectl provision pour considérer que la réponse à une invite de confirmation est positive (yes).Exemple de sortie : affiche un exemple de sortie lorsque le commutateur de commande
--yesn'est pas utilisé :[oracle@ocne-operator ~]$ olcnectl provision --api-server ocne-operator --master-nodes ocne-control --worker-nodes ocne-worker --environment-name myenvironment --name mycluster INFO[31/10/22 11:31:35] Generating certificate authority INFO[31/10/22 11:31:35] Generating certificate for ocne-operator INFO[31/10/22 11:31:35] Generating certificate for ocne-control INFO[31/10/22 11:31:35] Generating certificate for ocne-worker INFO[31/10/22 11:31:35] Creating directory "/etc/olcne/certificates/" on ocne-operator INFO[31/10/22 11:31:35] Copying local file at "certificates/ca/ca.cert" to "/etc/olcne/certificates/ca.cert" on ocne-operator INFO[31/10/22 11:31:35] Copying local file at "certificates/ocne-operator/node.cert" to "/etc/olcne/certificates/node.cert" on ocne-operator INFO[31/10/22 11:31:35] Copying local file at "certificates/ocne-operator/node.key" to "/etc/olcne/certificates/node.key" on ocne-operator INFO[31/10/22 11:31:35] Creating directory "/etc/olcne/certificates/" on ocne-control The authenticity of host 'ocne-control (10.0.0.151)' can't be established. ECDSA key fingerprint is SHA256:NzPd6SBTbrcEgHoaYHY2bnDB357dfPysBXkJLuMVT98. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes INFO[31/10/22 11:31:49] Copying local file at "certificates/ca/ca.cert" to "/etc/olcne/certificates/ca.cert" on ocne-control INFO[31/10/22 11:31:49] Copying local file at "certificates/ocne-control/node.cert" to "/etc/olcne/certificates/node.cert" on ocne-control INFO[31/10/22 11:31:50] Copying local file at "certificates/ocne-control/node.key" to "/etc/olcne/certificates/node.key" on ocne-control INFO[31/10/22 11:31:50] Creating directory "/etc/olcne/certificates/" on ocne-worker The authenticity of host 'ocne-worker (10.0.0.152)' can't be established. ECDSA key fingerprint is SHA256:FV6mTb92EBzV2SRYsdDFfNVYhlJe5s9rWBTPWgAL6VU. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes INFO[31/10/22 11:31:53] Copying local file at "certificates/ca/ca.cert" to "/etc/olcne/certificates/ca.cert" on ocne-worker INFO[31/10/22 11:31:53] Copying local file at "certificates/ocne-worker/node.cert" to "/etc/olcne/certificates/node.cert" on ocne-worker INFO[31/10/22 11:31:54] Copying local file at "certificates/ocne-worker/node.key" to "/etc/olcne/certificates/node.key" on ocne-worker ? Apply api-server configuration on ocne-operator: * Install oracle-olcne-release * Enable olcne15 repo * Install API Server Add firewall port 8091/tcp Proceed? yes/no(default) yes ? Apply control-plane configuration on ocne-control: * Install oracle-olcne-release * Enable olcne15 repo * Configure firewall rule: Add interface cni0 to trusted zone Add ports: 8090/tcp 10250/tcp 10255/tcp 8472/udp 6443/tcp * Disable swap * Load br_netfilter module * Load Bridge Tunable Parameters: net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 * Set SELinux to permissive * Install and enable olcne-agent Proceed? yes/no(default) yes ? Apply worker configuration on ocne-worker: * Install oracle-olcne-release * Enable olcne15 repo * Configure firewall rule: Add interface cni0 to trusted zone Add ports: 8090/tcp 10250/tcp 10255/tcp 8472/udp * Disable swap * Load br_netfilter module * Load Bridge Tunable Parameters: net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 * Set SELinux to permissive * Install and enable olcne-agent Proceed? yes/no(default) yes INFO[31/10/22 11:41:48] Kubeconfig for instance "mycluster" in environment "myenvironment" written to kubeconfig.myenvironment.mycluster -
(Sur ocne-operator) La plate-forme Oracle Cloud Native Environment et le logiciel de cluster Kubernetes sont désormais installés et configurés sur tous les noeuds. Cela peut être confirmé à l'aide des éléments suivants :
olcnectl module instances \ --api-server ocne-operator:8091 \ --environment-name myenvironmentExemple de sortie :
[oracle@ocne-operator ~]$ olcnectl module instances --api-server ocne-operator:8091 --environment-name myenvironment INSTANCE MODULE STATE ocne-worker:8090 node installed mycluster kubernetes installed ocne-control:8090 node installed -
(Sur ocne-operator) Pour éviter d'avoir à utiliser l'indicateur
--api-serverdans les futures commandes olcnectl, exécutez à nouveau la commande précédente en ajoutant l'indicateur--update-config.olcnectl module instances \ --api-server ocne-operator:8091 \ --environment-name myenvironment \ --update-config -
(Sur ocne-operator) Vous pouvez obtenir des informations plus détaillées sur le déploiement à l'aide de la commande olcnectl module report.
olcnectl module report \ --environment-name myenvironment \ --name mycluster \ --children \ --format yamlExemple de sortie :
[oracle@ocne-operator ~]$ olcnectl module report --environment-name myenvironment --name mycluster --children --format yaml Environments: myenvironment: ModuleInstances: - Name: mycluster Properties: - Name: kubectl - Name: cloud-provider - Name: kubecfg Value: file exist ... - Name: kubecfg Value: file exist - Name: selinux Value: permissive - Name: swap Value: "off"Remarque : il est possible de modifier la sortie pour renvoyer cette sortie au format Table. Cependant, cette valeur exige que l'encodage de l'application Terminal soit défini sur
UTF-8(définissez ce qui suit dans le menu de l'application Terminal :Terminal -> Set Encoding -> Unicode -> UTF-8). Exécutez ensuite à nouveau la commande sans l'option--format yaml.olcnectl module report \ --environment-name myenvironment \ --name mycluster \ --childrenExemple de sortie :
[oracle@ocne-operator ~]$ olcnectl module report --environment-name myenvironment --name mycluster --children ╭─────────────────────────────────────────────────────────────────────┬─────────────────────────╮ │ myenvironment │ │ ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ │ mycluster │ │ ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ │ Property │ Current Value │ ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ │ podnetworking │ running │ │ status_check │ healthy │ │ cloud-provider │ │ │ kubecfg │ file exist │ │ externalip-webhook │ uninstalled │ │ extra-node-operations │ │ │ extra-node-operations-update │ running │ │ kubectl │ │ │ master:ocne-control:8090 │ │ │ worker:ocne-worker:8090 │ │ ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ │ ocne-control:8090 │ │ ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ ... ├─────────────────────────────────────────────────────────────────────┼─────────────────────────┤ │ networking │ active │ │ swap │ off │ │ kubecfg │ file exist │ ╰─────────────────────────────────────────────────────────────────────┴─────────────────────────╯
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 kubectl fonctionne.
kubectl get nodes**Exemple de sortie :
[oracle@ocne-control ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ocne-control Ready control-plane 26m v1.24.5+1.el8 ocne-worker Ready <none> 25m v1.24.5+1.el8ou
kubectl get pods --all-namespacesExemple de sortie :
[oracle@ocne-control ~]$ kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-664c775d6f-6gbcc 1/1 Running 0 26m kube-system coredns-664c775d6f-dvht7 1/1 Running 0 26m kube-system etcd-ocne-control 1/1 Running 0 27m kube-system kube-apiserver-ocne-control 1/1 Running 0 27m kube-system kube-controller-manager-ocne-control 1/1 Running 1 (27m ago) 27m kube-system kube-flannel-ds-cv9cl 1/1 Running 0 26m kube-system kube-flannel-ds-cxtz8 1/1 Running 1 (25m ago) 26m kube-system kube-proxy-cbm8s 1/1 Running 0 26m kube-system kube-proxy-rxkhb 1/1 Running 0 26m kube-system kube-scheduler-ocne-control 1/1 Running 0 27m
Cela confirme qu'Oracle Cloud Native Environment est configuré et en cours d'exécution sur les trois noeuds.
Pour plus d'informations
- Documentation d'Oracle Cloud Native Environment
- 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 de formation gratuit sur le canal Oracle Learning YouTube. En outre, accédez à education.oracle.com/learning-explorer pour devenir explorateur Oracle Learning.
Pour consulter la documentation du produit, consultez Oracle Help Center.
Use Quick Install to Deploy Oracle Cloud Native Environment
F74746-01
December 2022
Copyright © 2022, Oracle and/or its affiliates.