Despliegue de Kubernetes en Digital Ocean: una mini guía práctica

Despliegue de Kubernetes en Digital Ocean: la miniguía útil

DigitalOcean Kubernetes (DOKS) es un servicio gestionado de Kubernetes (enlace al artículo sobre los servicios en la nube de Kubernetes) que permite el despliegue de clusters de Kubernetes sin las complejidades del plano de control y la gestión de la infraestructura. Los clústeres son compatibles con las cadenas de herramientas estándar de Kubernetes y se integran de forma nativa con DigitalOcean Load Balancer y los volúmenes de almacenamiento en bloque.

Desplegar Kubernetes su Digital Ocean paso a paso

Puedes crear un clúster Kubernetes de DigitalOcean en cualquier momento desde el panel de control de DigitalOcean abriendo el menú Crear en la esquina superior derecha.

Il menu di creazione

Tag alt =  Deploy Kubernetes

En el menú Crear, haz clic en Kubernetes para ir a la página Crear un clúster. En esta página elegirás una versión de Kubernetes, una región de centro de datos y una capacidad de clúster para tu clúster.

Selecciona una versión de Kubernetes

La última versión del parche para las tres versiones secundarias más recientes de Kubernetes está disponible para la creación de nuevos clústeres. Se selecciona por defecto la última versión estable.

Elija una región de centro de datos

Elige la región para tu clúster. El plano de control y los nodos trabajadores de tu clúster estarán en la misma región.

Si tienes previsto utilizar volúmenes de almacenamiento en bloque para el almacenamiento permanente de datos, elige una región que admita dichos volúmenes. Si añades un equilibrador de carga a su despliegue, se colocará automáticamente en la misma región que tu clúster.

Red VPC

En la sección VPC Network, elige una red VPC para el clúster. Puedes elegir una que hayas creado o utilizar la red por defecto para la zona del centro de datos.

La VPC crea una interfaz de red adicional a la que sólo pueden acceder otros recursos dentro de la misma red VPC. Esto evita que el tráfico se dirija fuera del centro de datos en la Internet pública.

Elige la capacidad del clúster

Para crear un cluster, debes añadir un pool de nodos con al menos un nodo trabajador. Especifica los siguientes campos para el grupo de nodos:

  • Nombre del grupo de nodos. Elija un nombre para el grupo de nodos después de haberlo creado. Debe saber que los nodos dentro de este pool heredan este esquema de nomenclatura cuando son creados. Y no sólo eso, si se cambia el nombre del conjunto de nodos más tarde, los nodos sólo heredarán el nuevo esquema de nomenclatura cuando se vuelvan a crear (cuando se reciclen los nodos o se cambie el tamaño del conjunto de nodos)
  • Machine type (droplet). Tendrás varios planes para elegir: Básico (CPU estándar, CPU Intel Premium o CPU AMD Premium), Propósito General o Droplet con CPU optimizada.
  • Node plan. Elige el plan específico que deseas para tus nodos de trabajadores. 
  • Para utilizar diferentes capacidades de recursos, puedes crear grupos de nodos adicionales con el botón «Añadir grupos de nodos adicionales» y asignar los pods a los grupos de nodos con las restricciones de programación adecuadas .
  • Número de nodos. Elige cuántos nodos incluir en el pool de nodos. Por defecto, ya se seleccionan tres nodos trabajadores precisamente porque es el número mínimo para «garantizar una alta disponibilidad».

En la parte inferior de esta sección, verás el coste mensual de tu clúster en función de los recursos que hayas elegido. Al crear el clúster, la facturación se realiza para cada tipo de recurso (por ejemplo, nodo trabajador, almacenamiento en bloque, equilibrador de carga) 

Añadir etiquetas

Las agrupaciones tienen automáticamente tres etiquetas :

  • k8s
  • El ID de clúster específico, como k8s:EXAMPLEc-3515-4a0c-91a3-2452eEXAMPLE
  • El tipo de recurso, (por ejemplo, k8s:worker)

