meta data de esta página
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
virtualizacion:kubernetes [2018/12/07 15:03] – [Funcionamiento] lc | virtualizacion:kubernetes [2023/01/18 14:11] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | {{tag> | + | ===== Kubernetes ===== |
- | ===== Instalación de Kubernetes | + | Kubernetes |
- | La Wikipedida define [[https:// | + | |
- | A esta clase de software se la conoce como orquestadores, | + | Un container contiene exclusivamente los servicios necesarios para que la aplicación que se empaqueta pueda correr sin ningún problema |
- | ==== Pasos previos ==== | ||
- | Vamos a realizar los siguientes pasos tanto en el manager como en el resto de nodos | ||
- | Lo primero será deshabilitar la swap | ||
- | * temporalmente (hasta que reiniciemos )con el comando **swapoff -a ** | ||
- | * Definitivamente editando el fichero /etc/fstab y comentando la línea de la partición del swap | ||
- | * Activamos el modo bridge | ||
- | < | ||
- | net.bridge.bridge-nf-call-ip6tables = 1 | ||
- | net.bridge.bridge-nf-call-iptables = 1 | ||
- | EOF</ | ||
- | y aplicamos los cambios con < | + | Alguna de las ventajas de usar kubernetes son: |
- | * deshabilitamos [[linux: | + | * Escalabilidad |
- | * instalamos docker < | + | * Tolerancia a fallos |
- | * Lo ponemos para que arranque al inicio < | + | * Balanceo de carga |
+ | * Gestión de Volúmenes | ||
- | ==== Instalación de Kubernetes | + | ==== Conceptos |
- | === Pasos a realizar en todos los nodos (incluido el manager) === | + | |
- | < | + | |
- | [kubernetes] | + | |
- | name=Kubernetes | + | |
- | baseurl=https:// | + | |
- | enabled=1 | + | |
- | gpgcheck=1 | + | |
- | repo_gpgcheck=1 | + | |
- | gpgkey=https:// | + | |
- | EOF | + | |
- | </ | + | |
- | Instalamos los paquetes | + | === Componentes de Kubernetes === |
- | < | + | == Estructura física == |
- | yum install | + | * Nodos |
- | Lo ponemos para que arranque al inicio | + | * Master. |
- | < | + | == Estructura Lógica == |
+ | * POD -> Un Pod es el objeto más pequeño y la unidad básica desplegable en Kubernetes. Un pod tiene la función de encapsular uno o varios container | ||
+ | * Volumes | ||
+ | * Namespace | ||
+ | * Label/LabelSelector | ||
+ | * Controladores | ||
- | Comprobamos que kubernetes y docker están | + | ==== Controladores |
+ | * ReplicationController | ||
+ | * ReplicaSet | ||
+ | * Deployments | ||
+ | * DaemonSet | ||
+ | * StatefulSet | ||
+ | * Jobs | ||
+ | * CronJobs | ||
- | Para verificar | + | === ReplicatoinController === |
+ | * Garantiza la ejecución de un número determinado de POD’s. | ||
+ | * Similar a un supervisor. | ||
+ | * Sobrevive a disrupción. | ||
+ | === ReplicaSet === | ||
+ | * Similar al ReplicationController | ||
+ | * Admite labelSet. | ||
+ | * No se recomienda. | ||
+ | * Se puede usar en HPA. | ||
+ | === Deployments === | ||
+ | * Proporciona actualizaciones declarativas para POD’s y ReplicaSets. | ||
+ | * Permite crear/ | ||
+ | * No se debe administrar ReplicaSets de un Deployment, todos los casos de uso deben ser cubiertos manipulando | ||
+ | === DaemonSet === | ||
+ | * Garantiza un POD en cada nodo. | ||
+ | * Garbage collector. | ||
+ | * Eliminar un DaemonSet eliminará los PODs creados. | ||
+ | * En un DaemonSet no se definen ReplicaSets ya que automáticamente va a desplegarlo en cada nodo de nuestro cluster. | ||
+ | * El DaemonSet se usa mucha para desplegar pods de monitorización en cada nodo de un cluster | ||
+ | === StatefulSet === | ||
+ | * Administra aplicaciones con estado. | ||
+ | * Proporciona garantías sobre el orden y la exclusividad de los PODs. | ||
+ | * A diferencia de un Deployment, mantiene una identidad adhesiva para cada POD. | ||
+ | === Jobs === | ||
+ | * Asegura que X POD acaben correctamente. | ||
+ | * Permite ejecutar modulos en paralelo. | ||
+ | * Hasta no tener un % de éxito no se considera acabado el Job. | ||
+ | === CronJobs === | ||
+ | * Ejecuta jobs en el tiempo. | ||
+ | * Una vez en el tiempo | ||
+ | * Se escribe en formato cron. | ||
- | Para añadir kubernetes al mismo cgroup < | + | ===== Referencias ===== |
+ | * https://github.com/iesgn/curso_kubernetes_cep | ||
+ | * https://github.com/iesgn/ | ||
+ | * https:// | ||
- | Reiniciamos los servicios < | ||
- | systemctl restart kubelet</ | ||
- | |||
- | === Pasos a realizar sólo en el Manager === | ||
- | Iniciamos el cluster < | ||
- | < | ||
- | Por ejemplo kubeadm init --apiserver-advertise-address=192.168.1.99 --pod-network-cidr=192.168.1.0/ | ||
- | |||
- | Cuando este comando termina nos aparecerá un comando con el token y el hash para unir los nodos. Este comando deberemos de guardarlos para añadir los nodos. | ||
- | |||
- | Antes de usar Kubernetes deberemos de ejecutar los siguientes comandos para terminar la configuración. | ||
- | |||
- | * Si kubernetes lo vamos a lanzar como root sólo debemos ejecutar el siguiente comando < | ||
- | * Si lo vamos a lanzar como otro usuario deberemos de crear un directorio para la configuración, | ||
- | mkdir -p $HOME/.kube | ||
- | sudo cp -i / | ||
- | sudo chown $(id -u):$(id -g) $HOME/ | ||
- | </ | ||
- | |||
- | Ahora debemos de definir el modelo de red que queremos usar en kubernetes , hay varias aproximaciones cada una con distitas características (https:// | ||
- | |||
- | Si por ejemplo vamos a usar [[https:// | ||
- | |||
- | Si usamos [[https:// | ||
- | |||
- | Si queremos comprobar si se ha instalado correctamente podemos ejecutar < | ||
- | |||
- | === Paso final en los nodos === | ||
- | Como último punto tenemos que añadir los nodos al manager. Para ello usaremos el comando que habiamos guardado cuando iniciamos el cluster | ||
- | < | ||
- | < | ||
- | |||
- | ==== Funcionamiento ==== | ||
- | Para ver que todo está funcionando y los nodos están registrados ejecutamos en el manager < | ||
- | |||
- | ==== Referencias ==== | ||
- | * https:// | ||
- | * https:// |