OpenShift - Docker i Kubernetes

OpenShift jest oparty na Docker i Kubernetes. Wszystkie kontenery są zbudowane na klastrze Docker, który jest w zasadzie usługą Kubernetes na komputerach z systemem Linux, przy użyciu funkcji orkiestracji Kubernetes.

W tym procesie budujemy Kubernetes master, który kontroluje wszystkie węzły i wdraża kontenery we wszystkich węzłach. Główną funkcją Kubernetes jest sterowanie klastrem OpenShift i przepływem wdrażania przy użyciu innego rodzaju pliku konfiguracyjnego. Podobnie jak w Kubernetes, używamy kubctl w taki sam sposób, w jaki używamy narzędzia wiersza poleceń OC do budowania i wdrażania kontenerów w węzłach klastra.

Poniżej przedstawiono różne rodzaje plików konfiguracyjnych używanych do tworzenia różnego rodzaju obiektów w klastrze.

  • Images
  • POD
  • Service
  • Kontroler replikacji
  • Zestaw replik
  • Deployment

Obrazy

Obrazy Kubernetes (Docker) są kluczowymi elementami składowymi infrastruktury kontenerowej. Obecnie Kubernetes obsługuje tylko plikiDockerobrazy. Każdy kontener w kapsule ma uruchomiony obraz Dockera.

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

STRĄK

Pod to kolekcja kontenerów i ich miejsca przechowywania wewnątrz węzła klastra Kubernetes. Możliwe jest utworzenie kapsuły z wieloma kontenerami w środku. Poniżej znajduje się przykład utrzymywania kontenera bazy danych i kontenera interfejsu internetowego w tym samym pod.

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

Usługa

Usługę można zdefiniować jako logiczny zestaw zasobników. Można go zdefiniować jako abstrakcję na górze kapsuły, która zapewnia pojedynczy adres IP i nazwę DNS, za pomocą której można uzyskać dostęp do zasobników. Dzięki usłudze bardzo łatwo jest zarządzać konfiguracją równoważenia obciążenia. Ułatwia skalowanie POD-ów.

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

Kontroler replikacji

Kontroler replikacji to jedna z kluczowych funkcji Kubernetes, która jest odpowiedzialna za zarządzanie cyklem życia poda. Jest odpowiedzialny za upewnienie się, że określona liczba replik pod jest uruchomiona w dowolnym momencie.

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

Zestaw replik

Zestaw replik zapewnia, ile replik ma być uruchomionych. Można to traktować jako zamiennik kontrolera replikacji.

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

Rozlokowanie

Wdrożenia to uaktualnione i wyższe wersje kontrolera replikacji. Zarządzają wdrażaniem zestawów replik, które są również ulepszoną wersją kontrolera replikacji. Mają możliwość aktualizowania zestawu replik, a także przywracania poprzedniej wersji.

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

Wszystkie pliki konfiguracyjne mogą służyć do tworzenia odpowiednich obiektów Kubernetes.

$ Kubectl create –f <file name>.yaml

Poniższych poleceń można użyć, aby poznać szczegóły i opis obiektów 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>

Aby uzyskać więcej informacji na temat pracy z Dockerem i Kubernetesem, odwiedź nasz samouczek Kubernetes, korzystając z następującego linku kubernetes .