kubectl replace -f говорит, что он заменяет ресурс, но на самом деле это не так - PullRequest
0 голосов
/ 26 октября 2019

Я пишу сценарий оболочки, чтобы создать и удалить постоянный том и постоянное требование тома. При этом я должен получить доступ к ресурсу постоянных утверждений тома и удалить ограничение финализатора, используя

kubectl get pvc example-pvc -o yaml > hype.yaml && \
sed -i '/^[^#]*finalizer/c\' hype.yaml && \
sed -i '/^[^#]*pvc-protection/c\' hype.yaml && \
kubectl replace pvc example-pvc -o yaml -f hype.yaml.

Файл hype.yaml больше не несет ограничения,

persistentvolumeclaim/example-pvc replaced

отображается, но сам ресурс, как указано с помощью kubectl edit pvc example-pvc, остается неизменным и, таким образом, отказывается отменять постоянное требование объема.

Есть идеи, почему это так и как это исправить?

По запросу @Kamol Hasan:

$kubectl get pvc 
NAME         STATUS        VOLUME      CAPACITY   ACCESS MODES   STORAGECLASS   AGE
example-pvc   Terminating   example-pv   10Gi       RWX

Вторая запрошенная команда дает очень длинный файл .yaml,но, как я уже сказал, где строки финализатора отсутствуют.

1 Ответ

0 голосов
/ 26 октября 2019

Если ваш PVC подключен к PV, он не прекратит работу, если ваш PV также не будет прерван. Он застрянет в этом окончательном состоянии навсегда. Обновите PV, затем обновите PVC. Вы можете просто поместить PV и PVC в один и тот же yaml и запустить kubectl apply -f.

...