Libro - Kubernetes (PDF)
52,00 €
Impuestos incluidos
Condiciones de envío
Condiciones de devolución
Contenidos
- Kubernetes (k8s)
- Origen
- Introducción
- Características
- Restricciones
- Arquitectura
- Visión general
- Master
- Kube-Apiserver
- Cluster store (etcd)
- Kube-Controller-Manager
- Resúmen
- Nodos
- Kubelet
- Motor de contenedores
- Kube-Proxy
- Modelo declarativo y estado del clúster
- Pods
- Características
- Ciclo de vida
- Despliegues
- Servicios
- ReplicationControllers
- Deployments
- Arquitectura KubeScheduler
- API Primitives
- Manifiestos YAML
- Estructura básica de un manifiesto YAML
- Ventajas del uso de manifiestos YAML
- Obtención de YAML de objetos deplegados en kubernetes
- Node
- Requisitos Hardware
- Requisitos Software
- Requisitos de Red
- Tipos de Nodos
- CNI (Container Network Interface)
- Motor de contenedores CRI-O
- ¿Qué es CRI-O?
- ¿Quién está contribuyendo al proyecto?
- Lab: Instalación del motor de contenedores CRI-O (Fedora)
- Instalación del runtime CRI-O
- Lab: Instalación Kubernetes (1 master + 2 minions) (Fedora)
- Instalación manual con kubeadm
- Configuración de master y nodos
- Configurando el IP Forwarding
- Deshabilitando la memoria SWAP
- Instalando los paquetes de Kubernetes
- Desactivando systemd-resolved
- Inicio del clúster
- Configurando el acceso al clúster en la máquina master
- Añadiendo nodos de computación
- Comprobando el inventario de nodos
- Driver de red (Weave)
- ¿Cómo funciona?
- Configuración Simple
- Descubrimiento DNS
- Lab: Instalación del Drvier de red Weave en Kubernetes
- Aplicando el manifiesto
- Comprobando el inventario de los nodos
- Kubectl
- Describiendo el estado de nodos
- Listando los nodos
- Etiquetando roles de nodos
- Obteniendo información del clúster
- Mantenimiento de los nodos
- Operación de Acordonado (Cordon)
- Operación de Desacordonado (uncordon)
- Operación de Drenado (Drain)
- Operación de Backup & Restauración
- Lab: Mantenimiento de los nodos
- Operación de acordonamiento del nodo
- Operación de drenado del nodo
- Eliminación de nodo + generación de nuevo token de acceso
- Backup del componente etcd
- Restaurando backup del componenete etcd
- Actualización de clúster de Kubernetes
- Comprobando la versión del agente kubelet
- Comprobando la versión de kubectl + kube-api-server
- Comprobando la versión del kube-proxy
- Comprobando la versión del kube-controller-manager
- Actualizando paquetes del sistema, sin tocar kubernetes
- Actualizando kubernetes (nodos maestros)
- Instalando una versión específica de kubeadm
- Actualizando mediante kubeadm
- Actualizando la versión de kubectl
- Actualizando el agente kubelet
- Comprobando la versión de kubernetes en los nodos
- Actualizando kubernetes (Nodos Minions)
- Pods
- Implicaciones de múltiples contenedores en un mismo Pod
- Comunicaciones
- Comunicación interpods (Mismo Nodo)
- Comunicación interpods (Distintos Nodos)
- Ciclo de vida
- Acotamiento de recursos
- Lab: Pods
- Creando 1 Pod con 1 container
- Listando los Pods
- Actualizando el Pod que tiene desplegado 1 container
- Creando 1 Pod con 2 Containers
- Añadiendo variables de entorno al Pod
- Describiendo el Pod
- Obteniendo manifiesto YAML a partir de un objeto desplegado en kubernetes
- Probando conexiones HTTP con el Pod
- Conectándonos dentro del pod (Origen Mode :D)
- Obteniendo logs del Pod
- Attach a un Pod
- Forwarding de puerto a un Pod
- Selección del nodo para el Pod
- Afinidad del Pod (Node Affinity)
- Health Check: livenessProbe
- Health Check: readinessProbe
- Health Check: startupProbe + sideCar
- Límites de recursos
- Eliminando los Pods
- Autoescalado
- Horizontal Pod AutoScaler
- ¿Cómo funciona?
- Horizontal Pod AutoScaler
- Lab: Autoescalado Horizontal Pod AutoScaler
- Creando manifiesto de autoescalado
- Obteniendo la IP del servicio
- Realizando peticiones con JMeter
- Observado el comportamiento del auto-escalado
- Jobs
- Tipos de Jobs
- Tratando errores en contenedores fallidos
- Política backofflLimit
- Limpieza de Jobs finalizados
- Terminación de Jobs
- Limpieza automa´tica de Jobs finalizados
- Lab: Jobs
- Creando un Job que calcula 2000 dígitos del número Pi
- Creando un Job que calcula 2000 dígitos del número Pi (Reintentos + fallo provocado)
- Creando Jobs en paralelo (Cantidad de ejecuciones)
- Crando Jobs en paralelo (Cantidad de ejecuciónes + Cantidad de paralelismo)
- Creando Jobs (Modo de oepración, cola de procesos)
- Creando Jobs (Autolimpieza de Job finalizado)
- Lab: Kube-Scheduler
- Creando nuestro scheduler personalizado
- Creando el ClusterRole
- Creando el ClusterRoleBinding
- Creando el Rol
- Creando el RoleBinding
- Editando el kube-scheduler, activando nuestro scheduler
- Comprobando el scheduler
- Asiganndo pods a scheduler
- Visualizando eventos (A nivel de Pod del scheduler)
- Visualizando eventos (A nivel de event log de kubernetes)
- Visualizando eventso (A nivel de log del pod del scheduler)
- Namespace
- ¿Cuándo utilizar múltiples espacios de nombre?
- Espacios de nombre por defecto
- ¿Qué elementos no operan bajo un espacio de nombres?
- Lab: Namespaces
- Listando los namespaces
- Estados de un namespace
- Creando espacios de nombres
- Desplegando un pod en un espacio de nombres
- Estableciendo preferencia del espacio de nombres
- Eliminando espacio de nombres
- Comprobando qué elementos están bajo un espacio de nomobres
- Espacios de nombres y DNS
- DaemonSet
- operativa del DaemonSet
- Lab: DaemonSet
- Observando los DaemonSets del namespace kube-system
- Probando regeneración DaemonSets de sistema
- Craendo un DaemonSet
- Eliminación del DaemonSet
- ReplicaSet
- ¿Cómo funciona la nueva unidad?
- Ventajas de uso
- ¿Cuándo debemos de usarlo?
- Etiquetas en ReplicationController
- Lab: ReplicaSet
- Creación del primer ReplicaSet
- Análisis de estructura mínima
- Listando los Pods creados por el ReplicaSet
- Listando las unidades de replicación
- Describiendo la unidad de replicación
- Escalando el número de réplicas
- Simulando caída del servidor
- Añadiendo manualmente un Pod con nexo al ReplicaSet
- Obteniendo información detallada de las unidades rs
- Obteniendo metadata en formato .yml de un pod desplegado por el rs
- Eliminando las unidades rs con Pods
- Eliminando únicamente la unidad rs sin eliminar los Pods
- Secrets
- ¿Para qué valen?
- ¿Quién puede utilizar secrets?
- Lab: Secrets
- Creando nuestros propios secretos con kubectl (inline)
- Listado secretos
- Describiendo los secretos
- Creando secretos mediante archivo de manifiesto .yml
- Obteniendo descripción detallada del secreto
- Creando secretos que no estén en base64
- Prioridad a la hora de definir secretos
- Decodificando un secreto que esté en base64
- Editando un secreto
- Utilizando un secreto dentro de un Pod
- Utilizando un secreto dentro de un Pod (específiciamente secretos y rutas de montado de claves)
- Especificando permisos de los archivos de montaje
- Actualización de los secretos
- Utilizando secretos como varaibles de entorno
- Limitaciones de los secretos/seguridad
- Services
- Arquitectura del servicio
- Tipos de Servicios
- Ingress
- Labels
- Service Discovery DNS
- Lab: Services
- Creando el deployment para operaciones
- Creando un servicio de tipo ClusterIP (DHCP)
- Creando un servicio de tipo NodePort (DHCP)
- Creando un servicio de tipo ClusterIP (IP personalizada + binding a interfáz externa)
- Listando los endpoints
- Listando las reglas de iptables
- Creando servicio NodePort mediante exposición en línea (Sin YAML)
- Eliminando los servicios
- Creando un servicio de tipo LoadBalancer
- Política de enrutado del balanceador de carga
- Comprobando el funcionamiento DNS
- Ajustando DNS específica
- Creando servicio para acceder a pod con DNS específica de servicio (ClusterIP)
- Uso avanzado
- Deployments
- Características del uso de Deployments
- Implicaciones
- Lab: Deployments
- Creando 1 Deployment con 1 container
- Análisis de la estructura mínima
- Listando los Pods creados por el Deployment
- Listando las unidades Deployment
- Describiendo la unidad de Deployment
- Escalando el número de réplicas
- Describiendo la unidad de replicación (ReplicaSet)
- Comprobando que responde algún Pod con IP interna
- Creando un Deployment con directivas de Update
- Desplegando un Deployment con directivas de Update (rollout status)
- Llevando a cabo una operación de Rollback (rollout history)
- Pausando una operación de actualización (rollout pause)
- Resumiendo una operación de actualización pausada (rollout resume)
- Reiniciando de nuevo la operación de despliegue (rollout restart)
- Eliminando los deployments
- Despliegue ReadiNessProbe
- Volumen
- Volúmenes Docker vs Kubernetes
- Volúmenes en Docker
- Volúmenes en Kubernetes
- ¿Cómo usa el Volumen un Pod?
- Tipos de volúmenes soportados por kubernetes
- Ofertados por proveedores de nube privada
- Con características de sistema de archivo distribuído
- Para poder utilizarlo en nube propia (OpenStack)
- Locales al nodo Kubernetes
- Compartición de archivos
- Otros tipos
- Volúmen Local (PersistentVolume - PV)
- Volúmen Local (PersistentVolumenClaim - PVC)
- Lab: Volumen hostPath
- Creando 1 Pod con 1 container que usa un volumen
- Creando 1 Pod con 2 conteiner que usan un volumen compartido
- Lab: Volumen emptyDir
- Posibles usos de este tipo de volumen
- Creando 1 Pod con 2 containers que usan un volumen compartido temporal
- PersistentVolume
- Aprovisionando estátivo vs dinámico
- Estático
- Dinámico
- Capacity
- VolumeMode
- Access Modes
- StorageClassName
- PersistentVolumeReclaimPolicy
- MountOptions
- NodeAffinity
- PersistentVolumeClaim
- Lab: PersistentVolume
- Creando una unidad de persistencia de 5Gb y acceso R/W
- Listando las unidades de persistencia
- Lab: PersistentVolumeClaim
- Creando PVC que usa PV
- Listando las claims (PVC)
- Añadiendo un volumen a un Pod a partir de un claim
- Procedimiento en las comunicaciones seguras
- Fase de Autenticación
- Fase de Autorización
- Fase de Admisión
- Certificado de autorización
- NetworkPolicy
- Lab: NetworkPolicy
- Creando política de red, denegando comunicaciones
- Creando Pods afectados por la política
- Comprobando comunicaciones
- Estableciendo regla de comunicaciones (Política Ingress a nivel de Pod)
- Estableciendo regla de comunicaciones (Política Ingress a nivel de NameSpace)
- Estableciendo regla de comunicaciones (Política Ingress a nivel de IP)
- Estableciendo regla de comunicaciones (Política Egress a nivel de Pod)
- Certificados TLS
- Lab: Certificados TLS
- Mostrando la CA de un pod del clúster
- Instalando la herramienta CFSSL
- Generando la solicitud de certificado CSR
- Aprobando el certificado
- Extrayendo el certificado
- Contexto de seguridad de ejecución
- Lab: Contexto de seguridad de ejecución
- Comprobando contexto de seguridad
- Arrancando Pods con otro contexto de usuario
- Arrancando Pod con contexto de no-root
- Arracando Pod con contexto Privileged
- Arrancando un Pod añadiéndole capabilities
- Arrancando un Pod eliminándole capabilities
- Arrancando un Pod con contexto de seguridad de volumen, sólo lectura
- Arrancando un Pod con contexto de seguridad a nivel de Pod
- ConfigMap
- Lab: ConfigMap
- Generando la clave privada
- Creando el secreto
- Creando el ConfigMap
- Creando el Pod que usa el ConfigMap y el Secret
- Monitorización
- Describe Pod
- Get events
- Get Pod
- Status
- Lab: Monitorización
- Instlando el Servidor de métricas
- Comprobando el servidor de métricas
- Kubectl top
- Clúster Logs
También podría interesarle
Comentarios (0)
No hay reseñas de clientes en este momento.