Contenu

Introduction

Conditions préalables

Conditions requises

Composants utilisés

Informations générales

Qu'est-ce que SMI ?

Qu'est-ce que SMI-BM ou CNDP ?

Qu'est-ce que SMI Cluster Manager ?

Qu'est-ce que SMI Cluster Deployer ?

Problème

Procédure de maintenance

Introduction

Ce document décrit la procédure à suivre pour effectuer la maintenance (remplacement ou maintenance du matériel) telle que la mise à niveau du micrologiciel (FW), etc., dans le pool de périphériques (POD) Cloud Native Deployment Platform (CNDP) de l'infrastructure de microservices des abonnés 5G.

Conditions préalables

Conditions requises

Cisco vous recommande de prendre connaissance des rubriques suivantes :

- SMI Cisco

- Architecture 5G CNDPA ou SMI-Bare-Metal (BM)

- Dockers et kubernetts

- Serveurs de la gamme Cisco UCS C220

Composants utilisés

Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :

- SMI 2020.02.2.35

- Kubernetes v1.21.0

- Cisco UCS C220-M5SX-CM

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.

Informations générales

Qu'est-ce que SMI ?

Cisco SMI est une pile multicouche de technologies et de normes cloud qui permettent d'utiliser des applications de microservices à partir des unités commerciales Cisco Mobility, Cable et BNG, toutes dotées de fonctions de gestion des abonnés similaires et de spécifications de data store similaires.

Attributs :

- Pile cloud de couche (technologies et normes) pour fournir des déploiements de haut en bas et prendre en charge l'infrastructure cloud actuelle du client.

- Environnement d'exécution commun partagé par toutes les applications pour les fonctions non applicatives (stockage de données, déploiement, configuration, télémétrie, alarme). Cela garantit une interaction et une expérience cohérentes pour tous les points de contact et points d'intégration du client.

- Les applications et l'environnement d'exécution commun sont déployés dans des conteneurs de microservices et connectés à un maillage de service intelligent.

- API exposée pour le déploiement, la configuration et la gestion, pour permettre l'automatisation.

Qu'est-ce que SMI-BM ou CNDP ?

Cisco SMI-Bare Metal ou CNDP est une plate-forme sans système d'exploitation qui fournit l'infrastructure nécessaire au déploiement de fonctions de réseau virtuel (VNF) et de fonctions natives du cloud (CNF), qui permet aux unités commerciales Cisco Mobility, Cable et BNG de fonctionner.

Attributs :

- Métal nu qui élimine les frais généraux associés à VIM

- Performances améliorées

- Plus de coeurs pour les applications

- Exécution plus rapide des applications

- Workflow de déploiement automatisé ; intégré au PCP NSO

- Pile gérée pour déployer les NF 5G Cisco

- Guide de commande et de déploiement simplifié

Qu'est-ce que SMI Cluster Manager ?

Un gestionnaire de cluster est un cluster à 2 noeuds conservés utilisé comme point initial pour le déploiement du plan de contrôle et du cluster de plan d'utilisateur. Il exécute un cluster de kubernetes à noeud unique et un ensemble de POD qui sont responsables de l'ensemble de la configuration du cluster. Seul le gestionnaire de cluster principal est actif et le gestionnaire secondaire ne prend le relais qu'en cas de panne ou de panne manuelle pour maintenance.

Qu'est-ce que SMI Cluster Deployer ?

SMI Deployer est un service dans Cluster Manager qui peut créer des machines virtuelles, personnaliser le système d'exploitation hôte, créer un cluster K8s, lancer K8s Master, configurer le cluster et lancer des applications, etc.

Problème

La maintenance du matériel, telle qu'une panne matérielle ou une mise à niveau logicielle/logicielle, etc., nécessite des temps d'arrêt sur les serveurs. Quelle procédure doit être suivie pour la maintenance à effectuer dans le POD ? Comment arrêter les services avec grâce pour éviter les temps d'arrêt indésirables dans l'application.

