Utilisez edgeadm. Dans les déploiements cloud-périphérie, les nœuds de périphérie peuvent passer hors ligne en cas d'instabilité du réseau. Si l'autonomie des nœuds est activée, les charges de travail continuent de s'exécuter, mais vous ne pouvez pas les gérer depuis la console cloud. Utilisez edgeadm pour modifier en urgence les Pods, les ConfigMaps et les Secrets des nœuds de périphérie hors ligne.
Revenir à une image précédente après un déploiement défectueux
Corriger un ConfigMap mal configuré provoquant une interruption de service
Renouveler un Secret expiré ou compromis
Les modifications apportées via edgeadm sont locales au nœud. Lorsque le nœud se reconnecte, l'état côté cloud écrase les modifications locales. Pour des modifications permanentes, mettez à jour le cluster depuis le cloud.
Prérequis
Vérifiez les points suivants :
Un cluster ACK Edge exécutant Kubernetes 1.26 ou une version ultérieure.
Des nœuds de périphérie ajoutés au cluster.
Limitations
edgeadmest réservé à un usage d'urgence, lorsque les nœuds de périphérie sont hors ligne.Seuls trois types de ressources peuvent être modifiés : Pod, ConfigMap et Secret.
Les modifications sont locales au nœud. Par exemple, une modification de ConfigMap n'affecte que ce nœud, et non les autres utilisant le même ConfigMap.
Les modifications ne sont pas synchronisées avec le cloud. Une fois le nœud reconnecté, l'état côté cloud écrase les modifications locales. Pour des modifications permanentes, mettez à jour le cluster depuis le cloud.
Télécharger edgeadm
Téléchargez edgeadm sur le nœud de périphérie :
export REGION="" INTERCONNECT_MODE="" CLUSTER_VERSION=""; export ARCH=$(uname -m | awk '{print ($1 == "x86_64") ? "amd64" : (($1 == "aarch64") ? "arm64" : "amd64")}') INTERNAL=$( [ "$INTERCONNECT_MODE" = "private" ] && echo "-internal" || echo "" ); wget http://aliacs-k8s-${REGION}.oss-${REGION}${INTERNAL}.aliyuncs.com/public/pkg/run/attach/${CLUSTER_VERSION}/${ARCH}/edgeadm -O edgeadm; chmod u+x edgeadm;
Remplacez les paramètres suivants :
| Paramètre | Description | Exemple |
|---|---|---|
CLUSTER_VERSION |
Version du cluster ACK Edge. Consultez les notes de publication pour les versions Kubernetes prises en charge. | 1.26.3-aliyun.1 |
REGION |
ID de région du cluster ACK Edge. Consultez les régions prises en charge. | cn-hangzhou |
INTERCONNECT_MODE |
Type de réseau pour la connexion du nœud : basic (mode Internet) ou private (mode Express Connect).basic (réseau public) ou private (circuits Express Connect). |
basic |
La commande détecte l'architecture du nœud (amd64 pour x86\_64, arm64 pour aarch64) et télécharge le binaire correspondant.
Opérations de maintenance courantes
Identifiez les valeurs suivantes pour vos ressources cibles :
| Variable | Description | Comment l'obtenir |
|---|---|---|
{pod-name} |
Nom du pod à modifier | Exécutez crictl pods sur le nœud |
{namespace} |
Namespace auquel appartient le pod | — |
{pod-id} |
ID du pod | — |
{configmap-name} |
Nom du ConfigMap à modifier | Exécutez ls /etc/kubernetes/cache/kubelet/configmaps.v1.core/{namespace} sur le nœud |
{secret-name} |
Nom du Secret à modifier | Exécutez ls /etc/kubernetes/cache/kubelet/secrets.v1.core/{namespace} sur le nœud |
Modifier un modèle de pod
-
Ouvrez la spécification du pod pour modification :
edgeadm -n {namespace} edit pod {pod-name} Modifiez le modèle de pod, enregistrez et quittez.
-
Le pod redémarre automatiquement. Vérifiez que les modifications ont pris effet :
crictl inspectp {pod-id}
Modifier un ConfigMap
-
Ouvrez le ConfigMap pour modification, en le limitant au pod qui l'utilise :
edgeadm -n {namespace} -p {pod-name} edit configmap {configmap-name} Modifiez le ConfigMap, enregistrez et quittez.
-
Le pod redémarre avec le ConfigMap mis à jour. Pour les autres pods sur le même nœud qui utilisent ce ConfigMap, redémarrez-les manuellement :
crictl stopp {pod-id}Remarquecrictl stopparrête le pod. kubelet le redémarre automatiquement.
Modifier un Secret
-
Ouvrez le Secret pour modification, en le limitant au pod qui l'utilise :
edgeadm -n {namespace} -p {pod-name} edit secret {secret-name} Modifiez le Secret, enregistrez et quittez.
-
Le pod redémarre avec le Secret mis à jour. Pour les autres pods sur le même nœud qui utilisent ce Secret, redémarrez-les manuellement :
crictl stopp {pod-id}Remarquecrictl stopparrête le pod. kubelet le redémarre automatiquement.