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, la location et les compartiments Oracle Cloud Infrastructure. A la fin de l'exercice, remplacez ces valeurs par des valeurs propres à votre environnement cloud.
Adapter un cluster Kubernetes sur un environnement natif Oracle Cloud
Introduction
Ce tutoriel explique comment redimensionner un cluster Kubernetes existant dans Oracle Cloud Native Environment.
L'augmentation d'un cluster Kubernetes implique l'ajout de noeuds, ainsi que la réduction en enlevant des noeuds. Les noeuds peuvent être des noeuds de plan de contrôle ou de processus actif. Oracle vous recommande de ne pas augmenter ou réduire le cluster simultanément. Effectuez plutôt une augmentation, puis une réduction, dans deux commandes distinctes.
Pour éviter les scénarios split-brain et conserver le quorum, il est recommandé de redimensionner le plan de contrôle de cluster Kubernetes ou les noeuds de processus actif par nombres impairs. Par exemple, 3, 5 ou 7 noeuds de plan de contrôle ou de processus actif garantissent la fiabilité du cluster.
Ce tutoriel utilise un cluster Kubernetes existant hautement disponible exécuté sur Oracle Cloud Native Environment et dispose de trois modules déployés :
- Kubernetes (
kubernetes) - Helm (
helm) - Module Oracle Cloud Infrastructure Cloud Controller Manager (
oci-ccm)
Le déploiement de départ se compose des éléments suivants :
- 1 noeud opérateur
- 3 noeuds de plan de contrôle
- 5 noeuds de processus actif
Il s'appuie sur les exercices :
- Déployer Oracle Cloud Native Environment
- Déployer un équilibreur de charge externe avec Oracle Cloud Native Environment
- Utiliser OCI Cloud Controller Manager sur Oracle Cloud Native Environment
Objectifs
Ce tutoriel/cet atelier explique comment configurer et ajouter deux nouveaux noeuds de plan de contrôle et deux nouveaux noeuds de processus actif au cluster. Le didacticiel montre ensuite comment réduire le cluster en supprimant les mêmes noeuds du cluster.
Dans ce scénario, les certificats d'autorité de certification privés X.509 sont utilisés pour sécuriser la communication entre les noeuds. D'autres méthodes permettent de gérer et de déployer les certificats, par exemple à l'aide du gestionnaire de clés secrètes Vault HashiCorp, ou à l'aide de vos propres certificats, signés par une autorité de certification sécurisée. Ces autres méthodes ne sont pas incluses dans ce tutoriel.
Prérequis
Remarque : si vous utilisez l'environnement d'exercice gratuit, ces prérequis constituent le point de départ.
Outre l'exigence d'un cluster Kubernetes hautement disponible exécuté sur Oracle Cloud Native Environment, les éléments suivants sont nécessaires :
-
4 systèmes Oracle Linux supplémentaires à utiliser en tant que :
- 2 noeuds de plan de contrôle Kubernetes
- 2 noeuds de processus actif Kubernetes
-
Accès à un équilibreur de charge (l'environnement d'atelier gratuit utilise l'équilibreur de charge OCI)
-
Les systèmes doivent comporter :
- au minimum la dernière version d'Oracle Linux 8 (x86_64) installée et exécutant Unbreakable Enterprise Kernel Release 6 (UEK R6).
- a effectué les étapes prérequises pour installer Oracle Cloud Native Environment
Configurer l'environnement des exercices
Remarque : lorsque vous utilisez l'environnement d'atelier gratuit, reportez-vous à Notions de base des laboratoires Oracle Linux pour obtenir des informations sur la connexion et d'autres instructions d'utilisation.
Informations : l'environnement d'atelier gratuit déploie Oracle Cloud Native Environment sur les noeuds fournis, prêts à créer des environnements. Ce déploiement prend environ 20 à 25 minutes après son lancement. Par conséquent, il se peut que vous souhaitiez vous retirer pendant l'exécution, puis revenir à la fin de l'exercice.
Sauf indication contraire, toutes les étapes de l'environnement d'exercice gratuit peuvent être exécutées à partir du noeud ocne-operator et il est recommandé de commencer par ouvrir une fenêtre de terminal et de se connecter au noeud. Dans une installation multinoeud d'Oracle Cloud Native Environment, les commandes kubectl sont exécutées sur l'opérateur, un noeud de plan de contrôle ou un autre système configuré pour kubectl.
-
Ouvrez un terminal et connectez-vous via ssh au système ocne-operator.
ssh oracle@<ip_address_of_ol_node>
Installer le module Kubernetes
Important Toutes les opérations, sauf indication contraire, sont exécutées à partir du noeud ocne-operator.
L'environnement d'atelier gratuit crée une installation Oracle Cloud Native Environment hautement disponible au cours du déploiement, y compris la préparation de la configuration de l'environnement et du module.
-
Affichez le fichier
myenvironment.yaml.cat ~/myenvironment.yamlDans le cadre des exercices pratiques gratuits, le déploiement utilise trois noeuds de plan de contrôle et cinq noeuds de processus actif lors de la création du cluster.
Exemple de sortie :
[oracle@ocne-operator ~]$ cat ~/myenvironment.yaml environments: - environment-name: myenvironment globals: api-server: 127.0.0.1:8091 secret-manager-type: file olcne-ca-path: /etc/olcne/configs/certificates/production/ca.cert olcne-node-cert-path: /etc/olcne/configs/certificates/production/node.cert olcne-node-key-path: /etc/olcne/configs/certificates/production/node.key modules: - module: kubernetes name: mycluster args: container-registry: container-registry.oracle.com/olcne load-balancer: 10.0.0.168:6443 master-nodes: - ocne-control01.lv.vcnf998d566.oraclevcn.com:8090 - ocne-control02.lv.vcnf998d566.oraclevcn.com:8090 - ocne-control03.lv.vcnf998d566.oraclevcn.com:8090 worker-nodes: - ocne-worker01.lv.vcnf998d566.oraclevcn.com:8090 - ocne-worker02.lv.vcnf998d566.oraclevcn.com:8090 - ocne-worker03.lv.vcnf998d566.oraclevcn.com:8090 - ocne-worker04.lv.vcnf998d566.oraclevcn.com:8090 - ocne-worker05.lv.vcnf998d566.oraclevcn.com:8090 selinux: enforcing restrict-service-externalip: true restrict-service-externalip-ca-cert: /etc/olcne/configs/certificates/restrict_external_ip/production/ca.cert restrict-service-externalip-tls-cert: /etc/olcne/configs/certificates/restrict_external_ip/production/node.cert restrict-service-externalip-tls-key: /etc/olcne/configs/certificates/restrict_external_ip/production/node.key - module: helm name: myhelm args: helm-kubernetes-module: mycluster - module: oci-ccm name: myoci oci-ccm-helm-module: myhelm oci-use-instance-principals: true oci-compartment: ocid1.compartment.oc1..aaaaaaaau2g2k23u6mp3t43ky3i4ky7jpyeiqcdcobpbcb7z6vjjlrdnuufq oci-vcn: ocid1.vcn.oc1.eu-frankfurt-1.amaaaaaaw6qx2pia2xkfmnnknpk3jll6emb76gtcza3ttbqqofxmwjb45rka oci-lb-subnet1: ocid1.subnet.oc1.eu-frankfurt-1.aaaaaaaawfjs5zrb6wdmg43522a4l5aak5zr6vvkaaa6xogttha2ufsip7fqLa partie domaine du nom de domaine qualifié complet des noeuds sera unique à chaque déploiement de l'environnement d'exercice gratuit.
-
Installer le module Kubernetes.
olcnectl module install --config-file myenvironment.yamlRemarque : le déploiement de Kubernetes sur les noeuds prend entre 20 et 25 minutes.
Exemple de sortie :
[oracle@ocne-operator ~]$ olcnectl module install --config-file myenvironment.yaml Modules installed successfully. Modules installed successfully. Modules installed successfully.Pourquoi trois réponses Modules installés avec succès ? Eh bien, cela est dû au fait que le fichier
myenvironment.yamlutilisé dans cet exemple définit trois modules distincts :- module: kubernetes- module: helm- module: oci-ccm
Il est important de comprendre cela, car plus tard dans ces étapes, certaines réponses seront également renvoyées trois fois - une fois pour chaque module défini dans le fichier
myenvironment.yaml. -
Vérifiez 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 myhelm helm installed myoci oci-ccm installed ocne-control01.lv.vcnf998d566.oraclevcn.com:8090 node installed ocne-control02.lv.vcnf998d566.oraclevcn.com:8090 node installed ocne-control03.lv.vcnf998d566.oraclevcn.com:8090 node installed ocne-worker01.lv.vcnf998d566.oraclevcn.com:8090 node installed ocne-worker02.lv.vcnf998d566.oraclevcn.com:8090 node installed ocne-worker03.lv.vcnf998d566.oraclevcn.com:8090 node installed ocne-worker04.lv.vcnf998d566.oraclevcn.com:8090 node installed ocne-worker05.lv.vcnf998d566.oraclevcn.com:8090 node installed
Configurer kubectl
-
Configurez la commande
kubectl.-
Copiez le fichier de configuration à partir de l'un des noeuds du plan de contrôle.
mkdir -p $HOME/.kube ssh -o StrictHostKeyChecking=no 10.0.0.150 "sudo cat /etc/kubernetes/admin.conf" > $HOME/.kube/configExemple de sortie :
[oracle@ocne-operator ~]$ mkdir -p $HOME/.kube [oracle@ocne-operator ~]$ ssh -o StrictHostKeyChecking=no 10.0.0.150 "sudo cat /etc/kubernetes/admin.conf" > $HOME/.kube/config Warning: Permanently added '10.0.0.150' (ECDSA) to the list of known hosts. -
Exportez la configuration en vue d'une utilisation par la commande
kubectl.sudo chown $(id -u):$(id -g) $HOME/.kube/config export KUBECONFIG=$HOME/.kube/config echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc
-
-
Vérifiez que
kubectlfonctionne.kubectl get nodesExemple de sortie :
[oracle@ocne-operator ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ocne-control01 Ready control-plane,master 17m v1.23.7+1.el8 ocne-control02 Ready control-plane,master 16m v1.23.7+1.el8 ocne-control03 Ready control-plane,master 15m v1.23.7+1.el8 ocne-worker01 Ready <none> 16m v1.23.7+1.el8 ocne-worker02 Ready <none> 15m v1.23.7+1.el8 ocne-worker03 Ready <none> 14m v1.23.7+1.el8 ocne-worker04 Ready <none> 15m v1.23.7+1.el8 ocne-worker05 Ready <none> 15m v1.23.7+1.el8 [oracle@ocne-operator ~]$
Confirmation que le module Oracle Cloud Infrastructure Cloud Controller Manager est prêt
Avant de continuer, il est important d'attendre que le module Oracle Cloud Infrastructure Cloud Controller Manager établisse la communication avec l'API OCI. Le module Oracle Cloud Infrastructure Cloud Controller Manager exécute un pod sur chaque noeud qui gère des fonctionnalités telles que l'attachement du stockage de blocs. Une fois installé, ce contrôleur empêche toute programmation de pods tant que ce pod dédié ne confirme pas son initialisation, son exécution et sa communication avec l'API OCI. Tant que cette communication n'est pas établie, toute tentative de poursuite risque d'empêcher Kubernetes de réussir à utiliser le stockage cloud ou les équilibreurs de charge.
-
Extrayez le statut des pods
oci-cloud-controller-managerdu composant.kubectl -n kube-system get pods -l component=oci-cloud-controller-managerExemple de sortie :
[[oracle@ocne-operator ~]$ kubectl -n kube-system get pods -l component=oci-cloud-controller-manager NAME READY STATUS RESTARTS AGE oci-cloud-controller-manager-9d9gh 1/1 Running 1 (48m ago) 50m oci-cloud-controller-manager-jqzs6 1/1 Running 0 50m oci-cloud-controller-manager-xfm9w 1/1 Running 0 50m -
Extrayez le statut des pods du rôle
csi-oci.kubectl -n kube-system get pods -l role=csi-ociExemple de sortie :
[[oracle@ocne-operator ~]$ kubectl -n kube-system get pods -l role=csi-oci NAME READY STATUS RESTARTS AGE csi-oci-controller-7fcbddd746-2hb5c 4/4 Running 2 (50m ago) 51m csi-oci-node-7jd6t 3/3 Running 0 51m csi-oci-node-fc5x5 3/3 Running 0 51m csi-oci-node-jq8sm 3/3 Running 0 51m csi-oci-node-jqkvl 3/3 Running 0 51m csi-oci-node-jwq8g 3/3 Running 0 51m csi-oci-node-jzxqt 3/3 Running 0 51m csi-oci-node-rmmmb 3/3 Running 0 51m csi-oci-node-zc287 1/3 Running 0 51m
Remarque : attendez que ces deux commandes indiquent à
STATUSla valeurRunningavant de continuer.
Si les valeurs figurant sous la colonneREADYn'affichent pas tous les conteneurs comme démarrés et que celles figurant sous la colonneSTATUSn'affichent pasRunningau bout de 15 minutes, redémarrez l'exercice.
(Facultatif) Configuration des nouveaux noeuds Kubernetes
Remarque : les étapes de cette section ne sont pas requises dans l'environnement d'exercice gratuit car elles ont déjà été effectuées lors du déploiement initial de l'exercice. Passez à la section suivante et continuez à partir de là.
Lors de l'augmentation (ajout de noeuds), tous les nouveaux noeuds nécessitent que tous les prérequis répertoriés dans la section Prerequisites de ce tutoriel soient respectés.
Dans ce tutoriel/atelier, les noeuds ocne-control04 et ocne-control05 sont les nouveaux noeuds de plan de contrôle, tandis que les noeuds ocne-worker06 et ocne-worker07 sont les nouveaux noeuds de processus actif. Outre les prérequis, ces nouveaux noeuds nécessitent l'installation et l'activation de l'agent de plate-forme Oracle Cloud Native Environment.
-
Installez et activez l'agent de plate-forme.
sudo dnf install olcne-agent olcne-utils sudo systemctl enable olcne-agent.service -
Si vous utilisez un serveur proxy, configurez-le avec CRI-O. Sur chaque noeud Kubernetes, créez un répertoire de configuration CRI-O systemd. Créez un fichier nommé
proxy.confdans le répertoire et ajoutez les informations du serveur proxy.sudo mkdir /etc/systemd/system/crio.service.d sudo vi /etc/systemd/system/crio.service.d/proxy.conf -
Remplacez les valeurs de proxy appropriées pour ceux de l'environnement à l'aide de l'exemple de fichier
proxy.conf:[Service] Environment="HTTP_PROXY=proxy.example.com:80" Environment="HTTPS_PROXY=proxy.example.com:80" Environment="NO_PROXY=.example.com,192.0.2.*" -
Si le service
dockeroucontainerdest en cours d'exécution, arrêtez-le et désactivez-le.sudo systemctl disable --now docker.service sudo systemctl disable --now containerd.service
Configurer des certificats d'autorité de certification privés X.509
Configurez des certificats d'autorité de certification privée X.509 pour les nouveaux noeuds de plan de contrôle et les noeuds de processus actif.
-
Créez une liste de noeuds.
VAR1=$(hostname -d) for NODE in 'ocne-control04' 'ocne-control05' 'ocne-worker06' 'ocne-worker07'; do VAR2+="${NODE}.$VAR1,"; done VAR2=${VAR2%,}Le script bash fourni extrait le nom de domaine du noeud opérateur et crée une liste séparée par des virgules des noeuds à ajouter au cluster lors de la procédure d'augmentation.
-
Générez une autorité de certification privée et un ensemble de certificats pour les nouveaux noeuds.
Utilisez l'option
--byo-ca-certpour spécifier l'emplacement du certificat CA existant et l'option--byo-ca-keypour spécifier l'emplacement de la clé CA existante. Utilisez l'option--nodeset fournissez le nom de domaine qualifié complet du nouveau plan de contrôle et des noeuds de processus actif.cd /etc/olcne sudo ./gen-certs-helper.sh \ --cert-dir /etc/olcne/configs/certificates/ \ --byo-ca-cert /etc/olcne/configs/certificates/production/ca.cert \ --byo-ca-key /etc/olcne/configs/certificates/production/ca.key \ --nodes $VAR2Exemple de sortie :
[oracle@ocne-operator ~]$ cd /etc/olcne [oracle@ocne-operator olcne]$ sudo ./gen-certs-helper.sh \ > --cert-dir /etc/olcne/configs/certificates/ \ > --byo-ca-cert /etc/olcne/configs/certificates/production/ca.cert \ > --byo-ca-key /etc/olcne/configs/certificates/production/ca.key \ > --nodes $VAR2 [INFO] Generating certs for ocne-control04.lv.vcnf998d566.oraclevcn.com Generating RSA private key, 2048 bit long modulus (2 primes) .............................+++++ ....................+++++ e is 65537 (0x010001) Signature ok subject=C = US, ST = North Carolina, L = Whynot, O = your-company, OU = private cloud, CN = example.com Getting CA Private Key [INFO] Generating certs for ocne-control05.lv.vcnf998d566.oraclevcn.com Generating RSA private key, 2048 bit long modulus (2 primes) ...+++++ ...........................................................+++++ e is 65537 (0x010001) Signature ok subject=C = US, ST = North Carolina, L = Whynot, O = your-company, OU = private cloud, CN = example.com Getting CA Private Key [INFO] Generating certs for ocne-worker06.lv.vcnf998d566.oraclevcn.com Generating RSA private key, 2048 bit long modulus (2 primes) ......+++++ .......................+++++ e is 65537 (0x010001) Signature ok subject=C = US, ST = North Carolina, L = Whynot, O = your-company, OU = private cloud, CN = example.com Getting CA Private Key [INFO] Generating certs for ocne-worker07.lv.vcnf998d566.oraclevcn.com Generating RSA private key, 2048 bit long modulus (2 primes) ....................................................................................+++++ .................................+++++ e is 65537 (0x010001) Signature ok subject=C = US, ST = North Carolina, L = Whynot, O = your-company, OU = private cloud, CN = example.com Getting CA Private Key ----------------------------------------------------------- Script To Transfer Certs: /etc/olcne/configs/certificates/olcne-tranfer-certs.sh ----------------------------------------------------------- [SUCCESS] Generated certs and file transfer script! [INFO] CA Cert: /etc/olcne/configs/certificates/production/ca.key [INFO] CA Key: /etc/olcne/configs/certificates/production/ca.cert [WARNING] The CA Key is the only way to generate more certificates, ensure it is stored in long term storage [USER STEP #1] Please ensure you have ssh access from this machine to: ocne-control04.lv.vcnf998d566.oraclevcn.com,ocne-control05.lv.vcnf998d566.oraclevcn.com,ocne-worker06.lv.vcnf998d566.oraclevcn.com,ocne-worker07.lv.vcnf998d566.oraclevcn.com
Certificats de transfert
Transférez les certificats nouvellement créés à partir du noeud opérateur vers tous les nouveaux noeuds.
-
Mettez à jour les détails de l'utilisateur dans le script de transfert fourni.
sudo sed -i 's/USER=opc/USER=oracle/g' configs/certificates/olcne-tranfer-certs.shRemarque : le tutoriel requiert cette étape car l'utilisateur par défaut du script est
opc. Dans la mesure où ce tutoriel et l'environnement d'exercice gratuit installent le produit à l'aide de l'utilisateuroracle, mettez à jour la variableUSERdans le script en conséquence. -
Mettez à jour les droits d'accès pour chaque node.key généré par le script de création de certificat.
sudo chmod 644 /etc/olcne/configs/certificates/tmp-olcne/ocne-control*/node.key sudo chmod 644 /etc/olcne/configs/certificates/tmp-olcne/ocne-operator*/node.key sudo chmod 644 /etc/olcne/configs/certificates/tmp-olcne/ocne-worker*/node.key -
Transférez les certificats à chacun des nouveaux noeuds.
Remarque Cette étape nécessite la configuration de SSH sans mot de passe entre les noeuds. Cette configuration n'est pas traitée dans ce didacticiel, mais elle est préconfigurée dans l'environnement d'exercice gratuit.
bash -ex /etc/olcne/configs/certificates/olcne-tranfer-certs.sh
Configuration de l'agent de plate-forme pour qu'il utilise les certificats
Configurez l'agent de plate-forme sur chaque nouveau noeud pour utiliser les certificats copiés à l'étape précédente. Cette tâche est effectuée à partir du noeud opérateur en exécutant la commande sur ssh.
-
Configurez le noeud ocne-control04.
ssh -o StrictHostKeyChecking=no ocne-control04 '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-operator olcne]$ ssh -o StrictHostKeyChecking=no ocne-control04 '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' Warning: Permanently added 'ocne-control04,10.0.0.153' (ECDSA) to the list of known hosts. ��� 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 Tue 2022-08-30 15:29:37 GMT; 2s ago Main PID: 152809 (olcne-agent) Tasks: 8 (limit: 202294) Memory: 11.1M CGroup: /system.slice/olcne-agent.service ������152809 /usr/libexec/olcne-agent --secret-manager-type file --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key Aug 30 15:29:37 ocne-control04 systemd[1]: Started Agent for Oracle Linux Cloud Native Environments. Aug 30 15:29:37 ocne-control04 olcne-agent[152809]: time=30/08/22 15:29:37 level=info msg=Started server on[::]:8090 -
Configurez le noeud ocne-control05.
ssh -o StrictHostKeyChecking=no ocne-control05 '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-operator olcne]$ ssh -o StrictHostKeyChecking=no ocne-control05 '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' Warning: Permanently added 'ocne-control05,10.0.0.154' (ECDSA) to the list of known hosts. ��� 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 Tue 2022-08-30 15:34:13 GMT; 2s ago Main PID: 153413 (olcne-agent) Tasks: 7 (limit: 202294) Memory: 9.1M CGroup: /system.slice/olcne-agent.service ������153413 /usr/libexec/olcne-agent --secret-manager-type file --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key Aug 30 15:34:13 ocne-control05 systemd[1]: olcne-agent.service: Succeeded. Aug 30 15:34:13 ocne-control05 systemd[1]: Stopped Agent for Oracle Linux Cloud Native Environments. Aug 30 15:34:13 ocne-control05 systemd[1]: Started Agent for Oracle Linux Cloud Native Environments. Aug 30 15:34:13 ocne-control05 olcne-agent[153413]: time=30/08/22 15:34:13 level=info msg=Started server on[::]:8090 -
Configurez le noeud ocne-worker06.
ssh -o StrictHostKeyChecking=no ocne-worker06 '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-operator olcne]$ ssh -o StrictHostKeyChecking=no ocne-worker06 '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' Warning: Permanently added 'ocne-worker06,10.0.0.165' (ECDSA) to the list of known hosts. ��� 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 Tue 2022-08-30 15:41:08 GMT; 2s ago Main PID: 153988 (olcne-agent) Tasks: 8 (limit: 202294) Memory: 5.2M CGroup: /system.slice/olcne-agent.service ������153988 /usr/libexec/olcne-agent --secret-manager-type file --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key Aug 30 15:41:08 ocne-worker06 systemd[1]: Started Agent for Oracle Linux Cloud Native Environments. Aug 30 15:41:08 ocne-worker06 olcne-agent[153988]: time=30/08/22 15:41:08 level=info msg=Started server on[::]:8090 -
Configurez le noeud ocne-worker07.
ssh -o StrictHostKeyChecking=no ocne-worker07 '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-operator olcne]$ ssh -o StrictHostKeyChecking=no ocne-worker07 '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' Warning: Permanently added 'ocne-worker07,10.0.0.166' (ECDSA) to the list of known hosts. ��� 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 Tue 2022-08-30 15:43:23 GMT; 2s ago Main PID: 154734 (olcne-agent) Tasks: 8 (limit: 202294) Memory: 9.1M CGroup: /system.slice/olcne-agent.service ������154734 /usr/libexec/olcne-agent --secret-manager-type file --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key Aug 30 15:43:23 ocne-worker07 systemd[1]: olcne-agent.service: Succeeded. Aug 30 15:43:23 ocne-worker07 systemd[1]: Stopped Agent for Oracle Linux Cloud Native Environments. Aug 30 15:43:23 ocne-worker07 systemd[1]: Started Agent for Oracle Linux Cloud Native Environments. Aug 30 15:43:23 ocne-worker07 olcne-agent[154734]: time=30/08/22 15:43:23 level=info msg=Started server on[::]:8090
Accès à l'équilibreur de charge OCI et visualisation des back-ends
Etant donné que la définition de plusieurs noeuds pour le plan de contrôle Kubernetes nécessite un équilibreur de charge, il est intéressant de connaître la configuration automatique lors du déploiement de l'environnement d'atelier gratuit. Les trois noeuds déployés et configurés sont affichés lorsque l'exercice est créé avec le statut Healthy et les deux noeuds ajoutés aux étapes à venir avec le statut Critical.
-
Passer du terminal au bureau Luna
-
Ouvrez la page de détails du Luna Lab à l'aide de l'icône Luna Lab.
-
Cliquez sur le lien Console OCI.

-
La page de connexion à la console Oracle Cloud s'affiche.

-
Entrez
User NameetPassword(situés dans l'onglet Luna Lab de la section Informations d'identification).
-
Cliquez sur le menu latéral (en haut à gauche), puis sur Fonctions de réseau et Equilibreurs de charge.

-
La page Equilibreurs de charge apparaît.

-
Localisez le compartiment utilisé dans la liste déroulante.

-
Cliquez sur l'équilibreur de charge répertorié dans la table (ocne-load-balancer).

-
Faites défiler la page vers le bas et cliquez sur le lien vers Ensembles de back-ends (sur le côté gauche de la section Ressources).

-
La table Ensembles de back-ends apparaît. Cliquez sur le lien ocne-lb-backend-set dans la colonne Nom.

-
Cliquez sur le lien vers les back-ends (à gauche dans la section Ressources).

-
Les back-ends représentant les noeuds de plan de contrôle sont affichés.
Remarque : deux des noeuds back-end présentent l'état Critique - échec de la connexion car ces noeuds ne font pas encore partie du cluster de plan de contrôle Kubernetes. Gardez cet onglet de navigateur ouvert, car nous vérifierons à nouveau le statut des noeuds back-end une fois les étapes de redimensionnement terminées.

Affichage des noeuds Kubernetes
Vérifiez les noeuds Kubernetes actuellement disponibles dans le cluster. Il existe trois noeuds de plan de contrôle et cinq noeuds de processus actif.
-
Vérifiez que tous les noeuds ont le statut READY.
kubectl get nodesExemple de sortie :
[oracle@ocne-operator olcne]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ocne-control01 Ready control-plane,master 5h15m v1.23.7+1.el8 ocne-control02 Ready control-plane,master 5h14m v1.23.7+1.el8 ocne-control03 Ready control-plane,master 5h13m v1.23.7+1.el8 ocne-worker01 Ready <none> 5h14m v1.23.7+1.el8 ocne-worker02 Ready <none> 5h13m v1.23.7+1.el8 ocne-worker03 Ready <none> 5h12m v1.23.7+1.el8 ocne-worker04 Ready <none> 5h13m v1.23.7+1.el8 ocne-worker05 Ready <none> 5h14m v1.23.7+1.el8
Ajouter un plan de contrôle et des noeuds de processus actif au fichier de configuration de déploiement
Ajoutez le nom de domaine qualifié complet et le port d'accès de l'agent de plate-forme (8090) à tous les noeuds de plan de contrôle et de processus actif à ajouter au cluster.
Modifiez le fichier de configuration du déploiement YAML pour inclure les nouveaux noeuds de cluster. Ajoutez les noeuds de plan de contrôle sous la section master-nodes tout en ajoutant les noeuds de processus actif à la section worker-node.
Le nom du fichier de configuration dans ce tutoriel est myenvironment.yaml et inclut actuellement trois plans de contrôle et cinq noeuds de processus actif.
-
Vérifiez que l'environnement actuel utilise trois noeuds de plan de contrôle et cinq noeuds de processus actif.
cat ~/myenvironment.yamlExemple de sortie :
... master-nodes: - ocne-control01.lv.vcneea798df.oraclevcn.com:8090 - ocne-control02.lv.vcneea798df.oraclevcn.com:8090 - ocne-control03.lv.vcneea798df.oraclevcn.com:8090 worker-nodes: - ocne-worker01.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker02.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker03.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker04.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker05.lv.vcneea798df.oraclevcn.com:8090 ... -
Ajoutez le nouveau plan de contrôle et les noeuds de processus actif au fichier
myenvironment.yaml.cd ~ sed -i '19 i \ - ocne-control04.'"$(hostname -d)"':8090' ~/myenvironment.yaml sed -i '20 i \ - ocne-control05.'"$(hostname -d)"':8090' ~/myenvironment.yaml sed -i '27 i \ - ocne-worker06.'"$(hostname -d)"':8090' ~/myenvironment.yaml sed -i '28 i \ - ocne-worker07.'"$(hostname -d)"':8090' ~/myenvironment.yaml -
Vérifiez que le plan de contrôle et les noeuds de processus actif ont été ajoutés au fichier
myenvironment.yaml.cat ~/myenvironment.yamlExemple d'extrait :
... master-nodes: - ocne-control01.lv.vcneea798df.oraclevcn.com:8090 - ocne-control02.lv.vcneea798df.oraclevcn.com:8090 - ocne-control03.lv.vcneea798df.oraclevcn.com:8090 - ocne-control04.lv.vcneea798df.oraclevcn.com:8090 - ocne-control05.lv.vcneea798df.oraclevcn.com:8090 worker-nodes: - ocne-worker01.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker02.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker03.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker04.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker05.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker06.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker07.lv.vcneea798df.oraclevcn.com:8090 ...
Le fichier de configuration inclut désormais les nouveaux noeuds de plan de contrôle (ocne-control04 et ocne-control05) et les nouveaux noeuds de processus actif (ocne-worker06 et ocne-worker07). Cela représente tous les noeuds de processus actif et de plan de contrôle qui doivent se trouver dans le cluster une fois l'augmentation terminée.
Augmenter le plan de contrôle et les noeuds de processus actif
-
Exécutez la commande module update.
Utilisez la commande
olcnectl module updateavec l'option--config-filepour indiquer l'emplacement du fichier de configuration. Le serveur d'API de plate-forme valide le fichier de configuration avec l'état du cluster et reconnaît que d'autres noeuds doivent être ajoutés au cluster. A l'invite, répondezy.Remarque : il y aura un délai entre les invites dans la fenêtre de terminal lors de la mise à jour de chacun des modules. Dans l'environnement d'exercice gratuit, ce délai peut aller jusqu'à 10-15 minutes.
olcnectl module update --config-file myenvironment.yamlExemple de sortie :
[oracle@ocne-operator ~]$ olcnectl module update --config-file myenvironment.yaml ? [WARNING] Update will shift your workload and some pods will lose data if they rely on local storage. Do you want to continue? Yes Taking backup of modules before update Backup of modules succeeded. Updating modules Update successful ? [WARNING] Update will shift your workload and some pods will lose data if they rely on local storage. Do you want to continue? Yes Taking backup of modules before update Backup of modules succeeded. Updating modules Update successful ? [WARNING] Update will shift your workload and some pods will lose data if they rely on local storage. Do you want to continue? Yes Taking backup of modules before update Backup of modules succeeded. Updating modules Update successful -
(Dans la console cloud), vérifiez que l'ensemble de back-ends de l'équilibreur de charge affiche cinq noeuds de back-end en bon état.

-
Vérifiez que le nouveau plan de contrôle et les noeuds de processus actif ont été ajoutés au cluster.
kubectl get nodesExemple de sortie :
[oracle@ocne-operator ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ocne-control01 Ready control-plane,master 99m v1.23.7+1.el8 ocne-control02 Ready control-plane,master 97m v1.23.7+1.el8 ocne-control03 Ready control-plane,master 96m v1.23.7+1.el8 ocne-control04 Ready control-plane,master 13m v1.23.7+1.el8 ocne-control05 Ready control-plane,master 12m v1.23.7+1.el8 ocne-worker01 Ready <none> 99m v1.23.7+1.el8 ocne-worker02 Ready <none> 98m v1.23.7+1.el8 ocne-worker03 Ready <none> 98m v1.23.7+1.el8 ocne-worker04 Ready <none> 98m v1.23.7+1.el8 ocne-worker05 Ready <none> 98m v1.23.7+1.el8 ocne-worker06 Ready <none> 13m v1.23.7+1.el8 ocne-worker07 Ready <none> 13m v1.23.7+1.el8Les nouveaux noeuds de plan de contrôle (
ocne-control04etocne-control05) et les nouveaux noeuds de processus actif (ocne-work06etocne-worker07) sont désormais inclus dans le cluster. Ainsi, l'opération d'augmentation a fonctionné.
Réduction des noeuds de plan de contrôle
Pour démontrer que le plan de contrôle et les noeuds de processus actif peuvent évoluer indépendamment, il suffit de réduire (supprimer) les noeuds de plan de contrôle au cours de cette étape.
-
Vérifiez que l'environnement actuel utilise cinq noeuds de plan de contrôle et sept noeuds de processus actif.
cat ~/myenvironment.yamlExemple de sortie :
... master-nodes: - ocne-control01.lv.vcneea798df.oraclevcn.com:8090 - ocne-control02.lv.vcneea798df.oraclevcn.com:8090 - ocne-control03.lv.vcneea798df.oraclevcn.com:8090 - ocne-control04.lv.vcneea798df.oraclevcn.com:8090 - ocne-control05.lv.vcneea798df.oraclevcn.com:8090 worker-nodes: - ocne-worker01.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker02.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker03.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker04.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker05.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker06.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker07.lv.vcneea798df.oraclevcn.com:8090 ... -
Pour réduire le cluster aux trois plans de contrôle d'origine, enlevez les noeuds de plan de contrôle
ocne-control04etocne-control05du fichier de configuration.sed -i '19d;20d' ~/myenvironment.yaml -
Vérifiez que le fichier de configuration ne contient plus que trois noeuds de plan de contrôle et les sept noeuds de processus actif.
cat ~/myenvironment.yamlExemple d'extrait :
... master-nodes: - ocne-control01.lv.vcneea798df.oraclevcn.com:8090 - ocne-control02.lv.vcneea798df.oraclevcn.com:8090 - ocne-control03.lv.vcneea798df.oraclevcn.com:8090 worker-nodes: - ocne-worker01.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker02.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker03.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker04.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker05.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker06.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker07.lv.vcneea798df.oraclevcn.com:8090 ... -
Supprimez le message d'avertissement de mise à jour du module.
Il est possible d'éviter et de supprimer l'invite de confirmation lors de la mise à jour du module en ajoutant la directive
force: trueau fichier de configuration. Cettedirectivedoit être placée immédiatement sous la directivename: <xxxx>pour chaque module défini.cd ~ sed -i '12 i \ force: true' ~/myenvironment.yaml sed -i '35 i \ force: true' ~/myenvironment.yaml sed -i '40 i \ force: true' ~/myenvironment.yaml -
Vérifiez que le fichier de configuration contient désormais la directive
force: true.cat ~/myenvironment.yamlExemple d'extrait :
[oracle@ocne-operator ~]$ cat ~/myenvironment.yaml environments: - environment-name: myenvironment globals: api-server: 127.0.0.1:8091 secret-manager-type: file olcne-ca-path: /etc/olcne/configs/certificates/production/ca.cert olcne-node-cert-path: /etc/olcne/configs/certificates/production/node.cert olcne-node-key-path: /etc/olcne/configs/certificates/production/node.key modules: - module: kubernetes name: mycluster force: true args: container-registry: container-registry.oracle.com/olcne load-balancer: 10.0.0.18:6443 master-nodes: - ocne-control01.lv.vcn1174e41d.oraclevcn.com:8090 - ocne-control02.lv.vcn1174e41d.oraclevcn.com:8090 - ocne-control03.lv.vcn1174e41d.oraclevcn.com:8090 worker-nodes: - ocne-worker01.lv.vcn1174e41d.oraclevcn.com:8090 - ocne-worker02.lv.vcn1174e41d.oraclevcn.com:8090 - ocne-worker03.lv.vcn1174e41d.oraclevcn.com:8090 - ocne-worker04.lv.vcn1174e41d.oraclevcn.com:8090 - ocne-worker05.lv.vcn1174e41d.oraclevcn.com:8090 - ocne-worker06.lv.vcneea798df.oraclevcn.com:8090 - ocne-worker07.lv.vcneea798df.oraclevcn.com:8090 selinux: enforcing restrict-service-externalip: true restrict-service-externalip-ca-cert: /etc/olcne/configs/certificates/restrict_external_ip/production/ca.cert restrict-service-externalip-tls-cert: /etc/olcne/configs/certificates/restrict_external_ip/production/node.cert restrict-service-externalip-tls-key: /etc/olcne/configs/certificates/restrict_external_ip/production/node.key - module: helm name: myhelm force: true args: helm-kubernetes-module: mycluster - module: oci-ccm name: myoci force: true oci-ccm-helm-module: myhelm oci-use-instance-principals: true oci-compartment: ocid1.compartment.oc1..aaaaaaaanr6cysadeswwxc7sczdsrlamzhfh6scdyvuh4s4fmvecob6e2cha oci-vcn: ocid1.vcn.oc1.eu-frankfurt-1.amaaaaaag7acy3iat3duvrym376oax7nxdyqd56mqxtjaws47t4g7vqthgja oci-lb-subnet1: ocid1.subnet.oc1.eu-frankfurt-1.aaaaaaaa6rt6chugbkfhyjyl4exznpxrlvnus2bgkzcgm7fljfkqbxkva6ya -
Exécutez la commande pour mettre à jour le cluster et supprimer les noeuds.
Remarque : cette opération peut prendre quelques minutes.
olcnectl module update --config-file myenvironment.yamlExemple de sortie :
[oracle@ocne-operator ~]$ olcnectl module update --config-file myenvironment.yaml Taking backup of modules before update Backup of modules succeeded. Updating modules Update successful Taking backup of modules before update Backup of modules succeeded. Updating modules Update successful Taking backup of modules before update Backup of modules succeeded. Updating modules Update successful -
(Dans la console cloud), vérifiez que l'ensemble de back-ends de l'équilibreur de charge affiche trois noeuds en bon état (
Health = 'OK') et deux noeuds en mauvais état (Health = 'Critical - Connection failed'). La raison pour laquelle deux noeuds présentent un statut critique est qu'ils ont été enlevés du cluster Kubernetes.
-
Afficher les noeuds de plan de contrôle supprimés du cluster par le serveur d'API de plate-forme. Vérifiez que les noeuds de plan de contrôle (
ocne-control04etocne-control05) ont été enlevés.kubectl get nodesExemple de sortie :
[oracle@ocne-operator ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ocne-control01 Ready control-plane,master 164m v1.23.7+1.el8 ocne-control02 Ready control-plane,master 163m v1.23.7+1.el8 ocne-control03 Ready control-plane,master 162m v1.23.7+1.el8 ocne-worker01 Ready <none> 164m v1.23.7+1.el8 ocne-worker02 Ready <none> 163m v1.23.7+1.el8 ocne-worker03 Ready <none> 164m v1.23.7+1.el8 ocne-worker04 Ready <none> 164m v1.23.7+1.el8 ocne-worker05 Ready <none> 164m v1.23.7+1.el8 ocne-worker06 Ready <none> 13m v1.23.7+1.el8 ocne-worker07 Ready <none> 13m v1.23.7+1.el8
Synthèse
Ceci met fin à la démonstration expliquant comment ajouter, puis enlever, des noeuds Kubernetes dans le cluster. Bien que cet exercice ait démontré la mise à jour simultanée des noeuds de plan de contrôle et de processus actif, il n'existe pas l'approche recommandée pour l'augmentation ou la réduction d'un cluster Kubernetes Oracle Cloud Native Environment et, dans un environnement de production, elle serait probablement entreprise séparément.
Pour plus d'informations
- Documentation de l'environnement natif Oracle Cloud
- Niveau Oracle Cloud Native Environment
- Station de formation 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.
Scale a Kubernetes Cluster on Oracle Cloud Native Environment
F30806-12
September 2022
Copyright © 2022, Oracle and/or its affiliates.