Рубрики
Uncategorized

Как получить свой первый контейнер на K8S, используя бесплатную версию Platform9 Управляемого Kubernetes

Kubernetes в ведущей платформе контейнерной оркестографии, которая позволяет вам применить быстрыми и оптимистичными … с меткой по учебникам, Кубернетикам, DEVOPS.

Kubernetes в ведущей платформе контейнерной оркестографии, которая позволяет применить быструю и оптимизированную инфраструктуру нагрузки с использованием декларативного API.

В следующем уроке техническая команда Platform9 показывает, как следовать пошаговое руководству для подписания на платформе 9 Управляемая платформой Kubernetes, создавая новый кластер и развертывание примерного приложения. Тогда мы увидим, как расширить экземпляры наших приложений и как развернуть новый обновленный экземпляр нашего приложения.

Давайте начнем.

Зарегистрироваться

Чтобы получить преимущества платформы9, нам нужно зарегистрировать новую учетную запись.

Перейдите к регистрации страницы, расположенной здесь: Регистрация страницы

Заполните свои данные в виде:

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

Platform9 Управляемая Kubernetes (PMK) предоставляет нам Pure-Play Open Source Kubernetes, предоставляемым в качестве управляемого SaaS.

После этого вам будет представлен экран приборной панели. Изначально у нас нет настроенного кластера, поэтому нам нужно создать один.

Настройка кластера

Во-первых, давайте ознакомимся с возможными страницами, как показано на разрезе боковой панели:

  • Инфраструктура: в этом разделе представлен обзор всех кластеров, узлов и облачных поставщиков.
  • Стручки/Развертывание/Услуги: В этом разделе спины всех стручков, развертываний и услуг.
  • Классы хранения: В этом разделе перечислены все классы хранения.
  • Пространства имен: в этом разделе перечислены все пространства имен кластеров.
  • RBAC: В этом разделе показана информация о настроенных ролях RBAC и привязки ролей.
  • API Access: Этот раздел указывает информацию о токенах доступа API и настройки Kubeconfig.
  • Пользователи/роли: В этом разделе отображается информация о пользователях и определенных ролях.

Теперь, когда вы знакомы с помощью панели инструментов UI, давайте создадим новый кластер K8S, где мы собираемся развернуть пример прикладного контейнера.

Нажмите на ссылку на приборную панель, а затем нажмите «Создать кластер»:

На следующем экране выберите Поставщик облака. Здесь мы можем выбрать BareoS, что может быть локальным или удаленным VM:

Следуйте инструкциям для подготовки некоторых узлов Kubernetes. Обратите внимание на следующее:

  • Для этого учебника я использовал два экземпляра Scoreway и загрузочный узел кластера на каждой VM.
    • Мы можем сделать тот же процесс, используя VirtualBox, используя ксениальные изображения Ubuntu. Просто убедитесь, что у вас есть требования к оборудованию.
  • Мы использовали следующие команды для подготовки каждого узла:
$ pf9ctl cluster prep-node -u root -i  -s 

Примечание: Если прогресс подготовки узла застрял на 95%, затем введите Ctrl + C, чтобы разблокировать его. Затем следует показать сообщение об успехе в консоли.

Как только вы подготовили экземпляры, снова перейдите в UI и обновите экран. Через некоторое время вы сможете продолжить с помощью Master и экранов выбора работников, как изображено на изображениях ниже:

В конце вы должны иметь базовый кластер, настроенный и подготовленный, и вы сможете увидеть статистику узлов и системных стручков, как показано ниже:

Кроме того, прежде чем мы продолжим, убедитесь, что кластер здоров, осматривая мастер-стручки в странице PODS/развертывания:

После этого мы готовы выдать наше первое развертывание.

Выдача развертывания Как только мы будем готовы наш кластер, мы можем скачать KubeConfig Файл и используйте его как наш контекст. Таким образом, мы можем использовать Kubectl Cli Инструмент также для оставшейся части урока.

Перейдите к разделу доступа API и нажмите на имя кластера в разделе «Загрузить раздел KubeConFig». Это загрузит файл YML. Нам нужно использовать это как Cluster Config:

В новой оболочке экспортируйте экологическую переменную KubeConfig, указывая на загруженное местоположение файла:

$ export KUBECONFIG=$(pwd)/test.yaml

Затем выдача команды Get-Clusters покажет нам демонстрационный кластер:

$ kubectl config get-clusters
NAME
test

Теперь давайте посмотрим, как мы можем выдать наше первое развертывание. Нажмите на Стручки/развертывание и выберите Развертывание Отказ

Заполните Новый ресурс Форма, выбрав кластер и пространство имен по умолчанию.

Для Развертывание Описание В качестве примера мы можем использовать простое приложение Node.js. Вот спецификация:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nodejs-deployment
spec:
  selector:
    matchLabels:
      app: nodejs
  replicas: 1
  template:
    metadata:
      labels:
        app: nodejs
    spec:
      containers:
      - name: nodejs
        image: joerx/express-hello-src:latest
        ports:
        - containerPort: 3000
        livenessProbe:
          httpGet:
            path: /headers
            port: 3000
          initialDelaySeconds: 30
          periodSeconds: 30
        readinessProbe:
          httpGet:
            path: /headers
            port: 3000
          initialDelaySeconds: 15
          periodSeconds: 3

