Оглавление
Brendan Burns. Guía práctica de Kubernetes
Guía práctica de Kubernetes
Guía práctica de Kubernetes
Contenidos
Prefacio. A quién va dirigido este libro
Por qué hemos escrito este libro
Exploración del libro
Convenciones que se utilizan en el libro
Uso de los ejemplos de código
Reconocimientos
CAPÍTULO 1. Configuración de un servicio básico
Visión general de la aplicación
Gestión de archivos de configuración
Creación de un servicio replicado mediante Deployments
Mejores prácticas para la gestión de imágenes
Creación de una aplicación replicada
Configuración de Ingress externa para tráfico HTTP
Configuración de la aplicación con ConfigMaps
Gestión de autenticación con Secrets
Despliegue de una sencilla base de datos con estado
Creación de un equilibrador de carga TCP con Services
Uso de Ingress para enrutar el tráfico a un servidor de archivos estáticos
Parametrización de la aplicación utilizando Helm
Mejores prácticas en el despliegue de servicios
Resumen
CAPÍTULO 2. Flujos de trabajo para desarrolladores
Objetivos
Creación de un clúster de desarrollo
Configuración de un clúster compartido por varios desarrolladores
Registro de usuarios
Creación y dotación de seguridad a un espacio de nombres
Administración de espacios de nombres
Servicios a nivel de clúster
Habilitación de flujos de trabajo para desarrolladores
Instalación inicial
Preparación de la fase de desarrollo activo
Preparación de pruebas y depuración
Mejores prácticas en el establecimiento de un entorno de desarrollo
Resumen
CAPÍTULO 3. Monitorización y recopilación de registros en Kubernetes
Métricas versus registros
Técnicas de monitorización
Formas de monitorización
Visión general de las métricas en Kubernetes
cAdvisor
Servidor de métricas
kube-state-metrics
¿Qué métricas debemos monitorizar?
Herramientas de monitorización
Monitorización en Kubernetes con Prometheus
Descripción general de la recopilación de registros
Herramientas para la recopilación de registros
Recopilación de registros mediante la pila EFK
Alertas
Mejores prácticas para la monitorización, recopilación de registros y alertas
Monitorización
Recopilación de registros
Alertas
Resumen
CAPÍTULO 4. Configuración, Secrets y RBAC
Configuración mediante ConfigMaps y Secrets
ConfigMaps
Secrets
Mejores prácticas habituales para las API de ConfigMap y Secrets
Mejores prácticas específicas en Secrets
RBAC
Manual de RBAC
Sujetos
Reglas
Roles
RoleBindings
Mejores prácticas de RBAC
Resumen
CAPÍTULO 5. Integración continua, pruebas y despliegue
Control de versiones
Integración continua
Pruebas
Compilación de contenedores
Etiquetados de imágenes de contenedores
Despliegue continuo
Estrategias de despliegue
Pruebas en producción
Configuración de una pipeline y realización de un experimento de caos
Configuración de CI
Configuración de CD
Realización de la actualización de puesta en marcha
Un sencillo experimento de caos
Mejores prácticas para CI/CD
Resumen
CAPÍTULO 6. Versionado, versiones de lanzamiento y puesta en marcha
Versionado
Versiones de lanzamiento
Puesta en marcha
Todo junto
Mejores prácticas para versionado, versiones de lanzamiento y puesta en marcha
Resumen
CAPÍTULO 7. Distribución y preproducción de aplicaciones a nivel mundial
Distribución de la imagen
Parametrización del despliegue
Tráfico con equilibrio de carga a nivel mundial
Puesta en marcha confiable de software a nivel mundial
Validación previa al despliegue
Región de canario
Identificación de los tipos de región
Elaboración de la puesta en marcha a nivel global
Cuando algo sale mal
Mejores prácticas de puesta en marcha a nivel mundial
Resumen
CAPÍTULO 8. Administración de recursos
Planificador de Kubernetes
Predicados
Prioridades
Técnicas avanzadas de planificación
Afinidad y antiafinidad de cápsulas
nodeSelector
Manchas y tolerancias
Administración de recursos de cápsulas
Solicitud de recursos
Límites a los recursos y calidad de servicio de cápsulas
PodDisruptionBudgets
Mínimo disponible
Máximo no disponible
Administración de recursos mediante espacios de nombres
ResourceQuota
LimitRange
Escalado de clúster
Escalado manual
Escalado automático de clúster
Escalado de aplicaciones
Escalado con HPA
HPA con métricas personalizadas
Vertical Pod Autoscaler
Mejores prácticas en la gestión de recursos
Resumen
CAPÍTULO 9. Interconexión, seguridad en red y malla de servicios
Principios de red en Kubernetes
Complementos de red
Kubenet
Mejores prácticas en Kubenet
El complemento CNI
Mejores prácticas en CNI
Servicios en Kubernetes
Tipo de servicio ClusterIP
Tipo de servicio NodePort
Tipo de servicio ExternalName
Tipo de servicio LoadBalancer
Ingress y controladores Ingress
Administración del protocolo HTTP
Mejores prácticas en servicios y controladores Ingress
Políticas de seguridad de red
Mejores prácticas en política de red
Mallas de servicios
Mejores prácticas en malla de servicios
Resumen
CAPÍTULO 10. Seguridad de cápsulas y contenedores
API de PodSecurityPolicy
Habilitación de PodSecurityPolicy
Anatomía de PodSecurityPolicy
Retos de PodSecurityPolicy
Políticas con incumplimientos razonables
Mucho esfuerzo
¿Están interesados nuestros desarrolladores en aprender PodSecurityPolicy?
La depuración es engorrosa
¿Confiamos en artefactos fuera de nuestro control?
Mejores prácticas en PodSecurityPolicy
Siguientes pasos en PodSecurityPolicy
Aislamiento de tareas y RuntimeClass
Utilización de RuntimeClass
Aplicaciones del tiempo de ejecución
Mejores prácticas en aislamiento de tareas y RuntimeClass
Otras consideraciones sobre la seguridad
Controladores de admisión
Herramientas de detección de intrusiones y anomalías
Resumen
CAPÍTULO 11. Política y gobierno del clúster
Por qué la política y la gestión son importantes
¿En qué sentido esta política es diferente?
Motor de políticas nativas en la nube
Introducción a Gatekeeper
Ejemplos de políticas
Terminología Gatekeeper
Restricción
Rego
Plantilla de restricción
Definición de plantillas de restricción
Definición de restricciones
Replicación de datos
UX (Experiencias de usuario)
Auditoría
Familiarizándonos con Gatekeeper
Siguientes pasos en Gatekeeper
Mejores prácticas en política y gestión
Resumen
CAPÍTULO 12. Administración de varios clústeres
¿Por qué varios clústeres?
Consideraciones sobre la utilización de varios clústeres en el diseño
Administración de despliegues de varios clústeres
Patrones de despliegue y administración
Enfoque de GitOps para la administración de clústeres
Herramientas de administración de varios clústeres
Federation de Kubernetes
Mejores prácticas en la gestión de un conjunto de clústeres
Resumen
CAPÍTULO 13. Integración de servicios externos y Kubernetes
Importación de servicios a Kubernetes
Servicios sin selector para direcciones IP fijas
Servicios basados en CNAME para nombres DNS fijos
Enfoques basados en controlador activo
Exportación de servicios desde Kubernetes
Exportación de servicios mediante equilibradores de carga internos
Exportación de servicios en NodePorts
Integración entre máquinas externas y Kubernetes
Compartición de servicios entre Kubernetes
Herramientas de terceros
Mejores prácticas en conexión de clústeres y servicios externos
Resumen
CAPÍTULO 14. Ejecución de aprendizaje automático en Kubernetes
¿Por qué Kubernetes es ideal para el aprendizaje automático?
Flujo de trabajo del aprendizaje automático
Aprendizaje automático para administradores de clúster de Kubernetes
Entrenamiento del modelo en Kubernetes
Entrenamiento del primer modelo en Kubernetes
Entrenamiento distribuido en Kubernetes
Restricciones de recursos
Hardware especializado
Planificación de particularidades
Bibliotecas, controladores y módulos de kernel
Almacenamiento
Almacenamiento y distribución del conjunto de datos entre nodos esclavos durante el entrenamiento
Puntos de control y modelos de grabación
Interconexión
Protocolos especializados
Preocupaciones del científico de datos
Mejores prácticas en aprendizaje automático en Kubernetes
Resumen
CAPÍTULO 15. Creación de patrones de aplicaciones de alto nivel sobre Kubernetes
Enfoques para desarrollar abstracciones de alto nivel
Extensión de Kubernetes
Extensión de clústeres de Kubernetes
Ampliación de la experiencia de usuario de Kubernetes
Consideraciones de diseño en la creación de plataformas
Apoyo a la exportación de una imagen de contenedor
Soporte a los mecanismos existentes de servicios y descubrimiento de servicios
Mejores prácticas en la creación de plataformas de aplicaciones
Resumen
CAPÍTULO 16. Gestión de aplicaciones con estado y apátridas
Volúmenes y montajes de volumen
Mejores prácticas en volúmenes
Almacenamiento en Kubernetes
PersistentVolume
PersistentVolumeClaims
Clases de almacenamiento
Interfaz de almacenamiento de contenedores y FlexVolume
Mejores prácticas en almacenamiento de Kubernetes
Aplicaciones con estado
StatefulSets
Operadores
Mejores prácticas en StatefulSet y Operators
Resumen
CAPÍTULO 17. Control de admisión y autorización
Control de admisión
¿Qué son?
¿Por qué son importantes?
Tipos de controladores de admisión
Configuración de webhooks de admisión
Mejores prácticas en control de admisión
Autorización
Módulos de autorización
ABAC
RBAC
Webhook
Mejores prácticas de autorización
Resumen
CAPÍTULO 18. Conclusión