Kubernetes - Dịch vụ

Một dịch vụ có thể được định nghĩa là một tập hợp các nhóm hợp lý. Nó có thể được định nghĩa là một phần trừu tượng trên đầu nhóm cung cấp một địa chỉ IP và tên DNS duy nhất để nhóm có thể được truy cập. Với Service, rất dễ dàng quản lý cấu hình cân bằng tải. Nó giúp các nhóm mở rộng quy mô rất dễ dàng.

Dịch vụ là một đối tượng REST trong Kubernetes mà định nghĩa của nó có thể được đăng lên Kubernetes apiServer trên Kubernetes master để tạo một phiên bản mới.

Dịch vụ không có bộ chọn

apiVersion: v1
kind: Service
metadata:
   name: Tutorial_point_service
spec:
   ports:
   - port: 8080
   targetPort: 31999

Cấu hình trên sẽ tạo một dịch vụ với tên Tutorial_point_service.

Tệp cấu hình dịch vụ với bộ chọn

apiVersion: v1
kind: Service
metadata:
   name: Tutorial_point_service
spec:
   selector:
      application: "My Application" -------------------> (Selector)
   ports:
   - port: 8080
   targetPort: 31999

Trong ví dụ này, chúng ta có một bộ chọn; vì vậy để chuyển lưu lượng, chúng ta cần tạo một điểm cuối theo cách thủ công.

apiVersion: v1
kind: Endpoints
metadata:
   name: Tutorial_point_service
subnets:
   address:
      "ip": "192.168.168.40" -------------------> (Selector)
   ports:
      - port: 8080

Trong đoạn mã trên, chúng tôi đã tạo một điểm cuối sẽ định tuyến lưu lượng đến điểm cuối được định nghĩa là “192.168.168.40:8080”.

Tạo dịch vụ đa cổng

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

Các loại dịch vụ

ClusterIP- Điều này giúp hạn chế dịch vụ trong cụm. Nó cho thấy dịch vụ trong cụm Kubernetes được xác định.

spec:
   type: NodePort
   ports:
   - port: 8080
      nodePort: 31999
      name: NodeportService

NodePort- Nó sẽ hiển thị dịch vụ trên một cổng tĩnh trên nút được triển khai. AClusterIP dịch vụ, mà NodePortdịch vụ sẽ định tuyến, được tạo tự động. Dịch vụ có thể được truy cập từ bên ngoài cụm bằng cách sử dụngNodeIP:nodePort.

spec:
   ports:
   - port: 8080
      nodePort: 31999
      name: NodeportService
      clusterIP: 10.20.30.40

Load Balancer - Nó sử dụng bộ cân bằng tải của nhà cung cấp đám mây. NodePortClusterIP các dịch vụ được tạo tự động mà bộ cân bằng tải bên ngoài sẽ định tuyến.

Một dịch vụ đầy đủ yamltệp có loại dịch vụ là Cổng Node. Cố gắng tạo một cái cho mình.

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