📜  Kubernetes-服务

📅  最后修改于: 2020-11-01 04:12:21             🧑  作者: Mango


可以将服务定义为Pod的逻辑集合。可以将其定义为Pod顶部的抽象,它提供了可以访问Pod的单个IP地址和DNS名称。使用服务,可以非常轻松地管理负载平衡配置。它可以帮助吊舱非常容易地扩展。

服务是Kubernetes中的REST对象,其定义可以发布到Kubernetes主服务器上的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

负载均衡器-它使用云提供商的负载均衡器。 NodePortClusterIP服务是自动创建的,外部负载均衡器将路由到该服务。

完整服务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