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.