También es posible añadir etiquetas personalizadas a un clúster y a tus grupos de nodos en las páginas Overview y Nodes. Cualquier etiqueta personalizada añadida a los nodos de un grupo de nodos (por ejemplo, desde la página de Droplet) se elimina para mantener la coherencia entre el grupo de nodos y sus nodos trabajadores.

Elige un nombre

Por defecto, los nombres de los clústeres comienzan con k8s, seguido de la versión de Kubernetes, la región del centro de datos y el ID del clúster. Es posible personalizar el nombre del clúster, que también se utilizará en la etiqueta.

Seleccionar proyecto

El nuevo clúster pertenece a tu proyecto por defecto. Puedes asignar el clúster a un proyecto diferente.

También puedes editar el proyecto después de crear el clúster. Ve a la página de Kubernetes en el panel de control . En el menú Más del clúster, selecciona Mover a en y selecciona el proyecto al que deseas mover el clúster.

Los recursos asociados, como los equilibradores de carga y los volúmenes de almacenamiento, también se mueven cuando se traslada el clúster a un proyecto diferente.

Crear el clúster

Después de introducir los demás ajustes, crear el clúster haciendo clic en el botón Crear clúster es muy sencillo. La creación del clúster puede tardar varios minutos en completarse.

Una vez aprovisionado el clúster, puedes utilizar kubectl, el cliente oficial de línea de comandos de Kubernetes, precisamente para gestionar el clúster.

En conclusión

La configuración de Kubernetes en Digital Ocean es muy sencilla y se realiza a través de la interfaz gráfica del panel de administración de Digital Ocean. Te invitamos a leer la documentación oficial de Kubernetes y Digital Ocean para obtener más detalles.

Kubernetes azure: mini guía sobre cómo ejecutar kubernetes en azure

Kubernetes Azure: Cómo ejecutar Kubernetes en Azure

Es posible crear un clúster Kubernetes a través de la interfaz web de Azure o a través de la línea de comandos.

todo lo que necesitas saber

Veamos cómo instalar Kubernetes en MS Azure a través de la línea de comandos.

Preparar la shell es el primer paso

Hay dos opciones disponibles: una es utilizar el shell interactivo de Azure, la otra es instalar las herramientas de línea de comandos de Azure localmente. A continuación se dan las instrucciones para cada una de ellas

1 – Shell interactivo Azure

El portal de Azure contiene un shell interactivo que puedes utilizar para comunicarte con tu clúster de Kubernetes. Para acceder a este intérprete de comandos, vaya a portal.azure.com, inicia sesión y haz clic en el botón de la parte inferior.

../../_images/cli_start.png

Tag alt = Kubernetes Azure

2 – Herramientas de línea de comandos en la configuración local

Puedes acceder a la interfaz de línea de comandos de Azure a través de un paquete que se puede instalar localmente.

Para ello, sigue primero las instrucciones de instalación de la documentación de Azure. A continuación, ejecuta el siguiente comando para conectar su CLI local con tu cuenta:

az login

Tendrás que abrir un navegador y seguir las instrucciones de tu terminal para conectarte.

Activar la suscripción

Azure utiliza el concepto de suscripciones para gestionar los costes. Puedes obtener una lista de las suscripciones a las que tienes acceso tu cuenta ejecutando:

az account list –refresh –output table

Elige la suscripción que deseas utilizar para crear el clúster y establecerla como predeterminada. Si sólo tienes una suscripción, puedes ignorar este paso.

az account set –subscription <SUBSCRIPTION-NAME>

Crear un grupo de recursos

Azure utiliza el concepto de grupos de recursos para agrupar recursos relacionados. Debemos crear un grupo de recursos en un lugar determinado del centro de datos. Crearemos recursos informáticos dentro de este grupo de recursos.

az group create \

   –name=<RESOURCE-GROUP-NAME> \

   –location=centralus \

   –output table

