Kubernetes с самого начала (4 серии деталей)
Следуй за мной на Twitter , рад принять ваши предложения по темам или улучшениям/Крис
Kubernetes — это оркестр контейнерных приложений. Docker отлично подходит для ваших первых нескольких контейнеров. Как только вам нужно запустить на нескольких машинах и вам нужно масштабировать/вниз и распределить нагрузку и так далее, вам нужен оркестратор-вам нужен Kubernetes
Это первая часть серии статей о Kubernetes, потому что эта тема большая!.
- Часть I — С самого начала, часть I, Основы, развертывание и Minikube мы тут
- Часть II Представляем услуги и маркировку В этой части мы углубляем наши знания о стручках и узлах. Мы также вводим услуги и маркировку, используя этикетки, чтобы запросить наши артефакты.
- Часть III масштабирование Здесь мы рассмотрим, как масштабировать наше приложение
- Часть IV — Автоматическое масштабирование В этой части мы рассмотрим, как настроить автоматическую масштаб, чтобы мы могли справиться с внезапным большим увеличением входящих запросов
В этой части я надеюсь покрыть следующее:
- Почему kubernetes и оркестрация в целом
- Привет, мир : Основы Minikube, разговор через Minikube, простое пример развертывания
- Кластер и базовые команды , Узлы,
- Развертывания В Что это такое и развернуть приложение
- Стручки и узлы , объяснить концепции и устранение неполадок
Почему оркестровка
Ну, все началось с контейнеров. Контейнеры дали нам возможность создавать повторяющиеся среды, поэтому разработчик, постановка и Prod смотрели и функционировали одинаково. Мы получили предсказуемость, и они также были легкомысленными, поскольку они набрали ресурсы из операционной системы хоста. Такой отличный прорыв для разработчиков и OPS, но API контейнера действительно хорош только для управления несколькими контейнерами за раз. Большие системы могут состоять из контейнеров 100 или 1000+ и необходимо управлять, чтобы мы могли делать такие вещи, как планирование , балансировка нагрузки , Распределение и более.
На этом этапе нам нужно оркестровка Возможность системы обрабатывать все эти экземпляры контейнеров. Здесь входит Kubernetes.
Ресурсы
- Kubernetes.io Один из лучших ресурсов, чтобы узнать о Kubernetes, на этом официальном сайте Kubernetes от Google.
- Обзор Kubernetes Обзор Kubernetes, все его части и как это работает
- Бесплатная учетная запись Azure Если вы хотите попробовать AKS, Azure Kubernetes Service, вам понадобится бесплатная учетная запись Azure
- Kubernetes в облаке Считаете ли вы, что уже знаете о Kubernetes и просто хотите узнать, как использовать управляемый сервис? Тогда эта ссылка для вас
- Документация на AKS, Azure Kubernetes Service Azure Kubernetes Service, управляемый Kubernetes
- Лучшие практики на AKS Вы уже знаете AKS и хотите научиться использовать его лучше?
Kubernetes
Итак, что мы знаем о Kubernetes?
Это система с открытым исходным кодом для автоматизации развертывания, масштабирования и управления контейнерными приложениями
Давайте создаем с именем. Это гречна для Хелмсман , человек, который управляет кораблем. Вот почему логотип выглядит так, рулевое колесо на лодке:
Это также называется K8s так K Ubernete S , 8 символов в середине удалены. Теперь вы можете произвести впечатление на своих друзей, что вы знаете, почему это называется K8.
Вот еще несколько знаний о опасности по его происхождению. Kubernetes родился из систем под названием Borg и Omega. Это было пожертвовано CNCF , Cloud Native Computing Foundation в 2014 году. Это написано в Go/Golang.
Если мы увидим все это знания о витринах, они были построены Google как ответ на их собственный опыт работы с тонкой контейнеров. Он также проверяется с открытым исходным кодом и испытывается в битве, чтобы справиться с действительно большими системами, такими как крупные системы масштаба планеты.
Итак, продажи:
Запускать миллиарды контейнеров в неделю, Kubernetes может масштабироваться без увеличения вашей команды OPS
Звучит потрясающе правильно, миллиарды контейнеров, потому что мы все размер Google. Нет?:) Ну, даже если у вас есть что-то вроде 10-100 контейнеров, это для вас.
Начиная
Хорошо, ладно, допустим, я покупаю все это, как мне начать?
Нетерпеливый Ey, конечно, давайте начнем делать что -то практичное с Minikube
Окей, звучит хорошо Я кодер, мне нравятся практические вещи. Что такое Minikube?
Minikube — это инструмент, который позволяет нам запускать Kubernetes на местном уровне
О, сладкий, миллионы контейнеров на моей маленькой машине?
Ну, нет, давайте начнем с нескольких и изучим основы Kubernetes, пока в этом.
Монтаж
Чтобы установить Minikube, давайте перейдите к этому Страница установки
Это всего лишь несколько коротких шагов, что означает, что мы устанавливаем
- гипервизор
- Kubectl (инструмент управления Kube)
- Minikube
Бежать
Получите эту вещь и запустить, набрав:
minikube start
Это должно выглядеть примерно так:
Вы также можете убедиться, что kubectl
были правильно установлены и работали:
kubectl version
Должен дать вам что -то подобное в ответ:
Хорошо, теперь мы готовы изучить Kubernetes.
Изучение kubectl и основные концепции
В обучении Kubernetes давайте сделаем это, узнав больше о kubectl
Программа командной строки, которая позволяет нам взаимодействовать с нашим кластером и позволяет нам развернуть и управлять приложениями на указанном кластере.
Слово кластер просто означает группу похожих вещей, но в контексте Kubernetes это означает Мастер
и несколько рабочих машин под названием Узлы
Анкет Узлы исторически называли миньонами , но больше не так.
Мастер решает, что будет работать на узлах, что включает в себя такие вещи, как запланированные рабочие нагрузки или приложения для контейнер. Что подводит нас к нашей следующей команде:
kubectl get nodes
Это должно дать нам такой результат, как это: что это говорит нам о том, какие узлы у нас есть работа.
Далее давайте попробуем запустить наше первое приложение на Kubernetes с запустить
командовать так:
kubectl run kubernetes-first-app --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080
Это должно дать нам ответ, как так:
Далее давайте проверим, что все работает с командой:
kubectl get deployments
Это показывает следующее в терминале:
Поместив наше приложение на Kluster, вызывая запустить
Команда, Kubernetes выполнил несколько вещей за кулисами, оно:
- обыскал Для подходящего узла, где можно было запускать экземпляр приложения, был только один узел, так что он был выбран
- запланировано приложение для запуска на этом узле
- настроено кластер, чтобы перенести экземпляр на новом узле при необходимости
Далее мы собираемся представить концепцию Капсул
Так что же такое стручок?
POD является наименьшим развертываемым устройством и состоит из одного или многих контейнеров, например, контейнеров Docker. Это все, что мы собираемся сказать о капсулах в данный момент Но если вы действительно действительно хотите узнать больше, прочитайте здесь
Причиной упоминания стручков на данный момент является то, что наш контейнер и приложение помещаются внутри стручка. Кроме того, PODS работает в частной изолированной сети, которая, хотя и виден из других стручков и услуг, к ним нельзя получить доступ за пределами сети. Это означает, что мы не можем связаться с нашим приложением, скажем, Curl
командование
Мы можем изменить это, хотя. Существует несколько способов разоблачить наше приложение во внешнее мир, однако мы будем использовать прокси.
Теперь откройте 2 -е окно терминала и тип:
kubectl proxy
Это разоблачит kubectl
Как API, который мы можем запросить с помощью HTTP -запроса. Результат должен выглядеть как: Вместо печати kubectl версия
Теперь мы можем ввести curl http://localhost: 8001/версия
и получить те же результаты:
Сервер API внутри Kubernetes создал конечную точку для каждого POD по имени POD. Итак, следующий шаг — выяснить имя стручка:
kubectl get pods
Это перечисляет все капсулы, которые у вас есть, на данный момент это должно быть просто одним стручком и выглядеть примерно так:
Тогда вы можете просто сохранить это до переменной, как SO:
Наконец, теперь мы можем сделать HTTP -звонок, чтобы узнать больше о нашей капсуле:
curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME
Это вернет нам длинный ответ JSON (я немного отрисовал его Но это продолжается и продолжается …)
Может быть, это не очень интересно для нас, как разработчики приложений. Мы хотим знать, как поживает наше приложение. Лучший способ узнать, что смотрит на журналы. Давайте сделаем это с этой командой:
kubectl logs $POD_NAME
Как вы можете видеть ниже, мы знаем, что получите журналы из нашего приложения:
Теперь, когда мы знаем название стручков, мы можем делать всевозможные вещи, такие как проверка переменных окружающей среды или даже шаг в контейнер и посмотреть на содержание.
kubectl exec $POD_NAME env
Это дает следующий результат:
Теперь давайте войдем в контейнер:
kubectl exec -ti $POD_NAME bash
Мы внутри! Это означает, что мы можем увидеть, как выглядит исходный код даже:
cat server.js
Внутри нашего контейнера мы теперь можем добраться до приложения, набрав:
curl http://localhost:8080
Резюме
Здесь мы пока остановимся. Чему мы на самом деле научились?
- Kubernetes, его происхождение что это
- Оркестрация, почему вам скоро это понадобится
- Такие концепции, как мастер, узлы и стручки
- Minikube, kubectl и как развернуть изображение на нашем кластере
Чувствуете, что у вас есть тонна, чтобы узнать больше? Вы правы, это большая тема.
Я надеюсь, что вы следите за следующими предстоящими частями, где мы узнаем больше о узлах, стручках, услугах, масштабировании, обновлении и в конечном итоге, как использовать управляемый сервис в облаке.
Нажмите здесь для следующей части
Kubernetes с самого начала (4 серии деталей)
Оригинал: «https://dev.to/azure/kubernetes-from-the-beginning-part-i-4ifd»