OpenShift - Docker ve Kubernetes

OpenShift, Docker ve Kubernetes üzerine inşa edilmiştir. Tüm kapsayıcılar, Kubernetes düzenlemeleri özelliğini kullanarak temelde Linux makinelerinin üzerinde Kubernetes hizmeti olan Docker kümesinin üzerine inşa edilmiştir.

Bu süreçte, tüm düğümleri kontrol eden ve kapsayıcıları tüm düğümlere dağıtan Kubernetes master'ı oluşturuyoruz. Kubernetes'in ana işlevi, farklı türde bir yapılandırma dosyası kullanarak OpenShift kümesini ve dağıtım akışını kontrol etmektir. Kubernetes'te olduğu gibi, kubctl'yi, küme düğümlerinde kapsayıcılar oluşturmak ve dağıtmak için OC komut satırı yardımcı programını kullandığımız gibi kullanırız.

Aşağıda, kümede farklı türdeki nesnelerin oluşturulması için kullanılan farklı türde yapılandırma dosyaları verilmiştir.

  • Images
  • POD
  • Service
  • Çoğaltma Denetleyicisi
  • Kopya seti
  • Deployment

Görüntüler

Kubernetes (Docker) görüntüleri, Containerized Infrastructure'ın temel yapı taşlarıdır. Şu an itibariyle Kubernetes yalnızcaDockerGörüntüler. Bir bölmedeki her konteynerin içinde çalışan Docker görüntüsü vardır.

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

Bir kapsül, bir Kubernetes kümesinin bir düğümü içindeki kapsayıcılar ve depolanmasıdır. İçerisinde birden fazla kap bulunan bir bölme oluşturmak mümkündür. Aşağıda, bir veritabanı kapsayıcısı ve web arabirimi kabını aynı bölmede tutmanın bir örneği verilmiştir.

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

Hizmet

Bir hizmet, mantıksal bölmeler kümesi olarak tanımlanabilir. Bölmelere erişilebilen tek bir IP adresi ve DNS adı sağlayan bölmenin üstünde bir soyutlama olarak tanımlanabilir. Service ile yük dengeleme yapılandırmasını yönetmek çok kolaydır. POD'ların çok kolay ölçeklenmesine yardımcı olur.

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

Çoğaltma Denetleyicisi

Replikasyon Denetleyicisi, kapsül yaşam döngüsünün yönetilmesinden sorumlu Kubernetes'in temel özelliklerinden biridir. Herhangi bir zamanda belirtilen sayıda bölme çoğaltmasının çalıştığından emin olmaktan sorumludur.

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

Kopya Seti

Çoğaltma kümesi, kapsülün kaç çoğaltmasının çalışması gerektiğini garanti eder. Çoğaltma denetleyicisinin yedeği olarak düşünülebilir.

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

Dağıtım

Dağıtımlar yükseltilir ve çoğaltma denetleyicisinin daha yüksek sürümleri. Aynı zamanda çoğaltma denetleyicisinin yükseltilmiş bir sürümü olan çoğaltma kümelerinin dağıtımını yönetirler. Replika setini güncelleme ve önceki sürüme geri dönme yeteneğine sahiptirler.

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üm yapılandırma dosyaları, ilgili Kubernetes nesnelerini oluşturmak için kullanılabilir.

$ Kubectl create –f <file name>.yaml

Kubernetes nesnelerinin ayrıntılarını ve açıklamalarını bilmek için aşağıdaki komutlar kullanılabilir.

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 ve Kubernetes ile nasıl çalışılacağı hakkında daha fazla ayrıntı için lütfen aşağıdaki bağlantı kubernetes'i kullanarak Kubernetes eğiticimizi ziyaret edin .