Procédure de maintenance

Obtenez le VIP du gestionnaire de cluster, le VIP maître de Kubernetes (pour l'application concernée), l'IP UCS CIMC, le nom CIMC UCS et le nom d'hôte du serveur (nom d'hôte du système d'exploitation) dans lequel la maintenance doit être effectuée.

La connexion au maître de kubernetes correspond au service et vérifiez que tous les POD sont en état d'exécution.

Exemple de sortie :

cloud-user@pod-name-smf-data-master-1:~$ kubectl get pods -A | grep -v Running

NAMESPACE NAME READY STATUS RESTARTS AGE

2. Connectez-vous au gestionnaire de cluster et accédez au centre d'opérations du déploiement de cluster SMI (voici la procédure pour trouver l'IP du centre d'opérations).

kubectl get svc -n $(kubectl get ns | grep -i smi-cm | awk '{print $1}') | grep ^ops-center

(Here "smi-cm" is the namespace in which cluster deployer is hosted and the "ops-center" is the starting name of the cluster deployer service name which is "ops-center-smi-cluster-deployer" these names can vary based on the environment setup)

Exemple de sortie :

cloud-user@tp-tam-deployer-cm-primary:~$ kubectl get svc -n $(kubectl get ns | grep smi-cm | awk '{print $1}') | grep ^ops-center

ops-center-smi-cluster-deployer ClusterIP 10.100.x.x <none> 8008/TCP,2024/TCP,2022/TCP,7681/TCP,3000/TCP,3001/TCP 154d

3. Connectez-vous à l'aide de cette commande.

ssh -p 2024 admin@10.100.x.x

(2024 is the port used to connect to cluster deployer)

4. Vérifiez que les services correspondent à l'application à l'aide de la commande show clusters.

Exemple de sortie :

Welcome to the Cisco SMI Cluster Deployer on tp-tam-deployer-cm-primary

Copyright © 2016-2020, Cisco Systems, Inc.

All rights reserved.

admin connected from 192.x.x.x using ssh on ops-center-smi-cluster-deployer-5cdc5f94db-bnxqt

[tp-tam-deployer-cm-primary] SMI Cluster Deployer# show clusters

LOCK TO

NAME VERSION

----------------------------

pod-name-smf-data -

pod-name-smf-ims -

pod1-name-smf-data -

pod1-name-smf-ims -

pod2-name-aio-1 -

pod2-name-aio-2 -

pod2-name-upf-data -

pod2-name-upf-ims -

5. Drainez le noeud dans lequel vous effectuez la maintenance à l'aide de ces commandes et tapez Oui (cela évacuera les POD avec grâce et redémarrera dans d'autres noeuds si nécessaire).

Exemple de sortie :

[cluster-name-cm-1] SMI Cluster Deployer# clusters cluster-name  nodes worker-11 actions sync drain remove-node true

This will run drain on the node, disrupting pods running on the node. Are you sure? [no,yes] yes

message accepted

6. Déplacez le noeud en mode maintenance à l'aide de ces commandes (cette opération peut prendre jusqu'à 30 minutes).

Exemple de sortie :

[cluster-name-cm-1] SMI Cluster Deployer# config

Entering configuration mode terminal

[cluster-name-cm-1] SMI Cluster Deployer(config)# clusters cluster-name

[cluster-name-cm-1] SMI Cluster Deployer(config-clusters-cluster-name)# nodes worker-11

[cluster-name-cm-1] SMI Cluster Deployer(config-nodes-worker1)# maintenance true

[cluster-name-cm-1] SMI Cluster Deployer(config-nodes-worker1)# commit

Commit complete.

[cluster-name-cm-1] SMI Cluster Deployer(config-nodes-worker1)# end

7. Vérifiez l'état des journaux.

clusters cluster-name nodes worker-11 actions sync logs

(In this we are dealing with the worker-11 node)

