CSN-opslagpodcontainer vastgelopen in ContainerCreating
In dit document wordt de gebruikerservaring van een zeldzaam probleem beschreven dat CSN-opslagpods in ContainerCreating
de status kan weergeven. Het biedt ook een tijdelijke oplossing om het probleem op te lossen.
Oorzaak
Een runtime-upgrade vervangt het besturingssysteem van de Baremetal-knooppunten, waarmee het IQN (iSCSI Qualified Name) opnieuw wordt gemaakt en in zeldzame gevallen iscsi-aanmeldingsfouten kunnen veroorzaken. De iscsi-fout treedt op op bepaalde knooppunten waar aanmelding bij portals niet lukt. Deze handleiding biedt een oplossing voor dit specifieke probleem.
In de handleiding wordt kort het proces beschreven voor het verwijderen van volumebijlage en het opnieuw opstarten van de pod om het probleem op te lossen.
Proces
Controleer waarom de pod in ContainerCreating
de status blijft:
Warning FailedMapVolume 52s (x19 over 23m) kubelet MapVolume.SetUpDevice failed for volume "pvc-b38dcc54-5e57-435a-88a0-f91eac594e18" : rpc error: code = Internal desc = required at least 2 portals but found 0 portals
Hier richten we ons alleen op baremetal_machine
waar het probleem zich heeft voorgedaan.
Voer de volgende run-opdracht uit om het probleem op te lossen van pods die vastzitten in containerCreating
az networkcloud baremetalmachine run-command --bare-metal-machine-name <control-plane-baremetal-machine> \
--subscription <subscription> \
--resource-group <cluster-managed-resource-group> \
--limit-time-seconds 60 \
--script "cG9kcz0kKGt1YmVjdGwgZ2V0IHBvZHMgLW4gbmMtc3lzdGVtIHxncmVwIC1pIGNvbnRhaW5lcmNyZWF0aW5nIHwgYXdrICd7cHJpbnQgJDF9JykKCmZvciBwb2RuYW1lIGluICRwb2RzOyBkbwogICAga3ViZWN0bCBkZXNjcmliZSBwbyAkcG9kbmFtZSAtbiBuYy1zeXN0ZW0KCiAgICBwdmNuYW1lPSQoa3ViZWN0bCBnZXQgcG8gJHBvZG5hbWUgLW4gbmMtc3lzdGVtIC1vIGpzb24gfCBqcSAtciAnLnNwZWMudm9sdW1lc1swXS5wZXJzaXN0ZW50Vm9sdW1lQ2xhaW0uY2xhaW1OYW1lJykKCiAgICBwdm5hbWU9JChrdWJlY3RsIGdldCBwdmMgJHB2Y25hbWUgLW4gbmMtc3lzdGVtIC1vIGpzb24gfCBqcSAtciAnLnNwZWMudm9sdW1lTmFtZScpCgogICAgbm9kZW5hbWU9JChrdWJlY3RsIGdldCBwbyAkcG9kbmFtZSAtbiBuYy1zeXN0ZW0gLW9qc29uIHwganEgLXIgJy5zcGVjLm5vZGVOYW1lJykKCiAgICB2b2xhdHRhY2hOYW1lPSQoa3ViZWN0bCBnZXQgdm9sdW1lYXR0YWNobWVudCB8IGdyZXAgLWkgJHB2bmFtZSB8IGF3ayAne3ByaW50ICQxfScpCgogICAga3ViZWN0bCBkZWxldGUgdm9sdW1lYXR0YWNobWVudCAkdm9sYXR0YWNoTmFtZQoKICAgIGt1YmVjdGwgY29yZG9uICRub2RlbmFtZSAtbiBuYy1zeXN0ZW07a3ViZWN0bCBkZWxldGUgcG8gLW4gbmMtc3lzdGVtICRwb2RuYW1lCmRvbmU="
Met de run-opdracht wordt het volgende script uitgevoerd.
pods=$(kubectl get pods -n nc-system |grep -i containercreating | awk '{print $1}')
for podname in $pods; do
kubectl describe po $podname -n nc-system
pvcname=$(kubectl get po $podname -n nc-system -o json | jq -r '.spec.volumes[0].persistentVolumeClaim.claimName')
pvname=$(kubectl get pvc $pvcname -n nc-system -o json | jq -r '.spec.volumeName')
nodename=$(kubectl get po $podname -n nc-system -ojson | jq -r '.spec.nodeName')
volattachName=$(kubectl get volumeattachment | grep -i $pvname | awk '{print $1}')
kubectl delete volumeattachment $volattachName
kubectl cordon $nodename -n nc-system;kubectl delete po -n nc-system $podname
done
De opdracht haalt het pvc op uit de pod en verwijdert vervolgens het volumeattachment
object. Vervolgens wordt de pod verwijderd. De pod wordt later opnieuw gemaakt op een ander knooppunt, samen met een geslaagd volumebijlageobject.
Neem contact op met ondersteuning als u nog steeds vragen hebt. Zie Azure-ondersteuningsplannen voor meer informatie over ondersteuningsplannen.