Establece un nombre para el clúster

En los siguientes pasos ejecutaremos comandos que piden que se introduzca un nombre de clúster. Te aconsejamos que utilices algo descriptivo y breve. Nos referiremos a esto como <Nombre del Círculo> para el resto de esta sección.

El siguiente paso creará algunos archivos en tu sistema de archivos, así que primero crea una carpeta donde irán estos archivos. Te aconsejamos que le des el mismo nombre que a tu cluster:

mkdir <CLUSTER-NAME>

cd <CLUSTER-NAME>

Crear una clave SSH

ssh-keygen -f ssh-key-<CLUSTER-NAME>

Se te pedirá que añadas una contraseña, que puedes dejar en blanco si lo deseas. En este punto, se creará una clave pública llamada ssh-key-<NOMBRE DEL COLECTIVO>.pub y una clave privada llamada ssh-key-<NOMBRE DEL COLECTIVO>. Asegúrate de que ambos van a la carpeta que hemos creado antes y mantenlos a salvo!

Crear una red virtual y una subred

Kubernetes no tiene un controlador por defecto que aplique recursos y políticas de red. Los recursos de políticas de red son importantes ya que definen cómo los pods de Kubernetes pueden comunicarse de forma segura entre sí y con el mundo exterior, por ejemplo, Internet.

Para habilitarla en Azure, primero debemos crear una red virtual con las políticas de red de Azure habilitadas.

az network vnet create \

   –resource-group <RESOURCE-GROUP-NAME> \

   –name <VNET-NAME> \

   –address-prefixes 10.0.0.0/8 \

   –subnet-name <SUBNET-NAME> \

   –subnet-prefix 10.240.0.0/16

Ahora recuperaremos los IDs de aplicación de la red y subred virtuales que acabamos de crear y los guardaremos en variables bash.

VNET_ID=$(az network vnet show \

   –resource-group <RESOURCE-GROUP-NAME> \

   –name <VNET-NAME> \

   –query id \

   –output tsv)

SUBNET_ID=$(az network vnet subnet show \

   –resource-group <RESOURCE-GROUP-NAME> \

   –vnet-name <VNET-NAME> \

   –name <SUBNET-NAME> \

   –query id \

   –output tsv)

Crearemos una entidad de servicio de Azure Active Directory (Azure AD) que se utilizará con el clúster y asignaremos el rol de colaborador que se utilizará con la red virtual. Asegúrate de que el SERVICE-PRINCIPAL-NAME es algo reconocible, por ejemplo, binderhub-sp.

SP_PASSWD=$(az ad sp create-for-rbac \

   –name <SERVICE-PRINCIPAL-NAME> \

   –role Contributor \

   –scopes $VNET_ID \

   –query password \

   –output tsv)

SP_ID=$(az ad sp show \

   –id http://<SERVICE-PRINCIPAL-NAME> \

   –query appId \

   –output tsv)

Crear el clúster Kubernetes

Llegados a este punto, podrías pensar en aprovisionar tu clúster Kubernetes. En el siguiente comando crearás un cluster de Kubernetes (enlace al artículo Qué es Kubernetes) dentro del grupo de recursos que creamos anteriormente.

az aks create \

   –name <CLUSTER-NAME> \

   –resource-group <RESOURCE-GROUP-NAME> \

   –ssh-key-value ssh-key-<CLUSTER-NAME>.pub \

   –node-count 3 \

   –node-vm-size Standard_D2s_v3 \

   –service-principal $SP_ID \

   –client-secret $SP_PASSWD \

   –dns-service-ip 10.0.0.10 \

   –docker-bridge-address 172.17.0.1/16 \

   –network-plugin azure \

   –network-policy azure \

   –service-cidr 10.0.0.0/16 \

   –vnet-subnet-id $SUBNET_ID \

   –output table

Esto debería llevar unos minutos y proporcionarte un clúster Kubernetes que funcione!

