Основы Kubernetes для DevOps – K8s. Часть 1

Что такое Kubernetes?

K8s – это opensource проект разработанный Google на языке Go, изначально разрабатывался для своих же приложений. Первая версия вышла в 2014 году. Kubernetes предназначен для контейнеризированных приложений.

Прежде чем изучать Kubernetes я рекомендую ознакомиться с темой про Docker!

Основные «фишки» Kubernetes:

  • Автоматизация развертывания приложений

  • Автоматизация масштабирования приложений

  • Автоматизация управления приложениями

Из чего состоит K8s?

Основной компонент Kubernetes это Cluster.

Вы создаете Kubernetes Cluster состоящий из Nodes.

Nodes существуют двух типов:

  • Worker Node – сервер на котором запускаются и работают контейнеры.

  • Master Node – сервер который управляет Worker Nodes.

Когда вы запускаете команды управления, они всегда посылаются на Master Node. Напрямую с Worker Node вы не взаимодействуете.

Чуть подробнее про Nodes

На Kubernetes Master Node работают три главных процесса k8s:

  • kube-apiserver

  • kube-controller-manager

  • kube-scheduler

На Kubernetes Worker Node работают два главных процесса k8s:

  • kubelet

  • kube-proxy

Kubernetes Cluster

Обычно в Kubernetes кластере запущена одна Master нода (две и более нод используют для высокодоступных вариантов кластера) и одна Worker нода. Это самый минимальный набор для кластера.

Что может k8s и почему он популярен

  • Service discovery and load balancing. Вы запустили один Docker контейнер в k8s кластере. K8s дает вам доступ к этому Docker контейнеру через ip адрес, через определенный порт на любой Worker через определенный порт на любой Worker ноде или через DNS имя, также если вы запустили несколько копий вашего Docker контейнера, то k8s сделает load balancing между этими контейнерами.

  • Storage orchestration. Вы можете присоединить любой локальный диск или диск из AWS, GCP или Azure к одному или нескольким Docker контейнерам.

  • Automated rollouts and rollbacks. Автоматическое обновление на новую версию Docker Image или возврат на предыдущую версию.

  • Automatic bin packing. Вы создаете k8s кластер, где Kubernetes может запускать Docker контейнеры. Вы указываете сколько процессоров и оперативной памяти нужно каждой копии этих контейнеров, а k8s уже сам решит на каких Worker Node их лучше запускать.

  • Self-healing. Вы указываете сколько копий Docker контейнеров вам нужно и если с контейнером что-то произошло (завис, просто не отвечает и т.д.), то k8s это исправляет.

  • Secret and configuration management. K8s позволяет вам хранить «секреты», например пароли или любую секретную информацию все ваших приложений в Docker контейнере.

На этом тезисное знакомство с кубером можно считать законченным. В следующих заметках мы будем поднимать локальный k8s кластер, создавать Docker Images и еще раз пройдемся по основным понятиям k8s.

Обсудить эту заметку можно в нашем Телеграм канале: https://t.me/devops_spb_ru (@devops_spb_ru)

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества