Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
| info:libros:devops-kubernetes:cap3 [13/04/2020 11:07] – [nodes] mate | info:libros:devops-kubernetes:cap3 [13/04/2020 13:48] (actual) – suprimit mate | ||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| - | = Getting started with Kubernetes | ||
| - | == components | ||
| - | === master | ||
| - | {{ : | ||
| - | * api Server | ||
| - | * kube-apiserver | ||
| - | * RESTful API | ||
| - | * Controller Manager | ||
| - | * kube-controller-manager | ||
| - | * observa los cambios en la API y mantiene el cluster en el estado deseado | ||
| - | * deployment controller: se asegura que el deployment se ejecuta en el número establecido de contenedores | ||
| - | * node controller: responde y desaloja el pod cuando los nodos se caen | ||
| - | * endpoint controller: relaciones entre pods y servicios | ||
| - | * service account & toker controller: crear cuenta por defecto y tokens de acceso | ||
| - | * Scheduler | ||
| - | * kube-scheduler | ||
| - | * determina que nodos son los mejores candidaros para ejecutar los pods | ||
| - | * no solo se basa en el uso de los recuros, (más adelante) | ||
| - | * etcd: | ||
| - | * base de datos distribuida key-value | ||
| - | * todos los objetos de la RESTful API se guardan aquí | ||
| - | * etcd se encarga de guardar y replicar los datos | ||
| - | |||
| - | === nodes | ||
| - | {{ : | ||
| - | * kubelet | ||
| - | * es el proceso principal | ||
| - | * reporta la actividad del nodo a **kube-apiserver** periodicamente | ||
| - | * proxy | ||
| - | * kube-proxy | ||
| - | * enruta a través del pod balanceador y los pods | ||
| - | * enruta desde internet a los servicios | ||
| - | * 3 modos: | ||
| - | * userspace: | ||
| - | * iptables: | ||
| - | * ipvs: | ||
| - | * docker | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | == getting started | ||
| - | === kubectl | ||
| - | * <code bash> | ||
| - | * <code bash> | ||
| - | |||
| - | === objects | ||
| - | * Namespaces | ||
| - | * permite implementar el aislamiento entre múltiples clusters virtuales | ||
| - | * objetos de diferentes namespaces no se ven entre ellos | ||
| - | * ciertos recursos genéricos no pertenecen a ningún namespace | ||
| - | * por defecto, existen 3 namespaces: | ||
| - | * default | ||
| - | * kube-system: | ||
| - | * kube-public: | ||
| - | * <code yaml> | ||
| - | kind: Namespace | ||
| - | metadata: | ||
| - | name: project1 | ||
| - | </ | ||
| - | * <code bash> | ||
| - | * <code bash> kubectl get [namespaces|ns]</ | ||
| - | * <code bash> | ||
| - | * <code bash> | ||
| - | * Name | ||
| - | * único en cada namespace | ||
| - | * usa este nombre como parte de la URL de acceso al recurso | ||
| - | * menor a 254c, letras minúsculas, | ||
| - | * kubernetes también le asigna un UID | ||
| - | * Labels y selector | ||
| - | * asigna etiquetas arbitrarias a los objetos | ||
| - | * <code yaml> | ||
| - | $key1: $value1 | ||
| - | $key2: $value2</ | ||
| - | * se pueden filtrar las etiquetas con selectores | ||
| - | * <code yaml> | ||
| - | matchLabels: | ||
| - | $key1: $value1 | ||
| - | matchExpressions: | ||
| - | - {key: $key2, operator: In, values: [$value1, $value2]} | ||
| - | </ | ||
| - | * Annotations | ||
| - | * al igual que los tags, usado para especificar metadatos no identificables | ||
| - | * almacenar configuración | ||
| - | * Pods | ||
| - | * miníma unidad deployable | ||
| - | * puede contener uno o varios contenedores (sidecar containers, como por ejemplo el proxy de istio) | ||
| - | * los contenedores de un mismo pod comparten contexto (en el mismo nodo), y por lo tanto red y volúmenes compartidos | ||
| - | * <code bash> kubectl explain pods</ | ||
| - | * ejemplo, sin uso práctico, de 2 contenedores en 1 pod:< | ||
| - | apiVersion: v1 | ||
| - | kind: Pod | ||
| - | metadata: | ||
| - | name: example | ||
| - | spec: | ||
| - | containers: | ||
| - | - name: web | ||
| - | image: nginx | ||
| - | - name: centos | ||
| - | image: centos | ||
| - | command: ["/ | ||
| - | </ | ||
| - | {{ : | ||
| - | * <code bash> | ||
| - | * <code bash> | ||
| - | * <code bash> | ||