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

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

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

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

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

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