OpenShift - การปรับขนาดแอปพลิเคชัน

การปรับขนาดอัตโนมัติเป็นคุณลักษณะใน OpenShift ที่แอปพลิเคชันที่ปรับใช้สามารถปรับขนาดและจมได้ตามและเมื่อต้องการตามข้อกำหนดบางประการ ในแอปพลิเคชัน OpenShift การปรับขนาดอัตโนมัติเรียกอีกอย่างว่าการปรับขนาดอัตโนมัติของพ็อด มีสองtypes of application scaling ดังต่อไปนี้.

มาตราส่วนแนวตั้ง

การปรับขนาดตามแนวตั้งเป็นเรื่องของการเพิ่มพลังงานให้กับเครื่องเดียวซึ่งหมายถึงการเพิ่ม CPU และฮาร์ดดิสก์มากขึ้น วิธีนี้เป็นวิธีเก่าของ OpenShift ซึ่งตอนนี้ OpenShift ไม่รองรับ

มาตราส่วนแนวนอน

การปรับขนาดประเภทนี้มีประโยชน์เมื่อมีความจำเป็นในการจัดการคำขอเพิ่มเติมโดยการเพิ่มจำนวนเครื่อง

ใน OpenShift มีไฟล์ two methods to enable the scaling feature.

  • การใช้ไฟล์คอนฟิกูเรชันการปรับใช้
  • ในขณะที่เรียกใช้ภาพ

การใช้ Deployment Configuration File

ในวิธีนี้คุณลักษณะการปรับขนาดจะเปิดใช้งานผ่านไฟล์ yaml คอนฟิกูเรชันของ deploymant ด้วยเหตุนี้คำสั่ง OC autoscale จะใช้กับจำนวนการจำลองขั้นต่ำและสูงสุดซึ่งจำเป็นต้องรัน ณ ช่วงเวลาใดเวลาหนึ่งในคลัสเตอร์ เราต้องการคำจำกัดความของวัตถุสำหรับการสร้างตัวปรับขนาดอัตโนมัติ ต่อไปนี้เป็นตัวอย่างของไฟล์นิยามตัวปรับขนาดอัตโนมัติของพ็อด

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

เมื่อเรามีไฟล์แล้วเราจำเป็นต้องบันทึกด้วยรูปแบบ yaml และรันคำสั่งต่อไปนี้สำหรับการปรับใช้

$ oc create –f <file name>.yaml

ขณะเรียกใช้รูปภาพ

คุณยังสามารถปรับขนาดอัตโนมัติโดยไม่มีไฟล์ yaml ได้โดยใช้สิ่งต่อไปนี้ oc autoscale คำสั่งในบรรทัดคำสั่ง oc

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

คำสั่งนี้จะสร้างไฟล์ประเภทเดียวกันที่สามารถใช้อ้างอิงได้ในภายหลัง

กลยุทธ์การปรับใช้ใน OpenShift

กลยุทธ์การปรับใช้ใน OpenShift กำหนดขั้นตอนการปรับใช้ด้วยวิธีการที่แตกต่างกัน ใน OpenShift ต่อไปนี้คือไฟล์important types of deployment strategies.

  • กลยุทธ์การหมุน
  • สร้างกลยุทธ์ใหม่
  • กลยุทธ์ที่กำหนดเอง

ต่อไปนี้เป็นตัวอย่างของไฟล์คอนฟิกูเรชันการปรับใช้ซึ่งส่วนใหญ่ใช้สำหรับการปรับใช้บนโหนด OpenShift

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"

ในไฟล์ Deploymentconfig ด้านบนเรามีกลยุทธ์เป็น Rolling

เราสามารถใช้คำสั่ง OC ต่อไปนี้สำหรับการปรับใช้

$ oc deploy <deployment_config> --latest

กลยุทธ์กลิ้ง

กลยุทธ์การกลิ้งใช้สำหรับการอัปเดตหรือการปรับใช้งาน กระบวนการนี้ยังสนับสนุน life-cycle hooks ซึ่งใช้สำหรับการแทรกโค้ดลงในกระบวนการปรับใช้ใด ๆ

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

สร้างกลยุทธ์ใหม่

กลยุทธ์การปรับใช้นี้มีคุณสมบัติพื้นฐานบางประการของกลยุทธ์การปรับใช้แบบกลิ้งและยังรองรับการใช้งานตลอดอายุการใช้งาน

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

กลยุทธ์ที่กำหนดเอง

สิ่งนี้มีประโยชน์มากเมื่อมีคนต้องการจัดเตรียมกระบวนการปรับใช้หรือโฟลว์ของตนเอง การปรับแต่งทั้งหมดสามารถทำได้ตามความต้องการ

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