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