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

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
 
(не показана 41 промежуточная версия этого же участника)
Строка 1: Строка 1:
 
[[Категория:K8s]]
 
[[Категория:K8s]]
 
[[Категория:K8s_Вопросы_И_Ответы]]
 
[[Категория:K8s_Вопросы_И_Ответы]]
  +
[[Категория:Требуется форматирование текста]]
   
 
Это сборник заметок, что бы повторять перед собеседованием - собрано из разных мест и скомпановано в удобном для меня виде
 
Это сборник заметок, что бы повторять перед собеседованием - собрано из разных мест и скомпановано в удобном для меня виде
   
   
  +
=То что стоит прочитать=
Вопросы
 
  +
* [[K8s_Q_A_ Architecture |Architecture]]
* Типы сущностей (https://ealebed.github.io/posts/2018/знакомство-с-kubernetes-часть-2-терминология/)
 
  +
** [[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_StatefulSets|StatefulSets]] - используется для управления приложениями с сохранением состояния;
 
  +
* [[K8s_Q_A_Namespaces|Namespaces]] виртуальные кластеры размещенные поверх физического;
** [[K8s_Q_A_DaemonSet|DaemonSet]] - гарантирует, что определенный под будет запущен на всех (или некоторых) нодах;
 
  +
* [[K8s_Q_A_POD|Pods]] - минимальная сущность (юнит) для развертывания в кластере; [[K8s_Q_A_POD|Подробнее про POD]]
** [[K8s_Q_A_Jobs|Jobs (в том числе CronJob)]] - создает один (или несколько) подов и гарантирует, что после выполнения команды они будут успешно завершены (terminated);
 
  +
** Дополнительные контейнеры в POD: https://habr.com/ru/companies/oleg-bunin/articles/761662/
** Labels and Selectors - пары ключ/значение, которые присваиваются объектам (например, подам). С помощью селекторов пользователь может идентифицировать объект;
 
  +
** Affinity / Anti-Affinity
** Namespaces - виртуальные кластеры размещенные поверх физического;
 
  +
*** [[K8s_Q_A_Node_Affinity_Taints_Tolerations|Node Affinity, Taints and Tolerations]]
** Services - абстракция, которая определяет логический набор подов и политику доступа к ним;
 
  +
* [[K8s_Q_A_ReplicaSets|ReplicaSets]] (ранее Replication Controller) - гарантирует, что в определенный момент времени будет запущено нужно кол-во контейнеров; [[K8s_Q_A_ReplicaSets|Подробнее про ReplicaSets]]
** Annotations - добавление произвольных неидентифицирующих метаданных к объектам;
 
  +
* [[K8s_Q_A_StatefulSets|StatefulSets]] - используется для управления приложениями с сохранением состояния;
** ConfigMaps - позволяет переопределить конфигурацию запускаемых подов;
 
  +
* [[K8s_Q_A_DaemonSet|DaemonSet]] - гарантирует, что определенный под будет запущен на всех (или некоторых) нодах;
** Secrets - используются для хранения конфиденциальной информации (пароли, токены, ssh-ключи).
 
  +
* [[K8s_Q_A_Deployments|Deployments]] - обеспечивает декларативные (declarative) обновления для Pods и ReplicaSets; [[K8s_Q_A_ Deployments|Подробнее про Deployments]]
** HPA?
 
  +
* [[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/
  +
  +
=Задачи для решения=
 
# чем деплоймент от даймон сета отличается. для чего обычно юзают даймон сет.
 
# чем деплоймент от даймон сета отличается. для чего обычно юзают даймон сет.
 
# сколько контейнеров может быть в поде.
 
# сколько контейнеров может быть в поде.
Строка 32: Строка 114:
 
# что такое CRD. как работает.
 
# что такое CRD. как работает.
 
# как из дефолтных сущностей кубов сделать канари деплоймент (10% трафика отрезать в новую версию апки)
 
# как из дефолтных сущностей кубов сделать канари деплоймент (10% трафика отрезать в новую версию апки)
  +
** Частичное решение https://habr.com/ru/companies/flant/articles/471620/
 
# Потеряли ССХ ключ от воркер инстанса, а надо туда сходить по ССХ. Но есть админ доступ к кубам. как востановить ССХ доступ к воркеру?
 
# Потеряли ССХ ключ от воркер инстанса, а надо туда сходить по ССХ. Но есть админ доступ к кубам. как востановить ССХ доступ к воркеру?
   

Текущая версия на 14: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 конфигмапа