K8s Q A: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
 
(не показано 30 промежуточных версий этого же участника)
Строка 6: Строка 6:
   
   
  +
=То что стоит прочитать=
Вопросы
 
  +
* [[K8s_Q_A_ Architecture |Architecture]]
* Типы сущностей
 
** [[K8s_Q_A_POD|Pods]] - минимальная сущность (юнит) для развертывания в кластере; [[K8s_Q_A_POD|Подробнее про POD]]
 
** [[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_Env_Vars|Env Variables]]
 
** [[K8s_Q_A_Labels_And_Selectors|Labels and Selectors]] пары ключ/значение, которые присваиваются объектам (например, подам). С помощью селекторов пользователь может идентифицировать объект
 
** [[K8s_Q_A_Namespaces|Namespaces]] виртуальные кластеры размещенные поверх физического;
 
** [[K8s_Q_A_StatefulSets|StatefulSets]] - используется для управления приложениями с сохранением состояния;
 
** [[K8s_Q_A_DaemonSet|DaemonSet]] - гарантирует, что определенный под будет запущен на всех (или некоторых) нодах;
 
** [[K8s_Q_A_Jobs|Jobs (в том числе CronJob)]] - создает один (или несколько) подов и гарантирует, что после выполнения команды они будут успешно завершены (terminated);
 
** [[K8s_Q_A_Services|Services]] - абстракция, которая определяет логический набор подов и политику доступа к ним;
 
** [[K8s_Q_A_Annotations|Annotations]] - добавление произвольных неидентифицирующих метаданных к объектам;
 
** [[K8s_Q_A_ConfigMaps|ConfigMaps]] - позволяет переопределить конфигурацию запускаемых подов;
 
** [[K8s_Q_A_Secrets|Secrets]] - используются для хранения конфиденциальной информации (пароли, токены, ssh-ключи).
 
** [[K8s_Q_A_Replica_Set_vs_Deployments| Различия в Replication Controller, Replica Set и Deployments]]
 
** [[K8s_Q_A_PodPresets|PodPresets]]
 
** [[K8s_Q_A_Horisontal_Pod_Autoscaler|Horisontal_Pod_Autoscaler]]
 
   
  +
* https://habr.com/ru/companies/gazprombank/articles/788978/ , https://habr.com/ru/companies/gazprombank/articles/789404/ (обсуждаемо - но как базовые знания сойдет)
** [[K8s_Q_A_Memory|Ресурсы в Kubernetes. Memory]]
 
  +
** [[K8s_Q_A_CPU|Ресурсы в Kubernetes. CPU]]
 
  +
  +
==Типы сущностей==
  +
* [[K8s_Q_A_Namespaces|Namespaces]] виртуальные кластеры размещенные поверх физического;
  +
* [[K8s_Q_A_POD|Pods]] - минимальная сущность (юнит) для развертывания в кластере; [[K8s_Q_A_POD|Подробнее про POD]]
  +
** Дополнительные контейнеры в POD: https://habr.com/ru/companies/oleg-bunin/articles/761662/
  +
** Affinity / Anti-Affinity
  +
*** [[K8s_Q_A_Node_Affinity_Taints_Tolerations|Node Affinity, Taints and Tolerations]]
  +
* [[K8s_Q_A_ReplicaSets|ReplicaSets]] (ранее Replication Controller) - гарантирует, что в определенный момент времени будет запущено нужно кол-во контейнеров; [[K8s_Q_A_ReplicaSets|Подробнее про ReplicaSets]]
  +
* [[K8s_Q_A_StatefulSets|StatefulSets]] - используется для управления приложениями с сохранением состояния;
  +
* [[K8s_Q_A_DaemonSet|DaemonSet]] - гарантирует, что определенный под будет запущен на всех (или некоторых) нодах;
  +
* [[K8s_Q_A_Deployments|Deployments]] - обеспечивает декларативные (declarative) обновления для Pods и ReplicaSets; [[K8s_Q_A_ Deployments|Подробнее про Deployments]]
  +
* [[K8s_Q_A_Images|Images]]
  +
* [[K8s_Q_A_Env_Vars|Env Variables]]
  +
  +
