OpenShift - Докер и Kubernetes

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

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

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

  • Images
  • POD
  • Service
  • Контроллер репликации
  • Набор реплик
  • Deployment

Картинки

Образы 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

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

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

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

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

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

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

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

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

Набор реплик

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

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.

For POD

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

For Replication Controller

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

For Service

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

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