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