Exemple de sortie (tronquée) :

logs 2022-01-03 06:04:02.755 DEBUG cluster_sync.cluster-name.worker-11: Cluster name: cluster-name

2022-01-03 06:04:02.755 DEBUG cluster_sync.cluster-name.worker-11: Node name: worker-11

2022-01-03 06:04:02.755 DEBUG cluster_sync.cluster-name.worker-11: debug: false

2022-01-03 06:04:02.755 DEBUG cluster_sync.cluster-name.worker-11: remove_node: false

PLAY [Check required variables] ************************************************

TASK [Gathering Facts] *********************************************************

Monday 03 January 2022  06:04:06 +0000 (0:00:00.014)       0:00:00.014 ********

ok: [worker-11]

ok: [worker-13]

ok: [worker-11]

ok: [worker-16]

ok: [worker-18]

ok: [worker-17]

ok: [worker-12]

ok: [worker-10]

ok: [worker-19]

ok: [worker-2]

ok: [master-1]

ok: [worker-11]

ok: [worker-15]

ok: [master-3]

ok: [worker-20]

ok: [worker-22]

ok: [worker-21]

....

TASK [Check node_name] *********************************************************

Monday 03 January 2022  06:04:13 +0000 (0:00:07.086)       0:00:07.101 ********

skipping: [master-1]

skipping: [master-2]

skipping: [master-3]

skipping: [worker-1]

skipping: [worker-10]

skipping: [worker-11]

skipping: [worker-12]

skipping: [worker-13]

skipping: [worker-11]

skipping: [worker-15]

skipping: [worker-16]

skipping: [worker-17]

skipping: [worker-18]

skipping: [worker-19]

skipping: [worker-2]

skipping: [worker-20]

skipping: [worker-21]

skipping: [worker-22]

.....

PLAY [Wait for ready and ensure uncordoned] ************************************

TASK [Cordon and drain node] ***************************************************

Monday 03 January 2022  06:04:15 +0000 (0:00:01.116)       0:00:08.217 ********

skipping: [master-1]

skipping: [master-2]

skipping: [master-3]

skipping: [worker-11]

skipping: [worker-10]

skipping: [worker-12]

skipping: [worker-13]

skipping: [worker-1]

skipping: [worker-15]

skipping: [worker-16]

skipping: [worker-17]

skipping: [worker-18]

skipping: [worker-19]

skipping: [worker-2]

skipping: [worker-20]

skipping: [worker-21]

skipping: [worker-22]

.....

TASK [upgrade/cordon : Cordon/Drain/Delete node] *******************************

Monday 03 January 2022  06:04:16 +0000 (0:00:01.430)       0:00:09.647 ********

changed: [worker-11 -> 10.192.x.x]

PLAY RECAP *********************************************************************

master-1                   : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

master-2                   : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

master-3                   : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

worker-11                   : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

worker-10                  : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

worker-11                  : ok=2    changed=1    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0

worker-12                  : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

worker-13                  : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

worker-1                  : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

worker-15                  : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

worker-16                  : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

worker-17                  : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

worker-18                  : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

worker-19                  : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

worker-2                   : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

worker-20                  : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

worker-21                  : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

worker-22                  : ok=1    changed=0    unreachable=0    failed=0    skipped=2    rescued=0    ignored=0

.....

Monday 03 January 2022  06:04:17 +0000 (0:00:01.168)       0:00:10.815 ********

===============================================================================

2022-01-03 06:04:17.957 DEBUG cluster_sync.cluster-name.worker-11: Cluster sync successful

2022-01-03 06:04:17.958 DEBUG cluster_sync.cluster-name.worker-11: Ansible sync done

2022-01-03 06:04:17.961 INFO cluster_sync.cluster-name.worker-11: _sync finished.  Opening lock

8. Vérifiez le noeud maître de kubernetes et assurez-vous que l'état du noeud de travail a changé.

Exemple de sortie :

