开发手册 欢迎您!
软件开发者资料库

Kubernetes - 服务

Kubernetes服务 - 从简单和简单的步骤学习Kubernetes,从基本到高级概念,包括概述,架构,设置,图像,作业,标签和选择器,命名空间,节点,服务,Pod,复制控制器,副本集,Deplyoments,卷,秘密,网络政策,API,Kubectl,Kubectl命令,创建应用程序,应用程序Deplyoment,自动扩展,仪表板设置,监控。

服务可以定义为一组逻辑pod.它可以定义为pod顶部的抽象,它提供单个IP地址和DNS名称,通过它可以访问pod.使用Service,可以非常轻松地管理负载平衡配置.它可以帮助pod轻松扩展.

服务是Kubernetes中的REST对象,其定义可以发布到Kubernetes master上的Kubernetes apiServer以创建新实例.

没有选择器的服务

apiVersion: v1kind: Servicemetadata:   name: Tutorial_point_servicespec:   ports:   - port: 8080   targetPort: 31999

以上配置将创建一个名为Tutorial_point_service的服务.

带选择器的服务配置文件

apiVersion: v1kind: Servicemetadata:   name: Tutorial_point_servicespec:   selector:      application: "My Application" -------------------> (Selector)   ports:   - port: 8080   targetPort: 31999

在这个例子中,我们有一个选择器;所以为了传输流量,我们需要手动创建一个端点.

apiVersion: v1kind: Endpointsmetadata:   name: Tutorial_point_servicesubnets:   address:      "ip": "192.168.168.40" -------------------> (Selector)   ports:      - port: 8080

在上面的代码中,我们创建了一个端点,将流量路由到定义为"192.168.168.40:8080"的端点.

创建多端口服务

apiVersion: v1kind: Servicemetadata:   name: Tutorial_point_servicespec:   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 : 它将在已部署节点上的静态端口上公开服务.将自动创建 NodeP 服务将路由到的 ClusterIP 服务.可以使用 NodeIP:nodePort 从集群外部访问该服务.

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

负载均衡器 : 它使用云提供商的负载均衡器.外部负载均衡器将自动创建 NodePort ClusterIP 服务.

完整服务 yaml 服务类型为节点端口的文件.尝试自己创建一个.

apiVersion: v1kind: Servicemetadata:   name: appname   labels:      k8s-app: appnamespec:   type: NodePort   ports:   - port: 8080      nodePort: 31999      name: omninginx   selector:      k8s-app: appname      component: nginx      env: env_name