Kubernetes - การทำให้ใช้งานได้

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

พวกเขามีคุณสมบัติที่อัปเดตมากมายของ matchLabels และ selectors. เรามีตัวควบคุมใหม่ใน Kubernetes ต้นแบบที่เรียกว่าตัวควบคุมการปรับใช้ซึ่งจะทำให้เกิดขึ้น มีความสามารถในการเปลี่ยนแปลงการปรับใช้กลางคัน

การเปลี่ยนการปรับใช้

Updating- ผู้ใช้สามารถอัปเดตการปรับใช้อย่างต่อเนื่องก่อนที่จะเสร็จสมบูรณ์ ในกรณีนี้การปรับใช้ที่มีอยู่จะถูกตัดสินและการปรับใช้ใหม่จะถูกสร้างขึ้น

Deleting- ผู้ใช้สามารถหยุดชั่วคราว / ยกเลิกการปรับใช้โดยการลบก่อนที่จะเสร็จสิ้น การสร้างการปรับใช้เหมือนเดิมอีกครั้งจะดำเนินการต่อ

Rollback- เราสามารถย้อนกลับการปรับใช้หรือการปรับใช้ที่อยู่ระหว่างดำเนินการ ผู้ใช้สามารถสร้างหรืออัพเดตการปรับใช้โดยใช้DeploymentSpec.PodTemplateSpec = oldRC.PodTemplateSpec.

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

กลยุทธ์การปรับใช้ช่วยในการกำหนดว่า RC ใหม่ควรแทนที่ RC ที่มีอยู่อย่างไร

Recreate- คุณสมบัตินี้จะฆ่า RC ที่มีอยู่ทั้งหมดแล้วเปิดขึ้นมาใหม่ ส่งผลให้ใช้งานได้อย่างรวดเร็ว แต่จะส่งผลให้เกิดการหยุดทำงานเมื่อพ็อดเก่าไม่ทำงานและพ็อดใหม่ยังไม่เกิด

Rolling Update- คุณลักษณะนี้จะค่อยๆลด RC เก่าและนำมาใช้ใหม่ ส่งผลให้การปรับใช้งานช้า แต่ไม่มีการปรับใช้ ตลอดเวลามีฝักเก่าไม่กี่ฝักและฝักใหม่ไม่กี่ฝักในกระบวนการนี้

ไฟล์คอนฟิกูเรชันของ Deployment มีลักษณะดังนี้

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: Tomcatimage:
            tomcat: 8.0
            ports:
               - containerPort: 7474

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

สร้างการปรับใช้

$ kubectl create –f Deployment.yaml -–record
deployment "Deployment" created Successfully.

ดึงข้อมูลการปรับใช้

$ kubectl get deployments
NAME           DESIRED     CURRENT     UP-TO-DATE     AVILABLE    AGE
Deployment        3           3           3              3        20s

ตรวจสอบสถานะการปรับใช้

$ kubectl rollout status deployment/Deployment

การอัปเดตการปรับใช้

$ kubectl set image deployment/Deployment tomcat=tomcat:6.0

ย้อนกลับไปที่การปรับใช้ก่อนหน้า

$ kubectl rollout undo deployment/Deployment –to-revision=2