服务可以定义为一组逻辑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 : 它将在已部署节点上的静态端口上公开服务.将自动创建 NodeP 服务将路由到的 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