Włączanie czyszczenia węzła w dół
Operator platformy Azure Nexus wprowadza nową funkcję o nazwie node down cleaner, która jest domyślnie wyłączona. Pomaga w przeniesieniu zasobników serwera NFS z węzła, który zakończył się niepowodzeniem do nowego węzła, gdy host bez systemu operacyjnego jest wyłączany za pośrednictwem interfejsu wiersza polecenia az. Poniższa procedura umożliwia czyszczenie węzłów i ma zastosowanie zarówno w środowiskach zielonych, jak i brązowych pól.
Wymagania wstępne
- W tym artykule założono, że zainstalowano interfejs wiersza polecenia platformy Azure i rozszerzenie interfejsu
networkcloud
wiersza polecenia. Aby uzyskać więcej informacji, zobacz How to Install CLI Extensions (Jak zainstalować rozszerzenia interfejsu wiersza polecenia). - Zalogowano się do interfejsu wiersza polecenia platformy Azure przy użyciu odpowiedniej subskrypcji
- Docelowy stan zasilania komputera bez systemu operacyjnego jest włączony i ma wartość readyState ustawioną na true
- Użytkownik musi mieć przypisane odpowiednie uprawnienie do wykonania
networkcloud baremetalmachine run-command
Procedura włączania czyszczenia węzła w klastrze
Procedura musi być uruchamiana względem węzłów zarządzania. Aby określić, które węzły są węzłami zarządzania, możesz uruchomić następujący interfejs wiersza polecenia baremetalmachine run-read-command
platformy Azure.
az networkcloud baremetalmachine run-read-command --name <any-ready-baremetal-machine> \
--commands "[{command:'kubectl get',arguments:[nodes,-l,platform.afo-nc.microsoft.com/role=control-plane]}]" \
--limit-time-seconds 60 \
--resource-group <cluster-managed-resource-group> \
--subscription <subscription>
Uruchom następujące polecenie, aby włączyć czyszczenie węzła w dół
az networkcloud baremetalmachine run-command --bare-metal-machine-name <management-node-baremetal-machine> \
--subscription <subscription> \
--resource-group <cluster-managed-resource-group> \
--limit-time-seconds 60 \
--script "IyEvYmluL2Jhc2gKCmt1YmVjdGwgZ2V0IGRlcGxveW1lbnQgLW4gbmMtc3lzdGVtIG5vZGUtZG93
bi1jbGVhbmVyCgprdWJlY3RsIHNjYWxlIGRlcGxveW1lbnQgLW4gbmMtc3lzdGVtIG5vZGUtZG93
bi1jbGVhbmVyIC0tcmVwbGljYXM9MQoKa3ViZWN0bCBnZXQgZGVwbG95bWVudCAtbiBuYy1zeXN0
ZW0gbm9kZS1kb3duLWNsZWFuZXIKCmt1YmVjdGwgZ2V0IHBvZHMgLW4gbmMtc3lzdGVtIC1sIGFw
cC5rdWJlcm5ldGVzLmlvL25hbWU9bm9kZS1kb3duLWNsZWFuZXIKCg=="
Skrypt wykonuje następujące polecenia kubectl:
kubectl get deployment -n nc-system node-down-cleaner
kubectl scale deployment -n nc-system node-down-cleaner --replicas=1
kubectl get deployment -n nc-system node-down-cleaner
sleep 5s
kubectl get pods -n nc-system -l app.kubernetes.io/name=node-down-cleaner
Po wykonaniu polecenia run-run-baremetalmachine węzeł w dół będzie skalowany do jednej repliki, a jego zasobnik powinien być w stanie uruchomienia. Dane wyjściowe będą wyglądać następująco:
====Action Command Output====
NAME READY UP-TO-DATE AVAILABLE AGE
node-down-cleaner 0/0 0 0 4d9h
deployment.apps/node-down-cleaner scaled
NAME READY UP-TO-DATE AVAILABLE AGE
node-down-cleaner 0/1 1 0 4d9h
NAME READY STATUS RESTARTS AGE
node-down-cleaner-xxxxxxxxxxxxxx 1/1 Running 0 5s