Учебники

OpenShift — Докер и Кубернетес

OpenShift построен поверх Docker и Kubernetes. Все контейнеры построены поверх кластера Docker, который в основном представляет собой сервис Kubernetes поверх машин Linux, с использованием функции оркестровок Kubernetes.

В этом процессе мы создаем мастер Kubernetes, который контролирует все узлы и развертывает контейнеры на всех узлах. Основной функцией Kubernetes является управление кластером OpenShift и потоком развертывания с использованием файла конфигурации другого типа. Как и в Kubernetes, мы используем kubctl так же, как мы используем утилиту командной строки OC для создания и развертывания контейнеров на узлах кластера.

Ниже приведены различные типы конфигурационных файлов, используемых для создания различных типов объектов в кластере.

  • Изображений
  • POD
  • обслуживание
  • Контроллер репликации
  • Набор реплик
  • развертывание

Изображений

Изображения Kubernetes (Docker) являются ключевыми строительными блоками контейнерной инфраструктуры. На данный момент Kubernetes поддерживает только образы Docker . Внутри каждого контейнера в модуле находится изображение Docker.

apiVersion: v1
kind: pod
metadata:
   name: Tesing_for_Image_pull -----------> 1
   spec:
   containers:
- name: neo4j-server ------------------------> 2
image: <Name of the Docker image>----------> 3
imagePullPolicy: Always ------------->4
command: [“echo”, “SUCCESS”] -------------------> 5

POD

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

apiVersion: v1
kind: Pod
metadata:
   name: Tomcat
spec:
   containers:
   - name: Tomcat
      image: tomcat: 8.0
      ports:
- containerPort: 7500
imagePullPolicy: Always

обслуживание

Служба может быть определена как логический набор модулей. Его можно определить как абстракцию над модулем, которая предоставляет один IP-адрес и имя DNS, по которым можно получить доступ к модулям. С Service очень легко управлять конфигурацией балансировки нагрузки. Это помогает очень легко масштабировать POD.

apiVersion: v1
kind: Service
metadata:
   name: Tutorial_point_service
spec:
   ports:
   - port: 8080
      targetPort: 31999

Контроллер репликации

Контроллер репликации является одной из ключевых функций Kubernetes, которая отвечает за управление жизненным циклом модуля. Он отвечает за то, чтобы убедиться, что указанное количество реплик pod работает в любой момент времени.

apiVersion: v1
kind: ReplicationController
metadata:
   name: Tomcat-ReplicationController
spec:
   replicas: 3
   template:
   metadata:
      name: Tomcat-ReplicationController
   labels:
      app: App
      component: neo4j
   spec:
      containers:
      - name: Tomcat
      image: tomcat: 8.0
      ports:
      - containerPort: 7474

Набор реплик

Набор реплик гарантирует, сколько реплик модуля pod должно быть запущено. Это можно рассматривать как замену контроллера репликации.

apiVersion: extensions/v1beta1
kind: ReplicaSet
metadata:
   name: Tomcat-ReplicaSet
spec:
   replicas: 3
   selector:
      matchLables:
      tier: Backend
   matchExpression:
      - { key: tier, operation: In, values: [Backend]}
   
   app: App
   component: neo4j
spec:
   containers:
   - name: Tomcat-
image: tomcat: 8.0
   ports:
containerPort: 7474

развертывание

Развертывания — это обновленные и более поздние версии контроллера репликации. Они управляют развертыванием наборов реплик, которые также являются обновленной версией контроллера репликации. У них есть возможность обновить набор реплик, и они также могут откатиться к предыдущей версии.

apiVersion: extensions/v1beta1 --------------------->1
kind: Deployment --------------------------> 2
metadata:
   name: Tomcat-ReplicaSet
spec:
   replicas: 3
   template:
      metadata:
lables:
   app: Tomcat-ReplicaSet
   tier: Backend
spec:
   containers:
name: Tomcat-
   image: tomcat: 8.0
   ports:
   - containerPort: 7474

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

$ Kubectl create –f <file name>.yaml

Следующие команды могут быть использованы, чтобы узнать подробности и описание объектов Kubernetes.

Для POD

$ Kubectl get pod <pod name>
$ kubectl delete pod <pod name>
$ kubectl describe pod <pod name>

Для контроллера репликации

$ Kubectl get rc <rc name>
$ kubectl delete rc <rc name>
$ kubectl describe rc <rc name>

Для обслуживания

$ Kubectl get svc <svc name>
$ kubectl delete svc <svc name>
$ kubectl describe svc <svc name>

Для получения более подробной информации о том, как работать с Docker и Kubernetes, пожалуйста, посетите наш учебник Kubernetes, используя следующую ссылку kubernetes .