Kubernetes – 服务
Kubernetes – 服务
服务可以定义为一组逻辑 pod。它可以被定义为 Pod 顶部的抽象,它提供一个单一的 IP 地址和 DNS 名称,通过它可以访问 Pod。使用 Service,可以非常轻松地管理负载平衡配置。它可以帮助 Pod 非常轻松地扩展。
服务是 Kubernetes 中的 REST 对象,其定义可以发布到 Kubernetes master 上的 Kubernetes apiServer 以创建新实例。
没有选择器的服务
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 – 它将在已部署节点的静态端口上公开服务。NodePort服务将路由到的ClusterIP服务会自动创建。可以使用NodeIP:nodePort从集群外部访问该服务。
spec:
ports:
- port: 8080
nodePort: 31999
name: NodeportService
clusterIP: 10.20.30.40
负载均衡器– 它使用云提供商的负载均衡器。NodePort和ClusterIP服务是自动创建的,外部负载均衡器将路由到这些服务。
服务类型为节点端口的完整服务yaml文件。尝试自己创建一个。
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