Рубрики
Uncategorized

Узнайте Kubernetes, часть I, Основы, развертывание и Minikube

Следуйте за мной в Твиттере, рад принять ваши предложения по темам или улучшениям /Крис Кубернет … Помечено с DevOps, Kubernetes, Tutorial, Docker.

Kubernetes с самого начала (4 серии деталей)

Следуй за мной на Twitter , рад принять ваши предложения по темам или улучшениям/Крис

Kubernetes — это оркестр контейнерных приложений. Docker отлично подходит для ваших первых нескольких контейнеров. Как только вам нужно запустить на нескольких машинах и вам нужно масштабировать/вниз и распределить нагрузку и так далее, вам нужен оркестратор-вам нужен Kubernetes

Это первая часть серии статей о Kubernetes, потому что эта тема большая!.

  • Часть I — С самого начала, часть I, Основы, развертывание и Minikube мы тут
  • Часть II Представляем услуги и маркировку В этой части мы углубляем наши знания о стручках и узлах. Мы также вводим услуги и маркировку, используя этикетки, чтобы запросить наши артефакты.
  • Часть III масштабирование Здесь мы рассмотрим, как масштабировать наше приложение
  • Часть IV — Автоматическое масштабирование В этой части мы рассмотрим, как настроить автоматическую масштаб, чтобы мы могли справиться с внезапным большим увеличением входящих запросов

В этой части я надеюсь покрыть следующее:

  • Почему kubernetes и оркестрация в целом
  • Привет, мир : Основы Minikube, разговор через Minikube, простое пример развертывания
  • Кластер и базовые команды , Узлы,
  • Развертывания В Что это такое и развернуть приложение
  • Стручки и узлы , объяснить концепции и устранение неполадок

Почему оркестровка

Ну, все началось с контейнеров. Контейнеры дали нам возможность создавать повторяющиеся среды, поэтому разработчик, постановка и Prod смотрели и функционировали одинаково. Мы получили предсказуемость, и они также были легкомысленными, поскольку они набрали ресурсы из операционной системы хоста. Такой отличный прорыв для разработчиков и OPS, но API контейнера действительно хорош только для управления несколькими контейнерами за раз. Большие системы могут состоять из контейнеров 100 или 1000+ и необходимо управлять, чтобы мы могли делать такие вещи, как планирование , балансировка нагрузки , Распределение и более.

На этом этапе нам нужно оркестровка Возможность системы обрабатывать все эти экземпляры контейнеров. Здесь входит Kubernetes.

Ресурсы

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»