Kubernetes 6

25 flashcards

Какие есть 3 способа для хранения данных?
1. Локально на диске сервера: emptyDir, hostPath 2. Удаленный блочный диск для режима ReadWriteOnce, который маскируется под локальный через протоколы iSCSI или AWS'а/Ceph'а 3. Удаленная файловая система для режима ReadWriteMan через протоколы NFS, SMB, AWS'а
В каком случае Pod'ы с разных нод могут использовать один и тот же том?
Если хранилище это сетевая файловая система
Почему чаще выбирают блочное хранилище для StatefulSet?
Потому что у каждого пода должно быть свое уникальное изолированное состояние
Почему блочные диски работают быстрее для баз данных чем сетевые файловые системы?
Потому что у них отсутствует лишняя сетевая абстракция
Что такое PV kind: PersistentVolume?
Это зарегистрированный в кубере реальный физический или облачный диск
Что такое PVC kind: PersistentVolumeClaim?
Это заявка на получение диска определенного размера, доступа RWO/RWX и типа хранилища StorageClass
Как работает PVC в 6 шагах?
1. Кубер смотрит на требования PVC 2. Идет в облако/СХД через StorageClass 3. Создается нужный диск 4. Кубер регистрирует его как PV 5. Связывает созданный PV с PVC 6. Pod монтирует PVC как локальный том
Как использовать PVC?
Указать его в Pod'е, kubelet смонтирует на этапе создания контейнера
Какие 2 основные политики сохранения данных Reclaim Policy у PV при удалении PersistentVolumeClaim?
1. Политика по умолчанию Delete: кубер стирает PVC и PV из своей базы данных и отправляет запрос на удаление облачного диска, либо освобождение места в СХД 2. Полика Retain: кубер стирает только PVC, а PV переводит в статус Released, оставляя внешний диск нетронутым
Почему нельзя сразу подключить освобожденный PV в другом PVC?
Потому что PV хранит память к какому приложению он принадлежал
Какие 2 вещи можно сделать с освобожденным PV?
1. Утилизировать kubectl delete pv, предварительно сделав backup 2. Подключить к другому PVC
Какой есть способ подключить освобожденный PV в другом PVC?
Стереть поле spec.claimRef в PV, после чего статус PV прейдет с Released в Available
Что происходит с PVC и PV при удалении приложения: kubectl delete -f <app-files> или helm uninstall ?
1. PVC удаляется 2. PV либо удаляется при политике Delete, либо остается при политике Retain
Что происходит с PVC и PV при передеплое приложения: kubectl apply -f <app-files> или helm upgrade?
PVC и PV остаются нетронутыми
Что происходит с PVC и PV при удалении объекта StatefulSet?
PVC и PV остаются нетронутыми
Что делает kubectl cordon node?
Меняет статус ноды на SchedulingDisabled, из-за чего kube-scheduler перестает назначать поды на эту ноду
Какие 2 сценария когда нужно использовать команду kubectl cordon node?
1. Для плановой подготовки ноды к техническу обслуживанию 2. Чтобы изолировать ноду для диагностики
Что происходит с Pod'ами на ноде после выполнения kubectl cordon node?
Они продолжают работать
Как вернуть ноду после kubectl cordon node?
kubectl uncordon node
Что делает kubectl drain node?
Делает kubectl cordon, затем выселяет существующие поды с этой ноды
Какие 3 сценария когда нужно использовать команду kubectl drain node?
1. Перед перезагрузкой ноды 2. Перед обновлением ядра/ОС/компонентов кубера 3. Для декомиссии ноды из кластера
Как вернуть ноду после kubectl drain node?
kubectl uncordon node
Что такое PriorityClass?
Это объект, который определяет важность Pod'а для kube-scheduler
Какие 2 функции выполняет PriorityClass?
1. Помогает kube-scheduler сортировать очереди запуска Pod'ов 2. Помогает вытеснять kube-scheduler'у другие Pod'ы, если высокоприоритетный Pod некуда поставить
В чем разница между PriorityClass и QoS?
PriorityClass про поиск места в кластере и очередность запуска, QoS про спасение ноды от падения при нехватке памяти