ตัวอย่างไฟล์ yaml ของ replicaset
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: myapp-replicaset
labels:
app: myapp
type: front-end
spec:
replicas: 3
selector:
matchLabels:
type: front-end
template:
metadata:
name: myapp-pod
labels:
app: myapp
type: front-end
spec:
containers:
- name: nginx-container
image: nginx
จะมีโครงสร้างอยู่ 4 ส่วนหลักเหมือน pod คือ apiVersion, kind, metadata, spec แต่จะมีส่วนที่แตกต่างกันดังนี้
- appVersion ตรงนี้ ค่าที่ใส่จะต้องมี apps/ นำหน้าเสมอ เช่น apps/v1
- tag ที่อยู่ภายใต้ template เขียนเหมือนเวลาเราเขียน metadata ของ pod ที่ต้องการได้เลย
- replicas ตรงนี้เป็นการกำหนดค่า default จำนวน pod ว่าต้องการให้มีเท่าไหร่
- selector ตรงนี้ต้องมี เพราะ replicaset สามารถเลือกกลุ่มที่ต้องการจั้ดการได้ เช่นในตัวอย่าง matchLabels = "type: front-end" replicaset จะเลือกเฉพาะที่มีการกำหนด label เป็นค่านี้เท่านั้น
- สร้าง Replicaset เราสามารถสร้าง replicaset ด้วย command
kubectl apply -f replicaset-definition.yaml
ลองเช็คดูว่ามี pod ถูกสร้างขึ้นมา 3 pods จริงหรือไม่
ทดลองลบ pod ออก 1 ตัว แล้วเช็คดูใหม่ว่า ยังมี 3 pods เท่ากับที่กำหนดไว้ใน replacaset หรือไม่
จะเห็นได้ว่าถึงจะลบ pod ออกไป แต่พอ เช็คดูใหม่ ก็ยังมี 3 pods เท่าเดิมทดลองเพิ่มจำนวน pods ขึ้นเป็น 5
โดยแก้ yaml file
สั่ง kubectl apply -f replicaset-definition.yaml
จะเห็นว่า เราสามารถเพิ่มจำนวน pod เป็น 5 pods ได้ไม่แก้ yaml เราสามารถสั่งผ่าน command line โดยอ้างอิง ชื่อไฟล์ หรือ ชื่อ replicaset ได้เลย
kubectl scale --replicas=4 -f replicaset-definition.yaml
kubectl scale --replicas=3 replicaset myapp-replicaset
- เรียกดูว่าใน cluster มี replicaset ใด ทำงานอยู่บ้าง
kubectl get replicaset
- ดูรายละเอียดของ replicaset
kubectl describe replicaset myapp-replicaset
- ลบ replicaset
kubectl delete replicaset myapp-replicaset
จะเห็นว่า เมื่อลบ replicaset แล้ว pod ที่ถูกสร้างจาก replicaset นั้นจะถูกลบออกไปด้วย
Top comments (0)