OpenShift - Docker và Kubernetes

OpenShift được xây dựng dựa trên Docker và Kubernetes. Tất cả các vùng chứa được xây dựng trên cụm Docker, về cơ bản là dịch vụ Kubernetes trên các máy Linux, sử dụng tính năng dàn nhạc Kubernetes.

Trong quá trình này, chúng tôi xây dựng Kubernetes master điều khiển tất cả các nút và triển khai các vùng chứa cho tất cả các nút. Chức năng chính của Kubernetes là kiểm soát cụm OpenShift và luồng triển khai bằng cách sử dụng một loại tệp cấu hình khác. Như trong Kubernetes, chúng tôi sử dụng kubctl giống như cách chúng tôi sử dụng tiện ích dòng lệnh OC để xây dựng và triển khai các vùng chứa trên các nút cụm.

Sau đây là các loại tệp cấu hình khác nhau được sử dụng để tạo các loại đối tượng khác nhau trong cụm.

  • Images
  • POD
  • Service
  • Bộ điều khiển sao chép
  • Bộ bản sao
  • Deployment

Hình ảnh

Hình ảnh Kubernetes (Docker) là các khối xây dựng chính của Cơ sở hạ tầng được chứa đựng. Hiện tại, Kubernetes chỉ hỗ trợDockerhình ảnh. Mỗi vùng chứa trong một nhóm có hình ảnh Docker của nó chạy bên trong nó.

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

Một nhóm là tập hợp các vùng chứa và bộ lưu trữ của nó bên trong một nút của cụm Kubernetes. Có thể tạo một nhóm với nhiều vùng chứa bên trong nó. Sau đây là một ví dụ về việc giữ một vùng chứa cơ sở dữ liệu và vùng chứa giao diện web trong cùng một nhóm.

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

Dịch vụ

Một dịch vụ có thể được định nghĩa là một tập hợp các nhóm hợp lý. Nó có thể được định nghĩa là một phần trừu tượng trên đầu nhóm cung cấp một địa chỉ IP và tên DNS duy nhất mà các nhóm có thể được truy cập. Với Service, rất dễ dàng quản lý cấu hình cân bằng tải. Nó giúp POD mở rộng quy mô rất dễ dàng.

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

Bộ điều khiển sao chép

Bộ điều khiển nhân bản là một trong những tính năng chính của Kubernetes, chịu trách nhiệm quản lý vòng đời nhóm. Nó có trách nhiệm đảm bảo rằng số lượng bản sao nhóm được chỉ định đang chạy tại bất kỳ thời điểm nào.

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

Bộ bản sao

Bộ bản sao đảm bảo có bao nhiêu bản sao của nhóm sẽ được chạy. Nó có thể được coi là một sự thay thế của bộ điều khiển nhân bản.

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

Triển khai

Các triển khai được nâng cấp và các phiên bản cao hơn của bộ điều khiển nhân rộng. Họ quản lý việc triển khai các tập hợp bản sao, đây cũng là phiên bản nâng cấp của bộ điều khiển nhân bản. Chúng có khả năng cập nhật tập hợp bản sao và chúng cũng có khả năng quay trở lại phiên bản trước.

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

Tất cả các tệp cấu hình có thể được sử dụng để tạo các đối tượng Kubernetes tương ứng của chúng.

$ Kubectl create –f <file name>.yaml

Các lệnh sau có thể được sử dụng để biết chi tiết và mô tả của các đối tượng 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>

Để biết thêm chi tiết về cách làm việc với Docker và Kubernetes, vui lòng truy cập hướng dẫn Kubernetes của chúng tôi bằng cách sử dụng kubernetes liên kết sau .