Skip to main content

Kubernetes - The Documentary

Long story short: Open Source is most successful when it's played as a positive sum game.

videos, participants
"from author"

Немного непонятно кто действительно стоял у самых истоков k8s, в документальном фильме Брайан говорит, что это были Брендон, Джо и Вилли. В wiki - Брендон, Джо и Крейг. Кажется, что проще присвоить это достижения всем инженерам ☝️ и это не будет неправдой.

☁️ The 2013

В 2013 году каждая компания - это интернет компания. Каждая из них находятся под влиянием DevOps методологии, стремится к автоматизации и не хочет иметь дело с pure виртуализацией и серверами. Их основная цель - Infrastructure as a Service aka ☁️.

В тоже время AWS уже стал лидером на рынке облачных вычислений. Компании вроде Google и Microsoft тоже хотят выйти на этот рынок, но понимают, что сильно отстают. Google чувствует, что ему необходимо перенести свою экспертизу в облако, необходим некий геймченджер.

details
note

Gartner - исследовательская и консалтинговая компания, специализирующаяся на рынках информационных технологий. Прочитать об их деятельности и об Magic Quadrant(MQ) можно тут.

YYtop3MQ
2013AWS,CSC,nil
2015AWS,Azure,nil
2017AWS,Azure,GCP
2021AWS,Azure,GCP

k8s as a Service:

VendorServiceRelease
AWSElastic k8s Service (EKS)June 2018
AzureAzure k8s Service (AKS)June 2018
GCPGoogle k8s Engine (GKE)~ summer 2015

🐳 Docker did changed the world

Что касается контейнеров - это не новая технология. О её существовании знали, но это была некая секретная информация, доступная лишь ~ 10% компаний на рынке (Google, Uber, Heroku, etc.). Также остальная часть компаний не умело в High Load в production-е, им было сложно масштабировать приложения.

Docker сделал контейнеры очень простыми и доступными, с возможностью получить моментальную выгоду. 🐳 - это инструмент, который элегантно решает свою маленькую задачу по упаковке и доставке приложений. Он был обречён на успех. Проблема упаковки и доставки была решена, но что дальше? Как насчет 🚀 деплоймента и оперирования?

details
note
  • Docker bridging gap between Dev and Ops
  • Ты можешь заниматься приложением и не париться про окружению, запустить приложение локально, в ДЦ, в облаке.

⛵ Kubernetes (k8s) - yet another orchestration tool

note

k8s был бы невозможен без успеха Docker.

У нас есть клауд (компьютер), а как сделать эту машину полезной? Нужна Developers Platform.

Стратегия состояла в том, чтобы сделать новую платформу для облаков, вдохновленную Borg-ом. Эта технология должна была стать лидером индустрии в своем сегменте (evaluation of GKE) для запуска на ней полезной нагрузки, но Google был недостаточно большим, чтобы сделать это в одиночку. Ему было необходимо много fellow travelers вокруг этой технологии. Поэтому было принято решение сделать его open source проектом.

За работу взялись несколько инженеров, у кого-то была экспертиза в облаке, у кого-то в Borg-е. Ребята рассказывали идею коллегам, а получилось обратить на нее внимание одного из VP Google в поездке на автобусе. Некоторое время заняло корпоративное противостояние за и против open source.

За некоторое временя до Dockercon, который прошел в июне 2013, к проекту подключился Крейг из RedHat, один из первых внешних контрибьютеров. Он внес большой вклад в чистоту Go кода. Прототип успели подготовить к конференции.

Kelsey Hightower - k8s explanation, Promise Theory

Давайте представим, что приближаются праздники, и вы хотите отправить подарок близкому человеку. Вы приходите на почту, говорите, что хотите отправить вещи. Вам скажут, что смогут доставить вещи, но в таком виде их можно потерять. Мы не хотим потерять книги, драгоценности или деньги. Поэтому нам нужно положить их в коробку. Расширим аналогию и представим просто конверт. Стоимость отправки конверта из пункта A в пункт Б будет зависеть от разных факторов: размера, веса и т.д. Но что бы вы ни положили в конверт - почте это не важно.

Ключ к доставке - указание адресата. Как он будет доставлен, с какими сложностями почта может столкнуться при доставке - вас не интересует. Почта абстрагирует вас от этих проблем. Вы просто даёте конверт, говорите адрес, платите деньги и они вам обещают, что доставят его в течении 2-3 дней. Машина может сломаться, доставщик может заболеть, что у годно может случиться, но они обещают, что доставят его за 2-3 дня. Как они это будут делать - не важно. Это Promise theory.