Instalar kubectl

Si utilizas la CLI de Azure de forma local, instale kubectl, una herramienta para acceder a la API de Kubernetes desde la línea de comandos:

az aks install-cli

Nota: kubectl ya está instalado en Azure Cloud Shell.

Obtener credenciales para kubectl

az aks get-credentials \

   –name <CLUSTER-NAME> \

   –resource-group <RESOURCE-GROUP-NAME> \

   –output table

Este comando actualizará automáticamente el archivo de configuración de Kubernetes.

Comprobar que el clúster funciona

kubectl get node

La respuesta debería enumerar tres nodos en ejecución y sus versiones de Kubernetes. Cada nodo debe tener el estado de Listo. Ten en cuenta que esto puede tomar unos momentos.

En conclusión

Hemos visto cómo crear un clúster Kubernetes en unos sencillos pasos. Siempre aconsejamos consultar la documentación oficial de Azure para obtener más detalles.

Cómo configurar Kubernetes

Veamos cómo hacer la configuración de Kubernetes en un clúster de servidores. El ejemplo se aplica en un clúster de máquinas que ejecutan CentOS7, pero puede replicarse en cualquier máquina basada en Linux.

Veamos cómo hacer la configuración de Kubernetes en un clúster de servidores. El ejemplo se aplica en un clúster de máquinas que ejecutan CentOS7, pero puede replicarse en cualquier máquina basada en Linux

Requisitos previos

Necesitamos:

  • varios servidores con CentOS7 (1 nodo maestro y más de un nodo trabajador)
  • Una cuenta de usuario en cada máquina con privilegios de administración
  • Docker (enlace al artículo Qué es Docker) instalado en cada máquina

Configuración del repositorio de Kubernetes

En primer lugar, siempre hay que tener en cuenta que los paquetes de Kubernetes no están disponibles a través de los repositorios oficiales de CentOS 7. Por lo tanto, este paso debe realizarse en el nodo maestro y en cada nodo trabajador.

Por lo tanto, es necesario ejecutar el siguiente comando para recuperar el repositorio desde el que posteriormente recuperar el instalador de Kubernetes:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

Instalación de kubelet, kubeadm y kubectl

Estos 3 paquetes básicos son necesarios para poder utilizar Kubernetes. Instala los siguientes paquetes en cada nodo como se muestra en el ejemplo:

sudo yum install -y kubelet kubeadm kubectl

systemctl enable kubelet

systemctl start kubelet

Antes de desplegar un clúster, asegúrate de establecer los nombres de host configurando el firewall y los ajustes del kernel.

Establecer el nombre de host de un nodo

Para dar un nombre de host único a cada uno de sus nodos, utiliza este comando:

sudo hostnamectl set-hostname master-node

o bien 

sudo hostnamectl set-hostname worker-node1

En este ejemplo, el nodo maestro se llama ahora nodo-maestro, mientras que un nodo trabajador se llama nodo-trabajador1.

Ahora crea un registro DNS para resolver el nombre de host para todos los nodos:

192.168.1.10 master.example.com master-node

192.168.1.20 node1. example.com node1 worker-node

Configurar el cortafuegos

Los nodos, contenedores y pods deben poder comunicarse a través del clúster para realizar sus funciones. En CentOS por defecto, Firewalld está instalado. Añade los siguientes puertos introduciendo los comandos listados.

Por lo tanto, en el Nodo Maestro ejecuta:

sudo firewall-cmd –permanent –add-port=6443/tcp

sudo firewall-cmd –permanent –add-port=2379-2380/tcp

sudo firewall-cmd –permanent –add-port=10250/tcp

sudo firewall-cmd –permanent –add-port=10251/tcp

sudo firewall-cmd –permanent –add-port=10252/tcp

sudo firewall-cmd –permanent –add-port=10255/tcp

sudo firewall-cmd –reload

