La relación entre la vaina, replicaSet, distribución, servicio Kubernetes objeto de recursos

La relación entre el Pod, replicaSet, despliegue, Servicio siguiente figura.

en:

Pod son combinaciones de uno o más contenedores, estos contenedores memoria compartida, y el espacio de nombre de red, cómo ejecutar y regular. Pod Kubernetes es la unidad más pequeña que puede ser desplegado. Chino se traduce guisantes de palabra vaina, contenedor ventana acoplable es como correr en unos granos de la vaina de guisante.

ReplicaSet:
Déjame hablar replicación del controlador. papel de la replicación del controlador es asegurar la vaina de ejecución como el número de copias especificado.
ReplicaSet controlador de replicación es una versión mejorada. La única diferencia entre el apoyo replicaSet y el controlador de replicación para los selectores. La replicación del controlador sólo es compatible con la ecuación basada en el selector (= env dev o el medio ambiente! = Qa), pero replicaSet también es compatible con el nuevo, basado en el selector de colección (versión en (v1.0, v2.0) o env Notin (dev, qa )).
En yaml número de expediente de declaración de copias spec.replicas por la vaina.

El despliegue:
el despliegue de la gestión de la vaina, replicaSet, rodando actualización y reversión se puede implementar aplicaciones, ampliación y reducción de volumen.

Servicio:
Sólo una pregunta, replicaSet define el número de vaina es 2, cuando una vaina por alguna razón se detuvo, replicaSet crea una nueva vaina, número de vainas con el fin de asegurar que la operación es siempre 2. Pero cada vaina tiene su propia solicitud de IP, aplicaciones para usuario no sabe lo que es la nueva ip vaina de forma que la solicitud se envía al extremo frontal de la nueva cápsula en ella?
La respuesta es utilizar Servicio
K8S de servicio define la dirección de entrada de acceso de un servicio, un conjunto de instancia de clúster de Pod copia que consiste acceso distal aplicación detrás por la petición de acceso dirección de entrada desde el exterior del recipiente respectivo es el equilibrio de carga en el extremo posterior de la aplicaciones. Entre el Servicio y su back-end copia de la vaina de la agrupación se consigue mediante la asociación de selector de etiquetas.
Por favor, habla humana: Solicitud para el usuario no se envía directamente a la vaina, pero envió al Servicio, Servicio luego envía la solicitud a la vaina.

Para resumir: Pod es la gestión replicaSet, replicaSet controlar el número de vainas; replicaSet sido Deployment Management, despliegue consola de control para actualizar las aplicaciones, reversión, por supuesto, también puede controlar el número de vainas. Servicio proporciona una entrada fija, front-end unificado responsable de reenviar la solicitud a la vaina.

práctica

Definir un archivo myapp.yaml

apiVersion: apps/v1
# 声明一个Deployment资源对象
kind: Deployment
metadata:
  name: deployment-myapp
spec:
# 通过replicas声明pod个数是2  
  replicas: 2
# 通过标签选择被控制的pod    
  selector:
    matchLabels:
      app: myapp
# 在template中定义pod      
  template:
    metadata:
# 给pod打上标签app=myapp    
      labels:
        app: myapp
    spec:
      containers:
# 声明容器名称,注意不是pod名称,pod名称应该定义在metadata中
      - name: myapp
        image: ikubernetes/myapp:v1
        ports:
        - name: http
          containerPort: 80
# 在一个yaml文件中通过---分割多个资源对象          
---
apiVersion: v1
# 声明一个Service资源对象
kind: Service
metadata:
  name: service-myapp
spec:
# service-myapp将选择标签包含app=myapp的pod
  selector:
    app: myapp
  ports:
  - name: http
# Service监听端口  
    port: 80
# 转发到后端Pod的端口号   
    targetPort: 80

Esta lista despliegue de recursos 

kubectl aplicar myapp.yaml -f

Mirar un cuadro muy interesante

archivo myapp.yaml declara el nombre de la implementación, sin replicaSet declaración, el nombre de la vaina. Pero kubernetes darán automáticamente replicaSet, Vaina del nombre.

nombre de la implantación es el despliegue a miaplicacion

Nombre replicaSet es el despliegue a miaplicacion-5fdb5f69f, en realidad, más el nombre de hash de implementación de valor de la vaina en plantillas

Pod nombre de la implantación-miaplicacion-5fdb5f69f-njrb6, despliegue-miaplicacion-5fdb5f69f-whpwg, en realidad el nombre de un valor hash más replicaSet.

Uso kubectl describen SVC-servicio miaplicacion detalles Comando de mirada servicio miaplicacion.

Se puede ver la dirección IP de servicio-miaplicacion es 10.97.41.88. El envío de una solicitud será enviada a 10.97.41.88:80 10.244.1.5:80 o 10.244.2.2:80

Mira:

nombre de host primera solicitud directa vaina, la adquisición vaina

rizo 10.244.1.5:80/hostname.html

rizo 10.244.2.2:80/hostname.html

A continuación, las solicitudes de servicio-miaplicacion, vaina servicio miaplicacion cargará solicitud al backend

rizo 10.97.41.88:80/hostname.html

 

También hay una cosa muy interesante. vaina puede hacer ping, pero no un ping servic

¿Por qué es esto?

Respuesta: Debido a que el servicio es en realidad el reenvío de reglas iptables o IPVS, que las reglas no son compatibles con el protocolo ICMP, por lo que el ping falla ligeramente.

 

 

 

 

 

 

Publicado 51 artículos originales · elogios ganado 14 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/u010606397/article/details/90752262
Recomendado
Clasificación