OpenShift - Uygulama Ölçeklendirme

Otomatik ölçeklendirme, OpenShift'te dağıtılan uygulamaların belirli özelliklere göre istendiğinde ölçeklenebildiği ve çökebildiği bir özelliktir. OpenShift uygulamasında, otomatik ölçeklendirme, kapsül otomatik ölçeklendirme olarak da bilinir. İki tanetypes of application scaling aşağıdaki gibi.

Dikey Ölçekleme

Dikey ölçeklendirme, tek bir makineye daha fazla güç eklemekle ilgilidir, bu da daha fazla CPU ve sabit disk eklemek anlamına gelir. Bu, artık OpenShift sürümleri tarafından desteklenmeyen eski bir OpenShift yöntemidir.

Yatay Ölçeklendirme

Bu tür ölçeklendirme, makinelerin sayısını artırarak daha fazla isteği işleme ihtiyacı olduğunda yararlıdır.

OpenShift'te var two methods to enable the scaling feature.

  • Dağıtım yapılandırma dosyasını kullanma
  • Görüntüyü çalıştırırken

Dağıtım Yapılandırma Dosyasını Kullanma

Bu yöntemde, ölçeklendirme özelliği, bir konuşlandırma konfigürasyonu yaml dosyası aracılığıyla etkinleştirilir. Bunun için, OC autoscale komutu, kümede herhangi bir zamanda çalışması gereken minimum ve maksimum sayıda çoğaltma ile kullanılır. Otomatik ölçekleyicinin oluşturulması için bir nesne tanımına ihtiyacımız var. Aşağıda, kapsül otomatik ölçekleyici tanımlama dosyası örneği verilmiştir.

apiVersion: extensions/v1beta1
kind: HorizontalPodAutoscaler
metadata:
   name: database
spec:
   scaleRef:
      kind: DeploymentConfig
      name: database
      apiVersion: v1
      subresource: scale
   minReplicas: 1
   maxReplicas: 10
   cpuUtilization:
      targetPercentage: 80

Dosyayı yerine yerleştirdikten sonra, onu yaml formatında kaydetmemiz ve dağıtım için aşağıdaki komutu çalıştırmamız gerekir.

$ oc create –f <file name>.yaml

Görüntüyü Çalıştırırken

Aşağıdakileri kullanarak yaml dosyası olmadan da otomatik ölçeklenebilir. oc autoscale oc komut satırında komut.

$ oc autoscale dc/database --min 1 --max 5 --cpu-percent = 75
deploymentconfig "database" autoscaled

Bu komut ayrıca daha sonra referans için kullanılabilecek benzer türde bir dosya oluşturacaktır.

OpenShift'te Dağıtım Stratejileri

OpenShift'teki dağıtım stratejisi, farklı mevcut yöntemlerle bir dağıtım akışını tanımlar. OpenShift'te aşağıdakiler bulunmaktadır:important types of deployment strategies.

  • Rolling strateji
  • Stratejiyi yeniden oluşturun
  • Özel strateji

Aşağıda, esas olarak OpenShift düğümlerinde dağıtım için kullanılan bir dağıtım yapılandırma dosyası örneği verilmiştir.

kind: "DeploymentConfig"
apiVersion: "v1"
metadata:
   name: "database"
spec:
   template:
      metadata:
         labels:
            name: "Database1"
spec:
   containers:
      - name: "vipinopenshifttest"
         image: "openshift/mongoDB"
         ports:
            - containerPort: 8080
               protocol: "TCP"
replicas: 5
selector:
   name: "database"
triggers:
- type: "ConfigChange"
- type: "ImageChange"
   imageChangeParams:
      automatic: true
      containerNames:
         - "vipinopenshifttest"
      from:
         kind: "ImageStreamTag"
         name: "mongoDB:latest"
   strategy:
      type: "Rolling"

Yukarıdaki Deploymentconfig dosyasında Rolling olarak stratejimiz var.

Dağıtım için aşağıdaki OC komutunu kullanabiliriz.

$ oc deploy <deployment_config> --latest

Rolling Strateji

Döndürme stratejisi, sıralı güncellemeler veya dağıtım için kullanılır. Bu süreç ayrıca herhangi bir dağıtım sürecine kod enjekte etmek için kullanılan yaşam döngüsü kancalarını da destekler.

strategy:
   type: Rolling
   rollingParams:
      timeoutSeconds: <time in seconds>
      maxSurge: "<definition in %>"
      maxUnavailable: "<Defintion in %>"
      pre: {}
      post: {}

Stratejiyi Yeniden Oluşturun

Bu dağıtım stratejisi, yuvarlanan dağıtım stratejisinin bazı temel özelliklerine sahiptir ve aynı zamanda yaşam döngüsü kancasını da destekler.

strategy:
   type: Recreate
   recreateParams:
      pre: {}
      mid: {}
      post: {}

Özel Strateji

Bu, kendi dağıtım sürecini veya akışını sağlamak istediğinde çok faydalıdır. Tüm özelleştirmeler ihtiyaca göre yapılabilir.

strategy:
   type: Custom
   customParams:
      image: organization/mongoDB
      command: [ "ls -l", "$HOME" ]
      environment:
         - name: VipinOpenshiftteat
         value: Dev1