Kubernetes

Configurar un clúster de Kubernetes en DigitalOcean

Configurar un clúster de Kubernetes en DigitalOcean

Kubernetes es una de las pocas tecnologías con las que la gente lucha no porque sea complicada y difícil de entender, sino porque está diseñada para ejecutarse en hardware de nivel de servidor y no se puede simular fácilmente en una computadora doméstica típica tan fácilmente. Afortunadamente, existe una variedad de plataformas alojadas en la nube que brindan una infraestructura asequible para experimentar y comprender tecnologías como Kubernetes.Como requisito previo, le animo a que lea nuestras publicaciones sobre la arquitectura de Kubernetes y sobre los nodos y los pods, los componentes básicos de un clúster de Kubernetes.Si bien hay muchas soluciones alojadas para Kubernetes, implementaremos todo desde cero en DigitalOcean, que es una solución de alojamiento en la nube dirigida a desarrolladores en particular.

Una instancia de VPS en esta plataforma se conoce como gota. Para ejecutar Kubernetes, necesita al menos 2 GB de RAM y usaremos las gotas de opción de $ 20 / mes para esta demostración. También cobran por hora, por lo que si experimentas durante un par de horas y luego destruyes todas las gotas, terminarás pagando no más de un par de dólares.

Ahora tenemos dos máquinas, una etiquetada como maestra y otra será el nodo trabajador. Así que configuremos el maestro primero.


Configurar el nodo maestro

Para configurar el nodo maestro, SSH en él usando la IP pública o use la consola provista por DigitalOcean para acceder al terminal como usuario root.

Los primeros comandos son los básicos del mantenimiento de la casa:

$ apt update && apt upgrade -y

Luego obtenemos las claves gpg requeridas y las agregamos a nuestra lista de repositorios remotos confiables.

$ curl -s https: // paquetes.nube.Google.com / apt / doc / apt-key.gpg | apt-key add -
$ gato < /etc/apt/sources.list.d/kubernetes.list
deb http: // apt.kubernetes.io / kubernetes-xenial principal
EOF
$ apt actualización

La ejecución de apt update por segunda vez actualizará el sistema con el repositorio oficial de Kubernetes. Ahora, instalamos los paquetes necesarios.

$ apt install docker.io
#Docker es necesario para la contenedorización de aplicaciones.
$ apt instalar kubelet kubeadm kubectl kubernetes-cni

El último comando instala algunos paquetes, cada uno de los cuales es importante por diferentes razones:

  1. Kubeadm: Bootstraps e inicializa Kubernetes en un nodo. Se puede utilizar para asignar a una gota la función de nodo maestro o nodo trabajador.
  2. Kubelet: Es un proceso en segundo plano que habla con el nodo maestro y realiza las acciones que éste solicita.
  3. Kubectl: Es la herramienta de línea de comandos que permite a los desarrolladores y al personal de operaciones interactuar y controlar el clúster de Kubernetes.
  4. Kubernetes-cni: Es la interfaz de red de contenedores necesaria para las comunicaciones internas entre los pods y también para la comunicación externa.

Ahora que tenemos todos los paquetes necesarios instalados, es hora de que inicialicemos el nodo maestro. Ejecute lo siguiente:

$ kubeadm init --pod-network-cidr = 10.244.0.0/16 --
apiserver-publicidad-dirección $ DROPLET_IP_ADDRESS

Asegúrese de sustituir la última variable $ DROPLET_IP_ADDRESS con la IP pública de su nodo maestro. Si todo funcionó bien, esta sería su salida:

Asegúrese de copiar la última línea "kubeadm join -token ..." ya que contiene las credenciales de seguridad necesarias que un nodo trabajador necesitaría para unirse al clúster.

Cada nodo principal tiene un servidor API ejecutándose en él, que el comando anterior expondrá a la red de pod y también a la interfaz de línea de comando, kubectl, así como a una interfaz de usuario web opcional.

Nota: Puede utilizar la dirección IP pública de su droplet para kubeadm init comando, pero si desea aislar su nodo maestro del resto del mundo, es posible que desee utilizar la función de IP privada de DigitalOcean que será utilizada por diferentes pods en diferentes nodos para hablar entre sí. Más tarde, puede exponer solo los servicios de front-end, cuando su proyecto se materialice.

De acuerdo, un último paso antes de que veamos el informe de salud en nuestro nodo maestro. Es posible que desee ejecutar:

$ mkdir -p $ INICIO /.kube
$ cp / etc / kubernetes / admin.conf $ INICIO /.kube
$ chown $ (id -u): $ (id -g) $ HOME / admin.conf
$ kubectl crear -f
https: // crudo.githubusercontent.com / coreos / flannel / master / Documentation / kube-flannel.yml - espacio de nombres = kube-system

Flannel se instala en el último comando que proporciona la funcionalidad de red de capa 3 necesaria para los contenedores.
Ahora podemos correr,

$ kubectl obtener nodos
$ kubectl get pods -all-namespaces

Lo que nos mostraría el estado de todos los nodos y todos los pods en este clúster, que actualmente es solo uno. Así que es hora de que configuremos la segunda gota y la convierta en un nodo trabajador de Kubernetes.


Configurar los minions o los nodos trabajadores

Una gran cantidad de configuraciones de minions será una repetición de lo que hemos hecho anteriormente, es de kubeadm ordenar que el camino comience a divergir.

Entonces, para configurar su nodo trabajador repitiendo todos los comandos hasta e incluyendo la instalación de paquetes,

$ apt instalar kubelet kubeadm kubectl kubernetes-cni

Luego, para inicializar la gota como un nodo de kubernetes, ejecute el comando que se generó en el nodo maestro, al completarkubeadm init.

$ kubeadm unirse --token 3c37b5.08ed6cdf2e4a14c9
159.89.25.245: 6443 --descubrimiento-token-ca-cert-hash
sha256: 52f99432eb33bb23ff86f62255ecbb

Tenga en cuenta que el contenido que sigue a la marca de su token, la dirección IP y la suma de comprobación sha256 serán muy diferentes en su caso. Eso es! Tienes un nuevo nodo como miembro del clúster de Kubernetes. Puede confirmar esto enumerando los nodos y los pods que se ejecutan en este clúster.


Conclusión

Ahora es el momento de implementar su acoplado aplicación en este grupo y siéntase libre de hacer girar más gotas y usar la unirse a kubeadm para agregar nuevos miembros a su clúster de Kubernetes.

Las mejores aplicaciones de mapeo de gamepad para Linux
Si te gusta jugar juegos en Linux con un gamepad en lugar de un sistema de entrada de teclado y mouse típico, hay algunas aplicaciones útiles para ti....
Herramientas útiles para jugadores de Linux
Si le gusta jugar juegos en Linux, es probable que haya utilizado aplicaciones y utilidades como Wine, Lutris y OBS Studio para mejorar la experiencia...
Juegos HD remasterizados para Linux que nunca tuvieron un lanzamiento de Linux antes
Muchos desarrolladores y editores de juegos están creando una remasterización HD de juegos antiguos para extender la vida útil de la franquicia, por f...