Análisis de tipos de servicios de Kubernrtes (tipos de servicios)

Análisis de tipos de servicios de Kubernrtes (tipos de servicios)

Charla de operación y mantenimiento para principiantes de Scofield

Primera foto

Análisis de tipos de servicios de Kubernrtes (tipos de servicios)
En un clúster de Kubernetes, el servicio selecciona el pod correspondiente a través del selector de etiquetas y luego reenvía la solicitud. Al ver una animación, puede experimentar directamente el selector de notas adhesivas
Análisis de tipos de servicios de Kubernrtes (tipos de servicios)

La relación entre pod, endpoints y servicio


1. Por ejemplo, veamos
primero el archivo de implementación y, principalmente, la parte de comentarios. Debido a que el archivo es demasiado largo, algunos campos del archivo yaml se eliminan en este artículo.


---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: gogs
  labels:       # 定义StatefulSet的标签,为后面Service选择器提供标签
    app: gogs
spec:
  serviceName: gogs
  replicas: 1
  selector:
    matchLabels:  # 标签选择器,StatefulSet通过该标签选择pod
      app: gogs
  template:
    metadata:
      labels:    # 定义pod的标签
        app: gogs
    spec:
      terminationGracePeriodSeconds: 180
.......
---
apiVersion: v1
kind: Service
metadata:
  name: gogs
  labels:
    app: gogs
spec:
  type: NodePort
  ports:
  - port: 3000
    targetPort: 3000
  selector:      # 标签匹配器,Service通过该标签匹配到对应的Pod
    app: gogs

2. Ver los resultados de ejecución


[root@k8s-node001 ~]# kubectl  get po,ep,svc
NAME                                READY   STATUS    RESTARTS   AGE
pod/gogs-0                          1/1     Running   0          3d1h

NAME                   ENDPOINTS                                                        AGE
endpoints/gogs         100.68.150.197:3000                                              3d1h

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/gogs         NodePort    10.106.102.74   <none>        3000:30526/TCP   3d1h

3. Ver pod, puntos finales, detalles del servicio a través de kubectl describe

Análisis de tipos de servicios de Kubernrtes (tipos de servicios)

4. La información relacionada se puede ver en la figura anterior:
1. La IP de Pod y Endpoint es la misma. Endpoint se usa para mapear aquellos pods que pueden proporcionar servicios al mundo exterior. Si el estado de ejecución del pod no es, No se producirá el punto final
2. La relación entre StatefulSet y Pod se relaciona a través del selector de etiquetas
3. El servicio puede entenderse simplemente como un LoadBalancer integrado en Kubernetes, y su función es proporcionar equilibrio de carga para varios Pods.
4. El servicio usa la aplicación de etiquetas: gogs para que coincida con el Pod que necesita para equilibrar la carga

Bueno, una breve introducción a la relación entre pod, endpoints y servicio. A continuación, introduzcamos varios tipos de servicios en Kubernetes.

ClusterIP


ServiceType expuesto por el servicio IP del clúster interno, seleccione el valor, el servicio solo se puede acceder dentro del clúster, que es el
inconveniente predeterminado : el servicio solo se puede acceder dentro del clúster
castañas


apiVersion: v1
kind: Service
metadata:
  name: gogs-clusterip
spec:
  type: ClusterIP
  ports:
  - port: 3000
    targetPort: 3000
  selector:
    app: gogs

resultado


NAME             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
gogs-clusterip   ClusterIP   10.104.1.9      <none>        3000/TCP         2m11s

Se puede ver que 10.104.1.9 es una IP dentro del clúster y no se puede acceder fuera del clúster.

NodePort


Si el campo de tipo se establece en NodePort, Kubernetes asignará puertos en el rango especificado (predeterminado: 30000-32767). Cada nodo utilizará como proxy el puerto asignado aleatoriamente al servicio.
Levantar castañas


apiVersion: v1
kind: Service
metadata:
  name: gogs
spec:
  type: NodePort
  ports:
  - port: 3000
    targetPort: 3000
  selector:
    app: gogs

resultado


NAME             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
gogs             NodePort    10.106.102.74   <none>        3000:30526/TCP   3d2h

Como puede ver aquí, el puerto 30526 se asigna aleatoriamente y ahora se puede acceder al servicio a través de la IP + 30526 de cualquier nodo del clúster.

Ingreso


Ingress expone rutas HTTP y HTTPS desde fuera del clúster a servicios en el clúster. El enrutamiento del tráfico se controla mediante reglas definidas en el recurso Ingress.
Ingress se puede configurar como un servicio para proporcionar URL accesibles desde el exterior, equilibrar la carga del tráfico, terminar SSL / TLS y proporcionar capacidades de alojamiento virtual basadas en nombres. El controlador Ingress generalmente es responsable de implementar Ingress a través de un equilibrador de carga, aunque también se puede configurar con enrutadores de borde u otras interfaces para ayudar a procesar el tráfico.
castaña


---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: gogs-gogs
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - host: gogs.test.cn
    http:
      paths:
      - path: /
        backend:
          serviceName: gogs
          servicePort: 3000

resultado


NAME    CLASS    HOSTS             ADDRESS       PORTS   AGE
gogs-gogs   <none>    gogs.test.cn   10.26.25.21   80      3d19h

Ahora puede acceder a gogs a través del nombre de dominio gogs.test.cn.
Tenga en cuenta que gogs.test.cn necesita agregar resolución DNS a la IP de la máquina donde se encuentra el ingreso.

LoadBalancer


Al crear un servicio, puede optar por crear automáticamente un equilibrador de carga de red en la nube. Esto proporciona una dirección IP de acceso externo que puede distribuir el tráfico a los puertos correctos en los nodos del clúster. LoadBalancer generalmente lo proporcionan los proveedores de nube pública y no necesita ser autoconstruido, como se presenta aquí.

Análisis de tipos de servicios de Kubernrtes (tipos de servicios)
PD: los artículos de seguimiento se sincronizarán con dev.kubeops.net

Nota: Las imágenes del artículo son de Internet. Si hay alguna infracción, comuníquese conmigo para eliminarla a tiempo.

Supongo que te gusta

Origin blog.51cto.com/15060545/2657319
Recomendado
Clasificación