cloud-user@cluster-name-master-1:~$ kubectl get nodes

NAME                 STATUS                     ROLES                  AGE    VERSION

cluster-name-master-1    Ready                      control-plane,master   213d   v1.21.0

cluster-name-master-2    Ready                      control-plane,master   213d   v1.21.0

cluster-name-master-3    Ready                      control-plane,master   213d   v1.21.0

cluster-name-worker-11    Ready                      <none>                 213d   v1.21.0

cluster-name-worker-10   Ready                      <none>                 213d   v1.21.0

cluster-name-worker-11   Ready,SchedulingDisabled

213d

v1.21.0

cluster-name-worker-12   Ready                      <none>                 213d   v1.21.0

cluster-name-worker-13   Ready                      <none>                 213d   v1.21.0

cluster-name-worker-11   Ready                      <none>                 213d   v1.21.0

9. À cette étape, le noeud doit être prêt pour la maintenance (tous les POD d'application doivent avoir été expulsés, à l'exception des pods gérés par le démon/réplicaset, etc., qui peuvent être ignorés).

10. Arrêtez le serveur à partir de Cisco Integrated Management Console (CIMC) ou de toute console de gestion équivalente si le serveur appartient à un autre fournisseur et effectuez la maintenance du matériel.

Lorsque le serveur est de nouveau en ligne après la maintenance et que tous les contrôles d'intégrité sont verts, procédez comme suit.

11. Définissez le noeud de travail sur Maintenance = “ False ” à ajouter à nouveau et exécutez une synchronisation.

Exemple de sortie :

[cluster-name-cm-1] SMI Cluster Deployer# config

Entering configuration mode terminal

[cluster-name-cm-1] SMI Cluster Deployer(config)# clusters cluster-name

[cluster-name-cm-1] SMI Cluster Deployer(config-clusters-cluster-name)# nodes worker-11

[cluster-name-cm-1] SMI Cluster Deployer(config-nodes-worker1)# maintenance false

[cluster-name-cm-1] SMI Cluster Deployer(config-nodes-worker1)# commit

Commit complete.

[cluster-name-cm-1] SMI Cluster Deployer(config-nodes-worker1)# end

12. Exécutez la synchronisation de cluster pour rétablir le noeud lors de la rotation et prêt à servir.

Exemple de sortie (tronquée) :

[cluster-name-cm-1] SMI Cluster Deployer# clusters cluster-name nodes worker-11 actions sync run debug true

This will run sync. Are you sure? [no,yes] yes

message accepted

PLAY [Wait for ready and ensure uncordoned] ************************************

TASK [Wait for ready and ensure uncordoned] ************************************

Monday 03 January 2022  07:12:35 +0000 (0:00:01.151)       0:09:42.974 ********

skipping: [master-1] => (item=upgrade/wait-for-cluster-ready)

skipping: [master-1] => (item=upgrade/uncordon)

skipping: [master-2] => (item=upgrade/wait-for-cluster-ready)

skipping: [master-2] => (item=upgrade/uncordon)

skipping: [master-3] => (item=upgrade/wait-for-cluster-ready)

skipping: [master-3] => (item=upgrade/uncordon)

skipping: [worker-11] => (item=upgrade/wait-for-cluster-ready)

skipping: [worker-11] => (item=upgrade/uncordon)

skipping: [worker-10] => (item=upgrade/wait-for-cluster-ready)

skipping: [worker-10] => (item=upgrade/uncordon)

skipping: [worker-12] => (item=upgrade/wait-for-cluster-ready)

skipping: [worker-12] => (item=upgrade/uncordon)

skipping: [worker-13] => (item=upgrade/wait-for-cluster-ready)

skipping: [worker-13] => (item=upgrade/uncordon)

skipping: [worker-1] => (item=upgrade/wait-for-cluster-ready)

skipping: [worker-1] => (item=upgrade/uncordon)

......

skipping: [worker-3] => (item=upgrade/wait-for-cluster-ready)

