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 про спасение ноды от падения при нехватке памяти