En este punto, ejecuta estos comandos en cada nodo trabajador:

sudo firewall-cmd –permanent –add-port=10251/tcp

sudo firewall-cmd –permanent –add-port=10255/tcp

firewall-cmd –reload

Actualizar la configuración de Iptables

Establece el valor de net.bridge.bridge-nf-call-iptables a ‘1’ en el archivo de configuración sysctl. Esto asegura que los paquetes sean correctamente procesados por las tablas IP cuando se filtran y reenvían los puertos.

cat <<EOF > /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

sysctl –system

Desactivar SELinux

Los contenedores deben acceder al sistema de archivos del host. SELinux debe estar en modo permisivo, lo que desactiva sus funciones de seguridad.

Utiliza los siguientes comandos para desactivar SELinux

sudo setenforce 0

sudo sed -i ‘s/^SELINUX=enforcing$/SELINUX=permissive/’ /etc/selinux/config

Desactivar SWAP

Por último, debemos desactivar SWAP para que kubelet funcione correctamente:

sudo sed -i ‘/swap/d’ /etc/fstab

sudo swapoff -a

Crear un cluster con kubeadm

Inicia el clúster con el siguiente comando:

sudo kubeadm init –pod-network-cidr=10.244.0.0/16

El proceso puede tardar varios minutos en completarse dependiendo de la velocidad de la red. Al final de este comando, se muestra un mensaje de unión de kubeadm. Anote el registro y utilícelo para unir los nodos trabajadores al clúster en una etapa posterior.

Gestionar el clúster como un usuario estándar

Para utilizar el clúster, debes poder conectarte como usuario estándar. Ejecuta el siguiente conjunto de comandos:

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

Configurar la red de Pods

La red de pods permite que los nodos del clúster se comuniquen entre sí. Hay varias opciones de red Kubernetes disponibles. Utiliza el siguiente comando para instalar el complemento de red Flannel Pod:

sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Si decides utilizar Flannel, cambia las reglas de su cortafuegos para permitir el tráfico del puerto 8285 por defecto de Flannel.

Comprobar el estado del kluster

Comprueba el estado de los nodos ejecutando el siguiente comando en el servidor maestro:

sudo kubectl get nodes

Una vez que se ha instalado una red de pods, puedes confirmar que funciona comprobando que el pod CoreDNS se está ejecutando escribiendo:

sudo kubectl get pods –all-namespaces

Añadir un nodo trabajador al clúster

Puedes utilizar el comando kubeadm join en cada nodo trabajador para conectarlo al clúster.

kubeadm join –discovery-token cfgrty.1234567890jyrfgd –discovery-token-ca-cert-hash sha256:1234..cdef 1.2.3.4:6443

Sustituye los códigos por los de su servidor principal. Repite esta acción para cada nodo trabajador de tu clúster.

En conclusión

Has instalado correctamente Kubernetes en CentOS y ahora puedes gestionar clústeres en varios servidores.

Este tutorial de Kubernetes proporciona un buen punto de partida para explorar las muchas opciones que ofrece esta plataforma. Utiliza Kubernetes para autoescalar tus contenedores y así pasar menos tiempo microgestionando cada uno de ellos.

Instalación de Kubernetes: mini guía dedicada a la instalación local de Kubernetes

Instalar y lanzar Kubernetes localmente es la mejor manera de ver y comprender todos los componentes de Kubernetes.

Instalar y lanzar Kubernetes localmente es la mejor manera de ver y comprender todos los componentes de Kubernetes y la forma en que se integran.

Kubernetes funciona en casi todas partes, con diferentes versiones de Linux y gracias a diferentes servicios en la nube (link articolo «Servizi Cloud Kubernetes»). La compatibilidad de esta herramienta con diferentes sistemas operativos utilizados en todo el mundo representa uno de los principales puntos fuertes de este instrumento.

