User Tools

Site Tools


informatica:linux:kubernetes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatica:linux:kubernetes [2022/09/24 08:30] – [Oracle cloud] javiinformatica:linux:kubernetes [2023/09/25 07:05] (current) – [Nodo (común para control plane y worker)] javi
Line 23: Line 23:
 **IMPORTANTE**: leer la siguientes consideraciones **IMPORTANTE**: leer la siguientes consideraciones
  
-  * Kubernetes usa CRI, que NO es compatible con Docker Engine, por eso mejor NO usarlo (Docker Engine)+  * Kubernetes requiere container runtime que siga especificación CRI (CRI-Ocontainerd, etc.) 
 + 
 +  * Docker Engine requiere dockershim, que ha sido eliminado, por lo que mejor NO usar Docker Engine como container runtime. Ver [[https://kubernetes.io/docs/setup/production-environment/container-runtimes/|Container runtimes]]. Por curiosidad, el reemplazo (de dockershimse llama "cri-dockerd"
  
   * Para instalar containerd usaremos los paquetes, que los distribuye Docker Inc.   * Para instalar containerd usaremos los paquetes, que los distribuye Docker Inc.
Line 537: Line 539:
 | k8s3 | 1.2.3.7 | 10.0.0.4 | Tercer control plane | | k8s3 | 1.2.3.7 | 10.0.0.4 | Tercer control plane |
  
-==== Load balancer ==== +Creamos:
- +
-Listener +
- +
-^ Name ^ IP Protocol Version ^ Protocol ^ Ingress Traffic Port ^ Backend Set ^ +
-| listener-kube-apiserver | IPv4 | TCP  | Specify the port, 6443 | listener-kube-apiserver | +
- +
-Backend set +
- +
-^ Name ^ IP Protocol Version ^ Protocol ^ Port ^ Backend Set ^ +
-| listener-kube-apiserver | IPv4 | TCP  | 6443 | backend-set-kube-apiserver | +
- +
-Backends +
- +
-^ Name ^ IP address ^ Availability Domain ^ Port ^ Weight ^ Drain ^ Offline ^ Health ^ +
-| k8s1  | 10.0.0.3 | 6443 | 100 | False | False | OK | +
-| k8s2  | 10.0.0.4 | 6443 | 99 | False | False | OK | +
-| k8s3  | 10.0.0.5 | 6443 | 99 | False | False | OK | +
- +
- +
- +
- +
- +
- +
- +
-==== Security list ==== +
- +
-Se creó una VNC siguiendo el asistente. +
- +
-El load balancer usa la subnet pública, "Public Subnet-vnc"+
- +
-Esta tiene una security list, que hay que retocar para que: +
- +
-  * No permita conexiones desde la DMZ al listener kube-apiserver +
-  * Permita que lleguen los health check del load balancer a los nodos +
- +
-Las IPs púbicas son inventadas +
- +
-^ Stateless ^ Source ^ IP Protocol ^ Source Port Range ^ Destination Port Range ^ Description ^ +
-| No | 0.0.0.0/0 | TCP | All | 31342 | nginx-ingress-controller-https | +
-| No | 0.0.0.0/0 | TCP | All | 32386 | nginx-ingress-controller-http | +
-| No | 0.0.0.0/0 | TCP | All | 443 | listener-https | +
-| No | 0.0.0.0/0 | TCP | All | 80 | listener-http | +
-| No | 1.2.3.5/32 | All | All | All | k8s1 | +
-| No | 1.2.3.6/32 | All | All | All | k8s2 | +
-| No | 1.2.3.7/32 | All | All | All | k8s3 | +
- +
-Seguramente se puede restringir una miaja, pero así funciona. +
- +
-Como se juega también con los listeners no es tab abierta como parece. Por ejemplo desde la DMZ NO se llega al puerto 31342 (porque no hay listener publicado). +
- +
- +
- +
  
 +  - Un [[http://wiki.legido.com/doku.php?id=informatica:oracle:oci#load_balancer|load balancer]] con su correspondiente [[http://wiki.legido.com/doku.php?id=informatica:oracle:oci#security_list|security list]]
 +  - Un [[http://wiki.legido.com/doku.php?id=informatica:oracle:oci#listener-kube-apiserver|listener]] que escuche en el puerto 6443 oara el servicio 'kube-apiserver' 
  
 ===== Haproxy y keepalived como servicios ===== ===== Haproxy y keepalived como servicios =====
Line 1273: Line 1224:
   * Puertos en los que escuchan los Nodeport tanto HTTP como HTTPS. Ver paso 8 de [[informatica:linux:kubernetes#nginx_nodeport_daemonset_usar_este|Nginx ingress Nodeport daemonset]]   * Puertos en los que escuchan los Nodeport tanto HTTP como HTTPS. Ver paso 8 de [[informatica:linux:kubernetes#nginx_nodeport_daemonset_usar_este|Nginx ingress Nodeport daemonset]]
   * [[https://docs.docker.com/engine/install/debian|Docker]]   * [[https://docs.docker.com/engine/install/debian|Docker]]
 +
 +==== Bare metal ====
 +
 +Estas instrucciones sob para montar completamente por fuera de kubernetes un balanceador de carga capa 7.
 +
 +TODO: refinar, porque cuando jugué con OCI me di cuenta que capa 4 funciona perfectamente, no hace falta liarse con proxy_pass y capa 7
  
 1. Acceder al servidor 1. Acceder al servidor
Line 1440: Line 1397:
 Donde '8.8.8.8' es la IP pública desde donde hemos lanzado la petición. Donde '8.8.8.8' es la IP pública desde donde hemos lanzado la petición.
  
 +==== Oracle ====
 +
 +Requisitos:
 +
 +  * Un [[http://wiki.legido.com/doku.php?id=informatica:oracle:oci#load_balancer|load balancer]] con su correspondiente [[http://wiki.legido.com/doku.php?id=informatica:oracle:oci#security_list|security list]]
 +
 +
 +Creamos dos listeners, todo ello capa 4:
 +
 +  * Uno que escuche en el [[http://wiki.legido.com/doku.php?id=informatica:oracle:oci#listener-ingress-nginx-controller-http|puerto 80]]
 +  * Otro que escuche en el [[http://wiki.legido.com/doku.php?id=informatica:oracle:oci#listener-ingress-nginx-controller-https|puerto 443]]
 ===== LoadBalancer ===== ===== LoadBalancer =====
  
informatica/linux/kubernetes.1664008245.txt.gz · Last modified: 2022/09/24 08:30 by javi