K8s Q A: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
(не показаны 34 промежуточные версии этого же участника) | |||
Строка 6: | Строка 6: | ||
+ | =То что стоит прочитать= |
||
− | Вопросы |
||
+ | * [[K8s_Q_A_ Architecture |Architecture]] |
||
− | * Типы сущностей |
||
+ | |||
− | ** [[K8s_Q_A_POD|Pods]] - минимальная сущность (юнит) для развертывания в кластере; [[K8s_Q_A_POD|Подробнее про POD]] |
||
+ | * https://habr.com/ru/companies/gazprombank/articles/788978/ , https://habr.com/ru/companies/gazprombank/articles/789404/ (обсуждаемо - но как базовые знания сойдет) |
||
− | ** [[K8s_Q_A_ReplicaSets|ReplicaSets]] (ранее Replication Controller) - гарантирует, что в определенный момент времени будет запущено нужно кол-во контейнеров; [[K8s_Q_A_ReplicaSets|Подробнее про ReplicaSets]] |
||
+ | |||
− | ** [[K8s_Q_A_Deployments|Deployments]] - обеспечивает декларативные (declarative) обновления для Pods и ReplicaSets; [[K8s_Q_A_ Deployments|Подробнее про Deployments]] |
||
+ | |||
− | ** [[K8s_Q_A_Garbage_Collector|Garbage Collector]] |
||
+ | ==Типы сущностей== |
||
− | ** [[K8s_Q_A_Images|Images]] |
||
+ | * [[K8s_Q_A_Namespaces|Namespaces]] виртуальные кластеры размещенные поверх физического; |
||
− | ** [[K8s_Q_A_Env_Vars|Env Variables]] |
||
+ | * [[K8s_Q_A_POD|Pods]] - минимальная сущность (юнит) для развертывания в кластере; [[K8s_Q_A_POD|Подробнее про POD]] |
||
− | ** [[K8s_Q_A_Labels_And_Selectors|Labels and Selectors]] пары ключ/значение, которые присваиваются объектам (например, подам). С помощью селекторов пользователь может идентифицировать объект |
||
+ | ** Дополнительные контейнеры в POD: https://habr.com/ru/companies/oleg-bunin/articles/761662/ |
||
− | ** [[K8s_Q_A_Namespaces|Namespaces]] виртуальные кластеры размещенные поверх физического; |
||
+ | ** Affinity / Anti-Affinity |
||
− | ** [[K8s_Q_A_StatefulSets|StatefulSets]] - используется для управления приложениями с сохранением состояния; |
||
+ | *** [[K8s_Q_A_Node_Affinity_Taints_Tolerations|Node Affinity, Taints and Tolerations]] |
||
− | ** [[K8s_Q_A_DaemonSet|DaemonSet]] - гарантирует, что определенный под будет запущен на всех (или некоторых) нодах; |
||
+ | * [[K8s_Q_A_ReplicaSets|ReplicaSets]] (ранее Replication Controller) - гарантирует, что в определенный момент времени будет запущено нужно кол-во контейнеров; [[K8s_Q_A_ReplicaSets|Подробнее про ReplicaSets]] |
||
− | ** [[K8s_Q_A_Jobs|Jobs (в том числе CronJob)]] - создает один (или несколько) подов и гарантирует, что после выполнения команды они будут успешно завершены (terminated); |
||
+ | * [[K8s_Q_A_StatefulSets|StatefulSets]] - используется для управления приложениями с сохранением состояния; |
||
− | ** [[K8s_Q_A_Services|Services]] - абстракция, которая определяет логический набор подов и политику доступа к ним; |
||
+ | * [[K8s_Q_A_DaemonSet|DaemonSet]] - гарантирует, что определенный под будет запущен на всех (или некоторых) нодах; |
||
− | ** [[K8s_Q_A_Annotations|Annotations]] - добавление произвольных неидентифицирующих метаданных к объектам; |
||
+ | * [[K8s_Q_A_Deployments|Deployments]] - обеспечивает декларативные (declarative) обновления для Pods и ReplicaSets; [[K8s_Q_A_ Deployments|Подробнее про Deployments]] |
||
− | ** [[K8s_Q_A_ConfigMaps|ConfigMaps]] - позволяет переопределить конфигурацию запускаемых подов; |
||
+ | * [[K8s_Q_A_Images|Images]] |
||
− | ** [[K8s_Q_A_Secrets|Secrets]] - используются для хранения конфиденциальной информации (пароли, токены, ssh-ключи). |
||
+ | * [[K8s_Q_A_Env_Vars|Env Variables]] |
||
− | ** HPA? |
||
+ | |||
+ | * [[K8s_Q_A_Replica_Set_vs_Deployments| Различия в Replication Controller, Replica Set и Deployments]] |
||
+ | |||
+ | ==ConfigMap / Secret== |
||
+ | * [[K8s_Q_A_ConfigMaps|ConfigMaps]] - позволяет переопределить конфигурацию запускаемых подов; |
||
+ | * [[K8s_Q_A_Secrets|Secrets]] - используются для хранения конфиденциальной информации (пароли, токены, ssh-ключи). |
||
+ | |||
+ | |||
+ | ==PodPresets== |
||
+ | * [[K8s_Q_A_PodPresets|PodPresets]] |
||
+ | |||
+ | |||
+ | ==Сборка мусора== |
||
+ | * [[K8s_Q_A_Garbage_Collector|Garbage Collector]] |
||
+ | |||
+ | |||
+ | ==Метки и аннотации== |
||
+ | * [[K8s_Q_A_Labels_And_Selectors|Labels and Selectors]] пары ключ/значение, которые присваиваются объектам (например, подам). С помощью селекторов пользователь может идентифицировать объект |
||
+ | * [[K8s_Q_A_Annotations|Annotations]] - добавление произвольных неидентифицирующих метаданных к объектам; |
||
+ | |||
+ | |||
+ | ==Jobs== |
||
+ | * [[K8s_Q_A_Jobs|Jobs (в том числе CronJob)]] - создает один (или несколько) подов и гарантирует, что после выполнения команды они будут успешно завершены (terminated); |
||
+ | |||
+ | |||
+ | ==Сервисы== |
||
+ | * [[K8s_Q_A_Services|Services]] - абстракция, которая определяет логический набор подов и политику доступа к ним; |
||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==Лимиты== |
||
+ | * [[K8s_Q_A_Memory|Ресурсы в Kubernetes. Memory]] |
||
+ | * [[K8s_Q_A_CPU|Ресурсы в Kubernetes. CPU]] |
||
+ | * Что прочитать еще |
||
+ | ** https://habr.com/ru/companies/flant/articles/459326/ |
||
+ | |||
+ | ==Масштабирование== |
||
+ | * [[K8s_Q_A_Horisontal_Pod_Autoscaler|Horisontal_Pod_Autoscaler]] |
||
+ | * [[K8s_Q_A_Vertical_Pod_Autoscaler|Vertical_Pod_Autoscaler]] |
||
+ | |||
+ | ==Проверки и контрот числа запущенных реплик== |
||
+ | * [[K8s_Q_A_Health_Readiness_Startup_probe|Health_Readiness_Startup_probe]] |
||
+ | * [[K8s_Q_A_PodDisruptionBudget|PodDisruptionBudget]] |
||
+ | |||
+ | ==Операторы== |
||
+ | * https://operatorhub.io Операторы |
||
+ | * https://habr.com/ru/companies/flant/articles/519208/ - Shell operator - обязательно к изучению для того что бы понять как работает оператор (мне нужно повторить) |
||
+ | |||
+ | * [[K8s_Q_A_Shell_Operator|Shell Operator]] |
||
+ | |||
+ | ==CRD== |
||
+ | * ????? |
||
+ | |||
+ | ==Volumes (Storage Class PV and PVC)== |
||
+ | * Про то как устроены Storage Class (eng) |
||
+ | ** https://bluexp.netapp.com/blog/cvo-blg-kubernetes-csi-basics-of-csi-volumes-and-how-to-build-a-csi-driver?hs_amp=true |
||
+ | ** https://www.velotio.com/engineering-blog/kubernetes-csi-in-action-explained-with-features-and-use-cases |
||
+ | |||
+ | * https://habr.com/ru/companies/T1Holding/articles/781368/ (в целом нормально но надо перефразировать своими словами) |
||
+ | * https://habr.com/ru/companies/flant/articles/424211/ |
||
+ | * https://habr.com/ru/companies/slurm/articles/519130/ |
||
+ | |||
+ | ==Разные виды деплоймента== |
||
+ | * A/B, Blue/Green, Canary: https://habr.com/ru/companies/flant/articles/471620/ |
||
+ | * https://habr.com/ru/companies/flant/articles/697030/ |
||
+ | |||
+ | ==Ingress== |
||
+ | * Обзор https://habr.com/ru/companies/flant/articles/447180/ |
||
+ | |||
+ | =Service Mesh= |
||
+ | * Istio |
||
+ | ** https://habr.com/ru/companies/flant/articles/438426/ |
||
+ | ** https://habr.com/ru/companies/oleg-bunin/articles/726958/ |
||
+ | |||
+ | =Traffic Monitoring= |
||
+ | * https://habr.com/ru/companies/flant/articles/704586/ |
||
+ | |||
+ | =Задачи для решения= |
||
# чем деплоймент от даймон сета отличается. для чего обычно юзают даймон сет. |
# чем деплоймент от даймон сета отличается. для чего обычно юзают даймон сет. |
||
# сколько контейнеров может быть в поде. |
# сколько контейнеров может быть в поде. |
||
Строка 35: | Строка 114: | ||
# что такое CRD. как работает. |
# что такое CRD. как работает. |
||
# как из дефолтных сущностей кубов сделать канари деплоймент (10% трафика отрезать в новую версию апки) |
# как из дефолтных сущностей кубов сделать канари деплоймент (10% трафика отрезать в новую версию апки) |
||
+ | ** Частичное решение https://habr.com/ru/companies/flant/articles/471620/ |
||
# Потеряли ССХ ключ от воркер инстанса, а надо туда сходить по ССХ. Но есть админ доступ к кубам. как востановить ССХ доступ к воркеру? |
# Потеряли ССХ ключ от воркер инстанса, а надо туда сходить по ССХ. Но есть админ доступ к кубам. как востановить ССХ доступ к воркеру? |
||
Строка 42: | Строка 122: | ||
# Изоляция по разным группам инстансов (теинт, толерейшен и прочии афинити и антиафинити). Это в принципе общий вопрос. А! и еще ж HPA и какими сторонними сервисами пользовал типа Keda. |
# Изоляция по разным группам инстансов (теинт, толерейшен и прочии афинити и антиафинити). Это в принципе общий вопрос. А! и еще ж HPA и какими сторонними сервисами пользовал типа Keda. |
||
# aws-auth конфигмапа |
# aws-auth конфигмапа |
||
− | |||
− | |||
− | * https://ealebed.github.io/posts/2018/знакомство-с-kubernetes-часть-2-терминология/ |
Текущая версия на 14:05, 29 января 2024
Это сборник заметок, что бы повторять перед собеседованием - собрано из разных мест и скомпановано в удобном для меня виде
То что стоит прочитать
- https://habr.com/ru/companies/gazprombank/articles/788978/ , https://habr.com/ru/companies/gazprombank/articles/789404/ (обсуждаемо - но как базовые знания сойдет)
Типы сущностей
- Namespaces виртуальные кластеры размещенные поверх физического;
- Pods - минимальная сущность (юнит) для развертывания в кластере; Подробнее про POD
- Дополнительные контейнеры в POD: https://habr.com/ru/companies/oleg-bunin/articles/761662/
- Affinity / Anti-Affinity
- ReplicaSets (ранее Replication Controller) - гарантирует, что в определенный момент времени будет запущено нужно кол-во контейнеров; Подробнее про ReplicaSets
- StatefulSets - используется для управления приложениями с сохранением состояния;
- DaemonSet - гарантирует, что определенный под будет запущен на всех (или некоторых) нодах;
- Deployments - обеспечивает декларативные (declarative) обновления для Pods и ReplicaSets; Подробнее про Deployments
- Images
- Env Variables
ConfigMap / Secret
- ConfigMaps - позволяет переопределить конфигурацию запускаемых подов;
- Secrets - используются для хранения конфиденциальной информации (пароли, токены, ssh-ключи).
PodPresets
Сборка мусора
Метки и аннотации
- Labels and Selectors пары ключ/значение, которые присваиваются объектам (например, подам). С помощью селекторов пользователь может идентифицировать объект
- Annotations - добавление произвольных неидентифицирующих метаданных к объектам;
Jobs
- Jobs (в том числе CronJob) - создает один (или несколько) подов и гарантирует, что после выполнения команды они будут успешно завершены (terminated);
Сервисы
- Services - абстракция, которая определяет логический набор подов и политику доступа к ним;
Лимиты
- Ресурсы в Kubernetes. Memory
- Ресурсы в Kubernetes. CPU
- Что прочитать еще
Масштабирование
Проверки и контрот числа запущенных реплик
Операторы
- https://operatorhub.io Операторы
- https://habr.com/ru/companies/flant/articles/519208/ - Shell operator - обязательно к изучению для того что бы понять как работает оператор (мне нужно повторить)
CRD
- ?????
Volumes (Storage Class PV and PVC)
- Про то как устроены Storage Class (eng)
- https://habr.com/ru/companies/T1Holding/articles/781368/ (в целом нормально но надо перефразировать своими словами)
- https://habr.com/ru/companies/flant/articles/424211/
- https://habr.com/ru/companies/slurm/articles/519130/
Разные виды деплоймента
- A/B, Blue/Green, Canary: https://habr.com/ru/companies/flant/articles/471620/
- https://habr.com/ru/companies/flant/articles/697030/
Ingress
Service Mesh
- Istio
Traffic Monitoring
Задачи для решения
- чем деплоймент от даймон сета отличается. для чего обычно юзают даймон сет.
- сколько контейнеров может быть в поде.
- что такое инт контейнер.
- Типы Сервисов
- НодПорт выставляет порт на одной ноде кластера или нет.
- Магия ЛоадБалансер сервиса (Клауд имплементация ЛоадБалансер сервиса).
- разница между лайфнес и рединес пробами.
- нахрена деплоймент создает РепликаСет и чем он отличается от деплоймента.
- Ингресы. как это вообще работает и с какими ингрес контролерами работал.
- что такое CRD. как работает.
- как из дефолтных сущностей кубов сделать канари деплоймент (10% трафика отрезать в новую версию апки)
- Частичное решение https://habr.com/ru/companies/flant/articles/471620/
- Потеряли ССХ ключ от воркер инстанса, а надо туда сходить по ССХ. Но есть админ доступ к кубам. как востановить ССХ доступ к воркеру?
АВС специфичные
- Если пода пойдет в АВС АПИ, то с какими кредами-правами она туда придет. (креды он воркерноды)
- IAM роли для Сервис Аккаунтов. (IRSA)
- Изоляция по разным группам инстансов (теинт, толерейшен и прочии афинити и антиафинити). Это в принципе общий вопрос. А! и еще ж HPA и какими сторонними сервисами пользовал типа Keda.
- aws-auth конфигмапа