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 | |||
| info:libros:devops-kubernetes:cap3 [13/04/2020 13:46] – mate | info:libros:devops-kubernetes:cap3 [13/04/2020 13:48] (actual) – suprimit mate | ||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| - | == 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> | ||
| - | * 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> | ||
| - | * un pod está asociado con un **service account** que provee una identidad para los procesos que ejecutan el pod. Lo controla el service account y el token controllers en el API Server | ||
| - | * montará un volumen de solo lectura para cada contenedor en la ruta **/ | ||
| - | * listar los service account:< | ||
| - | |||
| - | ==== ReplicaSet: | ||
| - | * vigila que el número de pods (replica pods) están siempre bien y en ejecución en el cluster | ||
| - | * ejemplo RS:<code yaml; 3-2-2_rs.yml>// | ||
| - | # cat 3-2-2_rs.yaml | ||
| - | apiVersion: apps/v1 | ||
| - | kind: ReplicaSet | ||
| - | metadata: | ||
| - | name: nginx | ||
| - | spec: | ||
| - | replicas: 2 | ||
| - | selector: | ||
| - | matchLabels: | ||
| - | project: chapter3 | ||
| - | matchExpressions: | ||
| - | - {key: version, operator: In, values: [" | ||
| - | template: | ||
| - | metadata: | ||
| - | name: nginx | ||
| - | labels: | ||
| - | project: chapter3 | ||
| - | service: web | ||
| - | version: " | ||
| - | spec: | ||
| - | containers: | ||
| - | - name: nginx | ||
| - | image: nginx | ||
| - | ports: | ||
| - | - containerPort: | ||
| - | </ | ||
| - | * <code bash> | ||
| - | * <code bash> | ||
| - | * <code bash> | ||
| - | * si creásemos un pod a mano que cumpliese con los criterios del **replicaSet** (label version: | ||
| - | * <code yaml; 3-2-2_rs_self_created_pod.yaml> | ||
| - | apiVersion: v1 | ||
| - | kind: Pod | ||
| - | metadata: | ||
| - | name: our-nginx | ||
| - | labels: | ||
| - | project: chapter3 | ||
| - | service: web | ||
| - | version: " | ||
| - | spec: | ||
| - | containers: | ||
| - | - name: nginx | ||
| - | image: nginx | ||
| - | ports: | ||
| - | - containerPort: | ||
| - | </ | ||
| - | * <code bash> | ||
| - | * podemos modificar el número de réplicas con:< | ||
| - | * <code bash> | ||
| - | * <code bash> | ||
| - | |||
| - | ==== Deployments | ||
| - | * deploy pods | ||
| - | * rolling updates | ||
| - | * roll back pods y replicaSets | ||
| - | * realizar un deployment:< | ||
| - | * {{ : | ||
| - | * exponer puerto 80 al service port 80: <code bash> | ||
| - | * <code yaml; 3-2-3_deployments.yaml> | ||
| - | apiVersion: apps/v1 | ||
| - | kind: Deployment | ||
| - | metadata: | ||
| - | name: nginx | ||
| - | spec: | ||
| - | replicas: 2 | ||
| - | template: | ||
| - | metadata: | ||
| - | labels: | ||
| - | run: nginx | ||
| - | spec: | ||
| - | containers: | ||
| - | - name: nginx | ||
| - | image: nginx: | ||
| - | ports: | ||
| - | - containerPort: | ||
| - | --- | ||
| - | kind: Service | ||
| - | apiVersion: v1 | ||
| - | metadata: | ||
| - | name: nginx | ||
| - | labels: | ||
| - | run: nginx | ||
| - | spec: | ||
| - | selector: | ||
| - | run: nginx | ||
| - | ports: | ||
| - | - protocol: TCP | ||
| - | port: 80 | ||
| - | targetPort: 80 | ||
| - | name: http | ||
| - | </ | ||
| - | * <code bash> | ||
| - | |||
| - | pag:113 | ||