GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo configurar Kubernetes 1.5 con kubeadm en CentOS

Ya salió la nueva versión de Kubernetes, así que aquí tenemos otro artículo de Kubernetes. Con Kubernetes 1.5, kubeadm todavía está en versión alfa y no se recomienda usarlo en producción, ya que aún no es compatible con el balanceador de carga. Vamos a instalar una conocida tienda de calcetines en línea como demostración y usaremos nodeport para exponer el servicio.

Instalación de Kubernetes 1.5 en todos los nodos

Agreguemos el repositorio de kubernetes para CentOS:

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

[kubernetes]

nombre=Kubernetesbaseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0EOF

Después de agregar el repositorio, debemos apagar SElinux porque no funciona muy bien con kubernetes. Para apagarlo momentáneamente, escriba

setenforce 0

Para que persista después de reiniciar, use nano para editar el archivo de configuración de SElinux de esta manera:

nano /etc/selinux/config

y asegúrese de que la línea SELINUX esté configurada como permisiva o deshabilitada:

SELINUX=disabled

Guarde el archivo y podemos continuar con la instalación de los paquetes necesarios.

yum install docker kubelet kubeadm kubectl kubernetes-cni

Para habilitar el inicio automático de Docker en el arranque, ejecute este comando:

systemctl enable docker

Y para iniciarlo ahora, ejecuta lo siguiente.

systemctl start docker

A continuación, hagamos lo mismo con kubelet

systemctl enable kubelet

systemctl start kubelet

Configuración del clúster

Lo primero que debemos hacer es decidir el maestro de nuestro nuevo clúster. Si todos los nodos están configurados como se muestra arriba, luego ejecutamos nuestro nodo maestro designado con el siguiente comando.

kubeadm init

Tenga en cuenta que no puede ejecutar este comando dos veces, deberá desmantelar el clúster antes de ejecutarlo por segunda vez. El resultado será similar a este:

[root@centos-01 kubernetes]# kubeadm init
[kubeadm] WARNING: kubeadm is in alpha, please do not use it for production clusters.
[preflight] Running pre-flight checks
[preflight] WARNING: firewalld is active, please ensure ports [6443 9898 10250] are open or your cluster may not function correctly
[init] Using Kubernetes version: v1.5.1
[tokens] Generated token: "9a6b48.b4011ffeeb237381"
[certificates] Generated Certificate Authority key and certificate.
[certificates] Generated API Server key and certificate
[certificates] Generated Service Account signing keys
[certificates] Created keys and certificates in "/etc/kubernetes/pki"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[apiclient] Created API client, waiting for the control plane to become ready
[apiclient] All control plane components are healthy after 105.821991 seconds
[apiclient] Waiting for at least one node to register and become ready
[apiclient] First node is ready after 4.505809 seconds
[apiclient] Creating a test deployment
[apiclient] Test deployment succeeded
[token-discovery] Created the kube-discovery deployment, waiting for it to become ready
[token-discovery] kube-discovery is ready after 68.003359 seconds
[addons] Created essential addon: kube-proxy
[addons] Created essential addon: kube-dns

Your Kubernetes master has initialized successfully!

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
http://kubernetes.io/docs/admin/addons/

You can now join any number of machines by running the following on each node:

kubeadm join --token=9a6b48.b4011ffeeb237381 45.55.128.42

Instalación de red de pods y adición de nodos a un clúster

En la parte anterior, inicializamos el maestro del clúster y entramos en el último comando de línea con un token que usaremos para agregar nodos. Pero antes de hacer eso, necesitamos instalar la red de pods.

kubectl apply -f https://git.io/weave-kube

Hay muchas maneras de tener una red de módulos, pero la anterior es quizás la más simple. Utiliza Container Network Interface o CNI, que es el estándar propuesto para contenedores de red en Linux.

A continuación, podemos agregar nodos al clúster ejecutando este comando en todos los nodos

kubeadm join --token=bb6fc2.be0345f5b02a32a0 45.55.128.42

El token se desinfecta, por lo que no puede agregar nodos a mi clúster. A continuación, habilitemos que los pods se ejecuten en el maestro y no solo en los nodos.

kubectl taint nodes --all dedicated-

Después de esto, podemos verificar los nodos para ver si todos están en línea.

kubectl get nodes

Ejemplo de instalación de microservicios

Hay un ejemplo simple de microservicios que usaremos para probar nuestro clúster. Es tienda online de calcetines.

Primero agregaremos la tienda de calcetines del espacio de nombres

kubectl create namespace sock-shop

Y luego creamos el servicio

kubectl apply -n sock-shop -f "https://github.com/microservices-demo/microservices-demo/blob/master/deploy/kubernetes/complete-demo.yaml?raw=true"

Después de esto, debemos esperar un tiempo para que se creen los contenedores y luego podemos intentar visitar el nuevo sitio. Para poder visitarlo, debemos conocer su dirección. Examinemos el servicio

kubectl describe svc front-end -n sock-shop

Le dará un resultado similar a este

Name: front-end
Namespace: sock-shop
Labels: name=front-end
Selector: name=front-end
Type: NodePort
IP: 10.104.11.202
Port: <unset> 80/TCP
NodePort: <unset> 31500/TCP
Endpoints: 10.32.0.4:8079
Session Affinity: None
No events.

La línea en negrita está resaltada por mí porque necesitamos el número de puerto que usa el servicio. Necesitamos combinar el número de puerto con la dirección de uno de nuestros nodos y llegaremos al sitio.

Conclusión

Por lo tanto, hemos configurado con éxito el clúster Kubernetes 1.5 con kubeadm en CentOS 7. En nuestro caso, es un clúster de tres nodos, pero kubeadm le permite escalar fácilmente el clúster agregando nuevos nodos. Asegúrese de mantener su token privado porque con un token y una IP pública, cualquiera puede agregar nodos a su clúster. Con eso terminamos este artículo, gracias por leer y que tenga un buen día.


Cent OS
  1. Cómo instalar CentOS 8 (con capturas de pantalla)

  2. Cómo monitorear Kubernetes con Prometheus

  3. Cómo instalar Python 3 en CentOS 7 con SCL

  4. Cómo configurar Pure-FTPD con MySQL en CentOS y RedHat

  5. Cómo configurar claves SSH en CentOS 8

Cómo configurar un servidor de respaldo centralizado con Amanda en CentOS 7

Cómo configurar Openshift Origin en CentOS 7

Cómo configurar Percona Cluster con HAproxy Loadbalancer en CentOS 7

Cómo configurar MariaDB Galera Cluster con HAproxy en CentOS 7

Cómo instalar Kubernetes en CentOS 8

Cómo instalar Kubernetes con Minikube en CentOS 8