Si echas un vistazo a la web oficial de Kubernetes encontrarás una página con los documentos que resumen el estado de las diversas combinaciones de distribución del sistema, así como una serie de guías introductorias que pueden ayudarte a realizar una correcta instalación local de Kubernetes.

Dicho esto, Kubernetes se puede distribuir de forma autónoma, la única necesidad es tener Linux con Docker instalado en su propia máquina o en una máquina virtual.

Antes de entrar en detalle, vamos a repasar la arquitectura de Kubernetes porque será útil durante la lectura:

  • El maestro es el «plan de control» de Kubernetes y tiene una serie de componentes en cuanto a clústeres, incluyendo un servidor de API que es utilizado por las herramientas para interactuar con el propio clúster (por ejemplo kubectl).
  • Cada nodo tiene un servicio kubelet que recibe órdenes del maestro y un runtime en el contenedor (incluido pero no limitado por un Docker) con el que interactúa para gestionar las peticiones del contenedor. Veámoslo en acción y describamos más a fondo los componentes mientras los configuramos.

Instalación local de Kubernetes

Como se ha descrito anteriormente en la guía introductoria, solo hay tres pasos para obtener un clúster autónomo que esté activo y funcionando. Veámoslos juntos.

Paso uno: ejecutar el etcd

docker run -d \

    –net=host \

    gcr.io/google_containers/etcd:2.0.9 \

    /usr/local/bin/etcd \

        –addr=127.0.0.1:4001 \

        –bind-addr=0.0.0.0:4001 \

        –data-dir=/var/etcd/data

Kubernets almacena de forma fiable el estado principal y la configuración a través de etcd. Los diferentes componentes maestros «vigilan» estos datos y actúan en consecuencia, por ejemplo, lanzando un nuevo contenedor para mantener un número deseado de copias.

Segundo paso: ejecutar el maestro

docker run -d \

    –net=host \

    -v /var/run/docker.sock:/var/run/docker.sock \

    jetstack/hyperkube:v0.20.1 \

    /hyperkube kubelet \

        –api_servers=http://localhost:8080 \

        –v=2 \

        –address=0.0.0.0 \

        –enable_server \

        –hostname_override=127.0.0.1 \

        –config=/etc/kubernetes/manifests

Este paso ejecuta un contenedor kubelet, que en este despliegue local ejecuta a su vez los componentes en clúster que forman el «plano de control» principal de Kubernetes.

  • API del servidor: proporciona la API RESTful de Kubernetes para gestionar la configuración del clúster, con el apoyo del almacén de datos etcd.
  • Programador: coloca los pods en los nodos basándose en reglas (por ejemplo, etiquetas). En esta etapa, el programador es simple, pero, como la mayoría de los componentes de Kubernetes, es configurable.
  • Controller Manager: gestiona todas las funciones a nivel de clúster, incluyendo la creación/actualización de puntos finales, la detección, gestión y monitorización de nodos y la gestión de pods.

Tercer paso: ejecutar el proxy de servicio

docker run -d \

   –net=host \

   –privileged \

   jetstack/hyperkube:v0.20.1 \

   /hyperkube proxy \

        –master=http://127.0.0.1:8080 \

        –v=2

El proxy ( kube-proxy ) se ejecuta en cada nodo y proporciona un proxy de red simple y capacidades de equilibrio de carga. Este proxy permite exponer los servicios con una dirección de red y un nombre estables.

En este punto deberíamos tener un cluster Kubernetes ejecutable localmente. Para asegurarnos de que todo está bien, podemos utilizar Docker ps para comprobar las instancias de contenedor en ejecución; debería tener el aspecto que se ve en la siguiente imagen (se han omitido varias columnas por razones de brevedad):

IMAGENCOMANDO
jetstack/hyperkube:v0.20.1/hyperkube proxy
jetstack/hyperkube:v0.20.1/hyperkube scheduler
jetstack/hyperkube:v0.20.1/hyperkube apiserver
jetstack/hyperkube:v0.20.1/hyperkube controller
gcr.io/google_containers/pause:0.8.0/pause
jetstack/hyperkube:v0.20.1/hyperkube kubelet
gcr.io/google_containers/etcd:2.0.9/usr/local/bin/etcd

