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. NodePort và ClusterIP 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