Вот небольшое расстройство вышеуказанного спецификации:

  • Apiversion: Мы указали версию спецификации развертывания здесь. Мы использовали Этот эталонный сайт
  • Вид: мы указали тип развертывания.
  • Метаданные: Мы определили имя для нашего развертывания в качестве NODEJS-развертывания.
  • Спецификация: Здесь мы определяем нашу спецификацию развертывания. Мы назначаем метку, селектор метки, один экземпляр реплики и информацию об изображениях контейнера. Мы также добавили некоторые зонды здоровья для обнаружения статуса.

При сохранении на приборной панели мы можем увидеть фазы развертывания. Если вы нажмете на имя, вы должны быть перенаправлены на панель инструментов Kubernetes. Однако когда он будет готов, мы не можем напрямую добраться до него, потому что сервер открывается только внутри кластера. Нам нужно добавить спецификацию услуг, чтобы открыть ее публично. Мы можем использовать Услуги-> Добавить услугу Кнопка, чтобы сделать это.

Вот спецификация:

apiVersion: v1
kind: Service
metadata:
  name: nodejs-service
spec:
  selector:
    app: nodejs
  ports:
    - protocol: TCP
      port: 3000
  type: NodePort

Здесь мы выставляем приложение Node.js, используя сервис с именем Nodejs-Service и назначает порт TCP в диапазоне 30000-32767 с контейнером 3000, который работает наше приложение. Ключевая вещь для заметок — это тип: NodePort , который будет разоблачить порт в общедоступном IP-адресе узла.

Теперь, чтобы проверить наше приложение, нам нужно найти фактический IP-адрес VM-узла. В этом примере шахты: 51.158.108.219, поэтому нам нужно открыть ссылку браузера на следующий путь:

http://51.158.108.219:30180/

Действительно, как вы можете видеть на следующем рисунке, сервер ответил на нашем IP-адресе:

Расширение развертывания

Текущее развертывание вращается на один экземпляр приложения. Если мы хотим масштабировать его, мы можем использовать Kubectl Cli инструмент; Или вместо этого мы можем использовать UI Kubernetes. Если мы нажмем на ссылку развертывания, она перенаправляет нас к UI Kubernetes. Первый раз он попросит токен, который присутствует внутри файла Kubeconfig YML, который мы загрузили ранее.

Нам просто нужно только выбрать развертывание в списке развертывания на правой стороне с тремя точками. Выберите Scale, а затем в модели, измените число от 1 до 3:

После этого мы можем увидеть стручки, увеличивающиеся от одного до трех на приборной панели:

Обратите внимание, что при использовании этого подхода есть некоторые ограничения, поскольку в настоящее время у нас есть только два узла и три экземпляра; Итак, мы можем достичь только двух из трех стручков. В последующих уроках мы можем видеть, как различные типы услуг могут преодолеть это ограничение.

Развертывание новой версии приложения

Точно так же, если мы хотели развернуть более новую версию приложения, нам просто нужно изменить развернутую ссылку на точку на новое изображение. Используя команду kubectl, это может быть сделано так просто, как выдача следующую команду:

$ kubectl set image deployment  = --record

Например:

$ kubectl set image nodejs-deployment  nodejs=joerx/express-hello-src:latest

Прежде чем мы это сделаем, важно определить Стратегия обновления Rolling Так что мы можем ограничить количество изображений, которые заменяются одновременно. Нам нужно добавить следующий раздел в разделе Спецификации развертывания:

strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1

Здесь мы хотим максимум одного POD недоступного и максимум одного дополнительного обновления POD в то же время. Это эффективно означает, что, не более четырех стручков в процессе обновления, так как в настоящее время есть три подвода (3 + 1 с новой версией)

Кроме того, обратите внимание на еще одну вещь — мы начали со следующего изображения:

Joerx/Express-Hello-Src: последние

В идеале мы всегда должны использовать тег версии. Например:

Joerx/Express-Hello-Src: 1.0.0

Затем, когда мы хотим развернуть следующую версию — например, 1.1.0 — мы можем установить следующее изображение докера:

Joerx/Express-Hello-SRC: 1.1.0

Любые последующие обновления должны следовать настоящей Конвенции. Я оставляю его как упражнение для читателя для выполнения обновления изображения из более старой версии для более нового.

Обзор и следующие шаги

В этом руководстве мы проходили через процесс регистрации с платформой9, создавая наши собственные кластеры Kubernetes и выдача пример развертывания. Мы также изучали, как перейти к панели инструментов Kubernetes, масштабируйте развертывание и выставляем наше приложение через спецификацию услуг.

Оригинал: «https://dev.to/kpemmaraju/get-your-first-container-up-on-k8s-using-the-free-version-of-platform9-managed-kubernetes-3d5m»