Kubernetes Service
เราพูดถึงการ Deploy Application บน Kubernetes ไปแล้ว ทีนี้ถ้า User ต้องการเข้ามาใช้ Application เราจริง ๆ จะทำไงละ เป็นที่มาของคำว่า Service ของ Kubernetes ครับ ซึ่ง Service เองก็มีหลาย Mode ให้เลือกใช้ แต่ในที่นี้ผมใช้ NodePort ก็จะมาแชร์ให้ฟังกันนะครับว่ามันใช้งานยังไง ปะลุยยย
ก่อนอื่นก็สร้าง Object Service ขึ้นมา แบบนี้
apiVersion: v1
kind: Service
metadata:
name: my-nginx
labels:
run: my-nginx
spec:
type: NodePort
ports:
- port: 8080
targetPort: 80
protocol: TCP
name: http
- port: 443
protocol: TCP
name: https
selector:
run: my-nginx
อธิบายเพิ่มเติม ตอนนี่เรากะลังสร้าง Service ชื่อ my-nginx
type : NodePort เป็นการบอกว่า Service ที่เราจะสร้างนั้นเป็น NodePort นะ นั้นก็คือการเปิด Port ของเครื่องให้เข้ามาใน Application ใน Pod ของเรา
ports เป็นการระบุ Port ว่า Service ของเรานั้นจะใช้ Port อะไรบ้าง
selector ตรงนี้หละจุดสำคัญของ Service จำเรื่องที่ผมเล่าเกี่ยวกับ Label ตอนสร้าง Pod หรือ Deployment ได้มั้ยครับ อันนี้หละจะเป็นตัวบอกว่า Service อันนี้จะมี Pod ไหนอยู่ภายใต้มันบ้าง เพื่อที่มันจะกรุปเป็น Service เดียวกัน เช่น Deployment นี้มี Label : run: my-nginx อยู่ Service นี้จะวนหา Pod ทุกตัวมาเก็บที่อยุ่ไว้ ถ้ามี 10 Pod ที่มี Label นี้ ก็จะถูกเก็บที่อยู่ไว้ที่นี้ ซึ่งเมื่อเราเรียกใช้ Service นี้ Service จะทำ Load-Balance แบบ Round-Robin ให้โดยอัตโนมัติ ทำให้เราสามารถรับ Load งานได้มากขึ้น
จากนั้นกด Upload แล้วกดไปที่เมนู Service ก็จะเห็น Service ที่เราสร้างขึ้นมา ก็กดเข้าไปดูในเซอวิสได้เลย