alt tag = Instalación de Kubernetes

Para interactuar con el clúster necesitamos utilizar la herramienta CLI kubectl. Se puede descargar pre-construida directamente desde Google (nota 0.20.1 es la última versión en el momento de escribir).

wget https://storage.googleapis.com/kubernetes-release/release/v0.20.1/bin/linux/amd64/kubectl

chmod u+x kubetctl

sudo  mv kubectl /usr/local/bin/

La forma más rápida de iniciar un contenedor en el clúster es utilizar el comando kubectl run. Así, por ejemplo, para iniciar un contenedor Nginx, puedes utilizar el comando y hacer referencia al nombre de la imagen del contenedor.

kubectl run web –image=nginx

Aunque esto es conveniente y adecuado para la experimentación, los recursos como los pods se crean generalmente utilizando artefactos de configuración que pueden tener ventajas por el hecho de que pueden ser versionados con GIT, facilitando así, por ejemplo, los rollbacks.

Si se usa YAML (o JSON), se declara un pod y su estado deseado; a continuación, el trabajo de Kubernetes es garantizar que este pod siempre exista de acuerdo con esta especificación hasta que se elimine.

Hay aquí un ejemplo sencillo de configuración de un pod para ese pod nginx (archivo nginx-pod.yml).

apiVersion: v1

kind: Pod

metadata:

 name: nginx

 labels:

   app: web

spec:

 containers:

   – name: nginx

     image: nginx

Esto ejecuta la misma imagen de contenedor (nginx) que la anterior, pero en este caso la configuración de recursos específica, algunos metadatos adicionales, por ejemplo, una etiqueta (par clave/valor) que asigna a este pod una etiqueta del tipo «app» de «web».

kubectl create -f nginx-pod.yml

Kubernetes, en segundo plano, instruirá a un nodo para que extraiga la imagen del contenedor iniciando el mismo contenedor a su vez.

En este punto volverá a utilizar kubectl unos instantes después y debería poder ver el pod de nginx en funcionamiento.

$ kubectl get pods

POD    IP              CONTAINER(S)  IMAGE(S)   HOST                     LABELS     STATUS    CREATED

web1   172.17.0.1      nginx         nginx      127.0.0.1/127.0.0.1      app=web  Running   About a minute web1
Como se ha solicitado, un contenedor Nginx se está ejecutando en un pod (web1-qtlc1 en este caso) y también se le ha asignado una dirección IP. En Kubernetes, a cada pod se le asigna una dirección IP de una red interna y esto significa que los pods pueden comunicarse entre sí, sin embargo, en este caso hemos desplegado Kubernetes con Docker usando la red del host (-net=host) y estas direcciones IP serán accesibles localmente.

Kubernetes Cloud: servicios en la nube para Kubernetes, mini guía práctica

Kubernetes Cloud: vamos a observar de cerca Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE) y Servicio Azure Kubernetes (AKS)

Estos servicios son denominados “managed”. Qué se entiende por “managed”. Básicamente, quien sube los archivos de configuración de un servidor en Kubernetes, puede beneficiarse del aprovisionamiento de toda la arquitectura desde el lado servidor realizada por Kubernetes, gracias al trabajo de estos proveedores. 

Vamos a verlos desde vicino para comprender cuánto pueden ser útiles para quien quiere utilizar Kubernetes al nivel más alto. 

Amazon Elastic Kubernetes Service (EKS)

Amazon Elastic Kubernetes Service es un servicio relativamente nuevo; lanzado en 2018, en los últimos años ha sido protagonista de un crecimiento constante, masivo y a veces imparable.