skipping: [worker-3] => (item=upgrade/uncordon)

skipping: [worker-4] => (item=upgrade/wait-for-cluster-ready)

skipping: [worker-4] => (item=upgrade/uncordon)

skipping: [worker-5] => (item=upgrade/wait-for-cluster-ready)

skipping: [worker-5] => (item=upgrade/uncordon)

skipping: [worker-6] => (item=upgrade/wait-for-cluster-ready)

skipping: [worker-6] => (item=upgrade/uncordon)

skipping: [worker-7] => (item=upgrade/wait-for-cluster-ready)

skipping: [worker-7] => (item=upgrade/uncordon)

skipping: [worker-8] => (item=upgrade/wait-for-cluster-ready)

skipping: [worker-8] => (item=upgrade/uncordon)

skipping: [worker-9] => (item=upgrade/wait-for-cluster-ready)

skipping: [worker-9] => (item=upgrade/uncordon)

TASK [upgrade/uncordon : Restore cordoned node] ********************************

Monday 03 January 2022  07:12:37 +0000 (0:00:01.539)       0:09:44.513 ********

changed: [worker-11 -> 10.192.x.x]

PLAY RECAP *********************************************************************

master-1                   : ok=38   changed=4    unreachable=0    failed=0    skipped=73   rescued=0    ignored=0

master-2                   : ok=35   changed=3    unreachable=0    failed=0    skipped=73   rescued=0    ignored=0

master-3                   : ok=35   changed=3    unreachable=0    failed=0    skipped=73   rescued=0    ignored=0

worker-1                  : ok=64   changed=3    unreachable=0    failed=0    skipped=83   rescued=0    ignored=0

worker-10                  : ok=63   changed=3    unreachable=0    failed=0    skipped=83   rescued=0    ignored=0

worker-11                  : ok=218  changed=30   unreachable=0    failed=0    skipped=306  rescued=0    ignored=0

worker-12                  : ok=63   changed=3    unreachable=0    failed=0    skipped=83   rescued=0    ignored=0

worker-13                  : ok=63   changed=3    unreachable=0    failed=0    skipped=83   rescued=0    ignored=0

worker-11                  : ok=63   changed=3    unreachable=0    failed=0    skipped=83   rescued=0    ignored=0

........

worker-3                   : ok=63   changed=3    unreachable=0    failed=0    skipped=83   rescued=0    ignored=0

worker-4                   : ok=63   changed=3    unreachable=0    failed=0    skipped=83   rescued=0    ignored=0

worker-5                   : ok=63   changed=3    unreachable=0    failed=0    skipped=83   rescued=0    ignored=0

worker-6                   : ok=63   changed=3    unreachable=0    failed=0    skipped=83   rescued=0    ignored=0

worker-7                   : ok=63   changed=3    unreachable=0    failed=0    skipped=83   rescued=0    ignored=0

worker-8                   : ok=63   changed=3    unreachable=0    failed=0    skipped=83   rescued=0    ignored=0

worker-9                   : ok=63   changed=3    unreachable=0    failed=0    skipped=83   rescued=0    ignored=0

Monday 03 January 2022  07:12:38 +0000 (0:00:00.967)       0:09:45.481 ********

===============================================================================

2022-01-03 07:12:38.854 DEBUG cluster_sync.cluster-name.worker-11: Cluster sync successful

2022-01-03 07:12:38.858 DEBUG cluster_sync.cluster-name.worker-11: Ansible sync done

2022-01-03 07:12:38.860 INFO cluster_sync.cluster-name.worker-11: _sync finished.  Opening lock

13. Vérifiez l'état du cluster. Le nombre de pods désiré doit correspondre au nombre prêt.

[cluster-name-cm-1] SMI Cluster Deployer# clusters cluster-name actions k8s cluster-status

pods-desired-count 678

pods-ready-count 678

pods-desired-are-ready true

etcd-healthy true

all-ok true