* [[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/
  +
  +
=Задачи для решения=
 
# чем деплоймент от даймон сета отличается. для чего обычно юзают даймон сет.
 
# чем деплоймент от даймон сета отличается. для чего обычно юзают даймон сет.
 
# сколько контейнеров может быть в поде.
 
# сколько контейнеров может быть в поде.
Строка 40: Строка 114:
 
# что такое CRD. как работает.
 
# что такое CRD. как работает.
 
# как из дефолтных сущностей кубов сделать канари деплоймент (10% трафика отрезать в новую версию апки)
 
# как из дефолтных сущностей кубов сделать канари деплоймент (10% трафика отрезать в новую версию апки)
  +
** Частичное решение https://habr.com/ru/companies/flant/articles/471620/
 
# Потеряли ССХ ключ от воркер инстанса, а надо туда сходить по ССХ. Но есть админ доступ к кубам. как востановить ССХ доступ к воркеру?
 
# Потеряли ССХ ключ от воркер инстанса, а надо туда сходить по ССХ. Но есть админ доступ к кубам. как востановить ССХ доступ к воркеру?
   
Строка 47: Строка 122:
 
# Изоляция по разным группам инстансов (теинт, толерейшен и прочии афинити и антиафинити). Это в принципе общий вопрос. А! и еще ж HPA и какими сторонними сервисами пользовал типа Keda.
 
# Изоляция по разным группам инстансов (теинт, толерейшен и прочии афинити и антиафинити). Это в принципе общий вопрос. А! и еще ж HPA и какими сторонними сервисами пользовал типа Keda.
 
# aws-auth конфигмапа
 
# aws-auth конфигмапа
 
 
* https://ealebed.github.io/posts/2018/знакомство-с-kubernetes-часть-2-терминология/
 

Текущая версия на 15:05, 29 января 2024


Это сборник заметок, что бы повторять перед собеседованием - собрано из разных мест и скомпановано в удобном для меня виде


То что стоит прочитать


Типы сущностей

ConfigMap / Secret

  • ConfigMaps - позволяет переопределить конфигурацию запускаемых подов;
  • Secrets - используются для хранения конфиденциальной информации (пароли, токены, ssh-ключи).


PodPresets


Сборка мусора


Метки и аннотации

  • Labels and Selectors пары ключ/значение, которые присваиваются объектам (например, подам). С помощью селекторов пользователь может идентифицировать объект
  • Annotations - добавление произвольных неидентифицирующих метаданных к объектам;


Jobs

  • Jobs (в том числе CronJob) - создает один (или несколько) подов и гарантирует, что после выполнения команды они будут успешно завершены (terminated);


Сервисы

  • Services - абстракция, которая определяет логический набор подов и политику доступа к ним;



Лимиты

Масштабирование

Проверки и контрот числа запущенных реплик

Операторы

CRD

  • ?????

Volumes (Storage Class PV and PVC)

Разные виды деплоймента

Ingress

Service Mesh

Traffic Monitoring

Задачи для решения

  1. чем деплоймент от даймон сета отличается. для чего обычно юзают даймон сет.
  2. сколько контейнеров может быть в поде.
  3. что такое инт контейнер.
  4. Типы Сервисов
  5. НодПорт выставляет порт на одной ноде кластера или нет.
  6. Магия ЛоадБалансер сервиса (Клауд имплементация ЛоадБалансер сервиса).
  7. разница между лайфнес и рединес пробами.
  8. нахрена деплоймент создает РепликаСет и чем он отличается от деплоймента.
  9. Ингресы. как это вообще работает и с какими ингрес контролерами работал.
  10. что такое CRD. как работает.
  11. как из дефолтных сущностей кубов сделать канари деплоймент (10% трафика отрезать в новую версию апки)
  1. Потеряли ССХ ключ от воркер инстанса, а надо туда сходить по ССХ. Но есть админ доступ к кубам. как востановить ССХ доступ к воркеру?

АВС специфичные

  1. Если пода пойдет в АВС АПИ, то с какими кредами-правами она туда придет. (креды он воркерноды)
  2. IAM роли для Сервис Аккаунтов. (IRSA)
  3. Изоляция по разным группам инстансов (теинт, толерейшен и прочии афинити и антиафинити). Это в принципе общий вопрос. А! и еще ж HPA и какими сторонними сервисами пользовал типа Keda.
  4. aws-auth конфигмапа