Рубрики
Uncategorized

Kubernetes: Хороший, плохой, злой

Kubernetes, наверное, одна из моих любимых платформ DevOps, и слишком часто меня спрашивают другие Develo … Tagged с DevOps, Kubernetes.

Kubernetes Вероятно, одна из моих любимых платформ DevOps, и слишком часто меня спрашивают другие разработчики, почему. Я думаю, что сегодня многие разработчики склонны к использованию полностью управляемых платформ приложений, таких как Теперь , App Engine , Хероку и многие другие. Это имеет смысл, так как я использую их тоже, но в жизни системы наступает время, когда этого просто недостаточно.

Я хотел бы вести вас в прошлое и рассказать историю о Ежедневно , мой боковой проект, который оказался очень популярным среди разработчиков. Когда мы только начинали ежедневно, все, что нам нужно, — это одностраничное приложение, которое должно быть упаковано в качестве расширения браузера (Chrome/Firefox) и приложения API Monolith, которое обеспечивает лучшие новости Dev для расширения. Наши потребности в хостинге были довольно простыми, поэтому, будучи фанатом Google Cloud, я решил развернуть сервер API в Engine. Вы развертываете код и за кулисами серверов приложений, сертификаты SSL и трафика привода. Проект рос, и вместе с ним нам пришлось разработать больше компонентов для системы, службы аутентификации пользователей, фоновых процессов и Cronjobs, чтобы назвать несколько. Мы могли бы продолжать и искать другой инструмент для каждого компонента, но я уже был знаком с Kubernetes Так что я знал, что это именно то, что я ищу. Это заняло некоторое время Но я все мигрировал в Kubernetes, и теперь у меня есть одна платформа. Платформа может обрабатывать практически со всеми необходимыми DevOps, которые у меня есть, от уровня сети до уровня приложения. Kubernetes — это не все хорошо, существует крутая кривая обучения и накладные расходы, которые вы должны учитывать но это того стоит.

Kubernetes (K8S)-это система с открытым исходным кодом для автоматизации развертывания, масштабирования и управления контейнерными приложениями. Вы заявляете, сколько экземпляров данного контейнера вы хотели бы развернуть, и Kubernetes сделает это для вас.

Многие платформы имеют ограниченную поддержку времени выполнения, например, некоторые поддерживают только узел, а другие используют только Java, а иногда даже только определенная версия. Как разработчики, это может ограничить наш выбор и наше желание быть в курсе последних технологий. С Докер Вы можете просто упаковать любое приложение, которое вы хотите, и развернуть его. У Docker отличное сообщество и экосистема, так что вы можете даже использовать существующие изображения, а не только свои собственные. Kubernetes — это платформа для оркестровки Docker, так что все о Docker. Если у вас есть изображение Docker вашего приложения, Kubernetes позаботится об этом для вас. Вы можете использовать последнюю версию узла, Голанг или даже язык, который только вы знаете.

Все, и я действительно имею в виду все в Kubernetes, основан на Yaml. Это означает, что, когда вы хотите развернуть свое приложение, вы пишете YAML, когда вы хотите увеличить масштаб, вы снова пишете YAML, и эти YAML могут быть привержены вашему git Repo. Я не могу подчеркнуть, насколько важно иметь вашу инфраструктуру в качестве кода и версии в GIT. Вы можете легко создать бесконечное количество сред, чтобы запустить, проверить и проверить ваше приложение. Вы также можете автоматизировать процесс развертывания новой версии приложения, теперь, когда все основано на коде.

Kubernetes может выполнить большинство ваших требований, так как он упакован с этими удивительными функциями вне коробки:

  • Обнаружение обслуживания
  • Балансировки нагрузки
  • Автоскалирование
  • Самовосстановление
  • Секретное управление и конфигурацию
  • Частная сеть
  • Cronjobs

Вы можете расширить его еще дальше на автоматическое обеспечение сертификатов TLS, управления базами данных и многого другого, установив инструменты с открытым исходным кодом в вашем кластере.

Вы можете выбрать стратегию развертывания, которая будет соответствовать потребностям вашего приложения, канарейки, синего/зеленого, рамки и многое другое.

Очень мало нет (или может быть) покрыта Kubernetes и требует внешнего решения.

Я использую Google Kubernetes Engine (я упоминал, что я фанат Google Cloud?) Для своих кластеров. Это Kubernetes как сервис, предоставляемый Google. Потрясающая часть в том, что Google ничего не взимает за сервис, вы платите только за те, которые вы запускаете. Это не дает причин предоставить это самостоятельно. Google позаботится о исправлении вашего кластера, поддержании его живым и что все работает. Мечта сбывается!

Я не буду лгать, Kubernetes поставляется с бременем. В основном это включает в себя изучение платформы во -первых, это может быть пугающим для глубокого погружения и изучать ее. Kubernetes имеет довольно крутую кривую обучения и требует времени, чтобы учиться и освоить. Это требует навыков DevOps и знаний инфраструктуры. Мониторинг, ведение журнала и предупреждение обязательно с Kubernetes, многие платформы помогут вам прибить его Но это все еще занимает время.

Kubernetes далеко не идеален, но это определенно идет туда. Если вы можете обладать его силой и освоить, это может стать вашей платформой по выбору. Вы просто должны убедиться, что время правильное и готово учиться. Путешествие нелегко, но стоит каждую секунду!

Оригинал: «https://dev.to/idoshamun/kubernetes-the-good-the-bad-and-the-ugly-c6k»