Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kubernetes против реальности

Kubernetes против реальности

DevOpsDaysMoscow, 07-12-2019, Павел Селиванов

- Я расскажу, как с помощью Kubernetes можно построить DevOps в вашей компании и почему, скорее всего, ничего не получится.
- Покажу, как некоторые, на первый взгляд, неважные аспекты в работе и культуре убивают ваш кластер;
- Раскрою культурологические проблемы в работе IT отделов;
- И дам практические рекомендации по использованию функционала Kubernetes для решения этих (и не только) проблем.

Avatar for DevOpsDaysMoscow

DevOpsDaysMoscow

December 07, 2019
Tweet

More Decks by DevOpsDaysMoscow

Other Decks in Technology

Transcript

  1. План • DevKubeOps инженеры • Как построить Костыли • Две

    простые технологии чтобы спать по ночам • Мифический DevOps инженер
  2. • Сложное приложение • Взаимодействие внутри • Много времени на

    разработку • Простая структура проекта • Каждый сервис – простое приложение • Общение по стандартным протоколам • Быстрая разработка • Сложная структура проекта Сервис 1 Сервис 2 Сервис 3 Сервис 4 Монолиты vs Микросервисы
  3. «Сложность» теперь живёт за пределами кода Сервис 1 Сервис 2

    Сервис 3 Сервис 4 Сложность Сложность Сложность Сложность Сложность
  4. Облако CI/CD Infrastructure as a Code Весь код в гите

    Как DevOps представляет себе задачу
  5. Облако CI/CD Infrastructure as a Code Весь код в гите

    На самом деле в трёх На самом деле в двух Виртуалки у хостера Виртуалки на ноуте под столом в офисе Серверы в ДЦ Как задача выглядит на самом деле Ручной труд
  6. Облако CI/CD Infrastructure as a Code Весь код в гите

    На самом деле в трёх На самом деле в двух Виртуалки у хостера Виртуалки на ноуте под столом в офисе Серверы в ДЦ Ручной труд Как DevOps решает задачу КУБИРНЕТИС КУБИРНЕТИС КУБИРНЕТИС КУБИРНЕТИС
  7. Pod Disruption Budget • Устанавливает сколько инстансов приложения могут быть

    недоступны одновременно • YAML формат согласований работ
  8. Pod Disruption Budget • Устанавливает сколько инстансов приложения могут быть

    недоступны одновременно • YAML формат согласований работ • https://kubernetes.io/docs/concepts /workloads/pods/disruptions/ apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: myapp-pdb spec: minAvailable: 1 selector: matchLabels: app: myapp
  9. Priority Class • Указывает важность пода относительно других подов •

    https://kubernetes.io/doc s/concepts/configuration/ pod-priority-preemption/ apiVersion: scheduling.k8s.io/v1 kind: PriorityClass metadata: name: high-priority value: 1000000 globalDefault: false description: "Priority class for XYZ."
  10. Priority Class в реальности $ kubectl drain node Terminating Low

    Priority Service High Priority Service Low Priority Service