Con EKS es posible lanzar, ejecutar y redimensionar las aplicaciones Kubernetes de la nube AWS o localmente. EKS se basa en Kubernetes Upstream, de hecho este servicio está disponible en más que una AWS Regions, o sea bases de datos repartidas en todo el mundo. 

EKS incluye algunas opciones de seguridad y encriptación integradas, así como la automatización de las actividades de gestión clave de Kubernetes como la aplicación de parche, el aprovisionamiento de los nódulos y las varias actualizaciones como la actualización automática y la integración con CloudWatch para la registración, CloudTrail para el control y IAM para las autorizaciones de acceso.   

Más recientemente AWS ha también introducido una nueva distribución de K8s open source, se llama EKS Distro y es una nueva opción de distribución para Amazon EKS que permite crear y gestionar grupos Kubernetes en su infraestructura, incluyendo también las máquinas virtuales. 

Google Kubernetes Engine (GKE)

Google Kubernetes Engine es el primer servicio en la nube Kubernetes “managed” que supo imponerse en el mercado. Estamos hablando de un entorno gestionado por la distribución y la gestión de las aplicaciones contenerizadas en una infraestructura Google segura y flexible. 

GKE hoy en día se considera una de las plataformas Kubernetes más avanzadas disponibles en el mercado. Proyectado inicialmente para el uso de Google Cloud, puede ser distribuido en entornos híbridos y locales sin distinción. GKE ha simplificado también la creación de los grupos: no por casualidad, la herramienta ofrece algunas funcionalidades avanzadas de gestión de los grupos, entre otras el equilibrio de la carga, la escalabilidad automática, algunas actualizaciones automáticas como la reparación automática del servidor, la registración y el seguimiento. 

GKE è cons

Azure Kubernetes Service (AKS)

Azure Kubernetes Service está llegando a ser, poco a poco, la aplicación más utilizada por los usuarios Kubernetes. Como con GKE y EKS, AKS puede ofrecer a sus clientes un entorno K8s upstream gestionado con actualizaciones automáticas incluyendo el seguimiento de los grupos para simplificar la distribución y la gestión de las operaciones de Kubernetes, AKS ofrece diferentes modalidades de ejecución del aprovisionamiento de un grupo: consola Web, línea de comandos, Azure Resource Manager, Terrafrom y mucho más. 

Tenéis que saber que el servicio Azure Kubernetes (precedentemente conocido como ACS – Azure Container Service) nació como plataforma independiente del orquestador que soporta Kubernetes. Por fin, en 2017 Microsoft decidió ofrecer servicios de gestión Kubernetes y, como consecuencia, evitar ACS manteniendo su “yuxtaposición” a Kubernetes gracias a AKS.

Cómo funciona Kubernetes: funcionamiento y estructura

Cómo funciona Kubernetes: mini guía para entender el funcionamiento de una de las herramientas más importantes para un desarrollador de hoy

¿Cómo funciona Kubernetes? Lo vamos a ver en esta mini guía, teniendo siempre en cuenta que Kubernetes es una herramienta de gran relevancia para un desarrollador que quiere crecer y que realmente cree en su profesión. 

Empezamos con la definición de qué es Kubernetes puesto que estamos hablando de una plataforma de orquestación para contenedores open source, diseñada para la ejecución de aplicaciones y servicios distribuidos en gran escala. 

Vale, dicho esto, que significa todo y nada, vamos a ver cómo funciona Kubernetes y cuáles son las funcionalidades principales de este instrumento Devops que, más que otros, hoy completa de manera significativa las habilidades de un desarrollador.

(más…)

Docker vs Kubernetes: vamos a ver en qué se diferencian

Docker vs Kubernetes: vamos a ver en qué se diferencian y por qué a veces nos confundimos

A veces nos preguntamos si es mejor utilizar Docker o Kubernetes, como si debiéramos elegir entre uno y el otro. Sería como hacer una comparación entre las manzanas y las tartas. Si tú también te lo has preguntado, no te preocupes: es un malentendido muy común.

(más…)