Kubernetes - บริการ
บริการสามารถกำหนดเป็นชุดของพ็อดเชิงตรรกะได้ สามารถกำหนดให้เป็นนามธรรมที่ด้านบนของพ็อดซึ่งมีที่อยู่ IP เดียวและชื่อ DNS ที่สามารถเข้าถึงพ็อดได้ ด้วยบริการการจัดการการกำหนดค่าการจัดสรรภาระงานทำได้ง่ายมาก ช่วยให้ฝักปรับขนาดได้ง่ายมาก
บริการคือออบเจ็กต์ REST ใน Kubernetes ซึ่งคำจำกัดความสามารถโพสต์ไปยัง Kubernetes apiServer บน Kubernetes ต้นแบบเพื่อสร้างอินสแตนซ์ใหม่
บริการโดยไม่ต้องเลือก
apiVersion: v1
kind: Service
metadata:
name: Tutorial_point_service
spec:
ports:
- port: 8080
targetPort: 31999
การกำหนดค่าข้างต้นจะสร้างบริการที่มีชื่อ Tutorial_point_service
ไฟล์กำหนดค่าบริการพร้อมตัวเลือก
apiVersion: v1
kind: Service
metadata:
name: Tutorial_point_service
spec:
selector:
application: "My Application" -------------------> (Selector)
ports:
- port: 8080
targetPort: 31999
ในตัวอย่างนี้เรามีตัวเลือก ดังนั้นในการถ่ายโอนการเข้าชมเราจำเป็นต้องสร้างปลายทางด้วยตนเอง
apiVersion: v1
kind: Endpoints
metadata:
name: Tutorial_point_service
subnets:
address:
"ip": "192.168.168.40" -------------------> (Selector)
ports:
- port: 8080
ในโค้ดด้านบนเราได้สร้างจุดสิ้นสุดซึ่งจะกำหนดเส้นทางการรับส่งข้อมูลไปยังปลายทางที่กำหนดเป็น“ 192.168.168.40:8080”
การสร้างบริการหลายพอร์ต
apiVersion: v1
kind: Service
metadata:
name: Tutorial_point_service
spec:
selector:
application: “My Application” -------------------> (Selector)
ClusterIP: 10.3.0.12
ports:
-name: http
protocol: TCP
port: 80
targetPort: 31999
-name:https
Protocol: TCP
Port: 443
targetPort: 31998
ประเภทของบริการ
ClusterIP- สิ่งนี้ช่วยในการ จำกัด บริการภายในคลัสเตอร์ จะแสดงบริการภายในคลัสเตอร์ Kubernetes ที่กำหนด
spec:
type: NodePort
ports:
- port: 8080
nodePort: 31999
name: NodeportService
NodePort- จะแสดงบริการบนพอร์ตแบบคงที่บนโหนดที่ปรับใช้ กClusterIP บริการซึ่ง NodePortบริการจะกำหนดเส้นทางถูกสร้างขึ้นโดยอัตโนมัติ สามารถเข้าถึงบริการได้จากภายนอกคลัสเตอร์โดยใช้ไฟล์NodeIP:nodePort.
spec:
ports:
- port: 8080
nodePort: 31999
name: NodeportService
clusterIP: 10.20.30.40
Load Balancer - ใช้ตัวจัดสรรภาระงานบนคลาวด์ NodePort และ ClusterIP บริการจะถูกสร้างขึ้นโดยอัตโนมัติซึ่งตัวจัดสรรภาระงานภายนอกจะกำหนดเส้นทาง
บริการเต็มรูปแบบ yamlไฟล์ที่มีประเภทบริการเป็น Node Port ลองสร้างด้วยตัวคุณเอง
apiVersion: v1
kind: Service
metadata:
name: appname
labels:
k8s-app: appname
spec:
type: NodePort
ports:
- port: 8080
nodePort: 31999
name: omninginx
selector:
k8s-app: appname
component: nginx
env: env_name