Задача k8s-а - убедиться, что приложение работает. Точно так же, как задача почты убедиться, что письмо продолжает следовать к пункту назначения. k8s - абстракция над инфрастуктурой. Разработчикам нужно упаковать свое приложение в коробку, дать адрес, и если они могут позволить себе доставку - приложение будет запущено.

"Project Seven" - logo, codename

note

Naming is the hardest problem in computer science world:

Однажды, будучи за рулём, Крейг подумал, что k8s это пилот. Ребята просто подыскали вариант этого слова на другом языке.

Дизайнеров Google не ограничивали в создании логотипа (это ведь open source project). Но, в итоге, логотип сделал Тим - у него было образование в дизайне. У руля сделали 7 граней, чтобы не терять связь с кодовым названием проекта.

Dockercon 2014, k8s announcement

В день проведения конференции репозиторий k8s сделали публичным. На самой конференции различные компании / стартапы объявили о своих решениях оркестрации контейнеров (около 5-6). У всех в голове была одна и та же идея.

details
toolcompany
MesosRedHat
Docker SwarmDocker Inc.
TupperwareFacebook
k8sGoogle

Хорошая статья на habr по системам оркестрации.


Это очень интересно посмотреть, даже если вы отлично знаете k8s. В этой презентации я нашел лучшее объяснение того, что такое Pod

Cloud Native Compute Foundation (CNCF)

Проблемы до CNCF:

  • репозиторий Google
  • лицензия проекта - проприетарная от Google

Т.е. то, что k8s - open source проект, лишь какая-то устная договоренность. Многие крупные компании не хотели, чтобы их инженеры работали над проектом конкурента.

Из этих проблем образовался CNCF:

  • Организация, предоставляющая интересы многих компаний в отношении облачных технологий.
  • Это мост между конкурирующими вендорами, благодаря сотрудничеству которых выигрывает каждый.
  • Организовал работу над проектом, которая превращалась в хаос (до этого, на вопросы новых участников о проекте, их отправляли спрашивать к googler's). Это положительно сказалось на стратегии развития проекта, это называют sustainable success.
details
note

Если бы у k8s и Mesos было свое мнение - они бы нашли, что создавать вместе, например storage для контейнера или будущий StatefulSet.

Примерно в это время, инженер Келси Хайтауэр активно помогал другим участникам индустрии разобраться с вопросом: "Что такое k8s"? Это заметили и его пригласили в Google на позицию Developer Advocate. Таким образом Келси стал голосом проекта.

Pokemon Go on GKE

img

Niantic запустили свою игру на самых первых версиях GKE, а разработчики k8s превратились в 24/7 oncall-support для инфрастуктуры этой игры.

Игра росла просто взрывными темпами и благодаря k8s у ребят получилось отскейлиться под исходящую нагрузку. Это был ответ всем - почему k8s.

details
note

Chen Goldberg: In my head all I was thinking was "Please stop playing! We are not ready for that!" But what was actually amazing is that we were actually ready for that.

Docker vs k8s. Containers wars

note

k8s evolution is same exiting as docker. Google is stealing docker's thunder?

Google действительно был на войне - он хотел отъесть кусок от рынка облачных вычислений. Но корпоративные политики не интересуют инженеров open source проектов. Им просто хочется творить, и делать это максимально хорошо.

k8s же, в конечном итоге, использует Docker в качестве рантайма, точно так же как и etcd в качестве хранилища, в конечном счете, точно так же как Docker использует linux kernel.

k8s - это коллаборация различных технологий. В конечном счете, проект добился такого успеха благодаря комьюнити.

flowchart LR linux[linux kernel] k8s[k8s / kubelet ] app[application / service ] subgraph runtime d1[Docker container] d2[Docker container] end linux --> runtime runtime --> k8s k8s --> app

Docker Inc. перестали видеть в k8s соперника ~ в 2017 году.

details
info
  • Tim Hockin:People like drama. World Love Drama.
  • Arnaud Porterie: Everyone want's to own the user experience. Everyone wants to be on top of the value chain. Who own the mindset of the engineers - this is very value is.
  • Kelsey Hightower: Whatever war people were fighting there was nothing to actually fight.
  • Solomon Hykes: I don't really think of k8s a competitor or a problem.