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

Cómo instalar Kubernetes (k8s) 1.7 en CentOS 7 / RHEL 7

Kubernetes es un clúster y orquestación motor para contenedores docker. En otras palabras, Kubernetes es un software o herramienta de código abierto que se utiliza para orquestar y administrar contenedores Docker en un entorno de clúster. Kubernetes también se conoce como k8s y fue desarrollado por Google y donado a la "Fundación Cloud Native Computing"

En la configuración de Kubernetes, tenemos un nodo maestro y varios nodos. Los nodos de clúster se conocen como nodos trabajadores o Minion. Desde el nodo maestro gestionamos el clúster y sus nodos mediante ‘kubeadm ' y 'kubectl ‘  comando.

Kubernetes se puede instalar e implementar utilizando los siguientes métodos:

  • Minikube (es un clúster de kubernetes de un solo nodo)
  • Kops (configuración de kubernetes de varios nodos en AWS)
  • Kubeadm (Clúster multinodo en nuestras propias instalaciones)

En este artículo instalaremos la última versión de Kubernetes 1.7 en CentOS 7/RHEL 7 con la utilidad kubeadm. En mi configuración, tomo tres servidores CentOS 7 con una instalación mínima. Un servidor actuará como nodo maestro y los otros dos servidores serán nodos auxiliares o trabajadores.

En el Master Node se instalarán los siguientes componentes

  • Servidor API – Proporciona la API de kubernetes usando Jason / Yaml sobre http, los estados de los objetos de la API se almacenan en etcd
  • Programador   – Es un programa en el nodo maestro que realiza las tareas de programación, como el lanzamiento de contenedores en los nodos trabajadores según la disponibilidad de recursos
  • Administrador de controladores – El trabajo principal del administrador del controlador es monitorear los controladores de replicación y crear pods para mantener el estado deseado.
  • etc. – Es una base de datos de pares clave-valor. Almacena datos de configuración del clúster y el estado del clúster.
  • Utilidad Kubectl – Es una utilidad de línea de comandos que se conecta al servidor API en el puerto 6443. Los administradores la utilizan para crear pods, servicios, etc.

En los nodos trabajadores, se instalarán los siguientes componentes

  • Cubelet – Es un agente que se ejecuta en cada nodo trabajador, se conecta a Docker y se encarga de crear, iniciar y eliminar contenedores.
  • Proxy de Kube – Enruta el tráfico a los contenedores apropiados según la dirección IP y el número de puerto de la solicitud entrante. En otras palabras, podemos decir que se utiliza para la traducción de puertos.
  • Cápsula – El pod se puede definir como un grupo o varios niveles de contenedores que se implementan en un único nodo trabajador o en un host acoplable.

Pasos de instalación de Kubernetes 1.7 en CentOS 7/RHEL 7

Realice los siguientes pasos en Master Node

Paso 1:deshabilite SELinux y configure las reglas del cortafuegos

Inicie sesión en su nodo maestro de Kubernetes, configure el nombre de host y deshabilite selinux usando los siguientes comandos

~]# hostnamectl set-hostname 'k8s-master'~]# exec bash~]# setenforce 0~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' / etc/sysconfig/selinux

Configure las siguientes reglas de cortafuegos.

[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=6443/tcp[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=2379-2380/ tcp[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=10250/tcp[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=10251/tcp[[correo electrónico protected] ~]# firewall-cmd --permanent --add-port=10252/tcp[[correo electrónico protegido] ~]# firewall-cmd --permanent --add-port=10255/tcp[[correo electrónico protegido] ~] # firewall-cmd --reload[[correo electrónico protegido] ~]# modprobe br_netfilter[[correo electrónico protegido] ~]# echo '1'> /proc/sys/net/bridge/bridge-nf-call-iptables

Nota: En caso de que no tenga su propio servidor dns, actualice el archivo /etc/hosts en los nodos maestro y trabajador

192.168.1.30 k8s-master192.168.1.40 trabajador-nodo1192.168.1.50 trabajador-nodo2

Deshabilite el intercambio en todos los nodos usando “swapoff -a ” y elimine o comente las particiones de intercambio o el archivo de intercambio del archivo fstab

Paso 2:configurar el repositorio de Kubernetes

Los paquetes de Kubernetes no están disponibles en los repositorios predeterminados de CentOS 7 y RHEL 7. Use el siguiente comando para configurar sus repositorios de paquetes.

[[email protected] ~]# cat < /etc/yum.repos.d/kubernetes.repo> [kubernetes]> name=Kubernetes> baseurl=https://packages.cloud.google.com /yum/repos/kubernetes-el7-x86_64> enable=1> gpgcheck=1> repo_gpgcheck=1> gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg>         https:/ /packages.cloud.google.com/yum/doc/rpm-package-key.gpg> EOF [[email protected] ~]#

Paso 3:Instale Kubeadm y Docker

Una vez que los repositorios de paquetes estén configurados, ejecute el siguiente comando para instalar los paquetes kubeadm y docker.

[[email protected] ~]# yum install kubeadm docker -y

Inicie y habilite el servicio kubectl y docker

[[email protected] ~]# systemctl reiniciar docker &&systemctl habilitar docker[[email protected] ~]# systemctl  reiniciar kubelet &&systemctl habilitar kubelet

Paso 4:inicialice Kubernetes Master con 'kubeadm init'

Ejecute el siguiente comando para inicializar y configurar kubernetes master.

[[correo electrónico protegido] ~]# kubeadm init

La salida del comando anterior sería algo así como a continuación

Como podemos ver en el resultado, kubernetes master se ha inicializado correctamente. Ejecute los siguientes comandos para usar el clúster como usuario raíz.

[[correo electrónico protegido] ~]# mkdir -p $HOME/.kube[[correo electrónico protegido] ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config[[correo electrónico protegido] ~]# chown $(id -u):$(id -g) $HOME/.kube/config

Paso 5:implementar la red de módulos en el clúster

Intente ejecutar los siguientes comandos para obtener el estado del clúster y los pods.

Para que el estado del clúster esté listo y el estado de kube-dns se esté ejecutando, implemente la red de módulos para que los contenedores de diferentes hosts se comuniquen entre sí. La red POD es la red superpuesta entre los nodos trabajadores.

Ejecute el siguiente comando para implementar la red.

[[email protected] ~]# export kubever=$(versión de kubectl | base64 | tr -d '\n')[[email protected] ~]# kubectl apply -f "https://cloud.weave. work/k8s/net?k8s-version=$kubever"serviceaccount "weave-net" createdclusterrole "weave-net" createdclusterrolebinding "weave-net" createddaemonset "weave-net" created[[email protected] ~]#

Ahora ejecute los siguientes comandos para verificar el estado

 [[correo electrónico protegido] ~]# kubectl get nodesname status age versiónk8s-master listos 1H v1.7.7 [[correo electrónico protegido] ~]# kubectl get pods-todos los namespacesnamespace name preparado el estado reinicie agekube etcd-k8ss -Master 1/1 ejecutando 0 57mkube-system kube-apiserver-k8s-master 1/1 ejecutando 0 57mkube-system kube-Controller-manager-k8s-Master 1/1 ejecutando 0 57mkube-system kube-dns-2425271678-044ww 3 /3 Running 0 1HKube-System Kube-Proxy-9H259 1/1 Running 0 1HKube-System Kube-Scheduler-K8s-Master 1/1 Ejecutar 0 57MKube-System Weave-Net-HDJZD 2/2 Running 0 7M [[Correo electrónico ProtextEd. ] ~]#

Ahora agreguemos nodos trabajadores a los nodos maestros de Kubernetes.

Realice los siguientes pasos en cada nodo trabajador

Paso 1:deshabilite SELinux y configure las reglas del cortafuegos en ambos nodos

Antes de deshabilitar SELinux, configure el nombre de host en ambos nodos como 'worker-node1' y 'worker-node2' respectivamente

~]# setenforce 0~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux~]# firewall-cmd --permanent --add -port=10250/tcp~]# firewall-cmd --permanente --add-port=10255/tcp~]# firewall-cmd --permanent --add-port=30000-32767/tcp~]# firewall-cmd --permanente --add-port=6783/tcp~]# firewall-cmd  --reload~]# echo '1'> /proc/sys/net/bridge/bridge-nf-call-iptables

Paso 2:Configure los repositorios de Kubernetes en ambos nodos trabajadores

~]# cat < /etc/yum.repos.d/kubernetes.repo> [kubernetes]> name=Kubernetes> baseurl=https://packages.cloud.google.com/yum/repos/ kubernetes-el7-x86_64> enable=1> gpgcheck=1> repo_gpgcheck=1> gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg>         https://packages.cloud. google.com/yum/doc/rpm-package-key.gpg> EOF

Paso 3:Instale kubeadm y el paquete docker en ambos nodos

[[email protected] ~]# yum  install kubeadm docker -y[[email protected] ~]# yum  install kubeadm docker -y

Inicie y habilite el servicio docker

[[email protected] ~]# systemctl reiniciar docker &&systemctl habilitar docker[[email protected] ~]# systemctl reiniciar docker &&systemctl habilitar docker

Paso 4:ahora une los nodos trabajadores al nodo maestro

Para unir los nodos trabajadores al nodo maestro, se requiere un token. Siempre que kubernetes master se inicializa, en la salida obtenemos el comando y el token. Copie ese comando y ejecútelo en ambos nodos.

[[email protected] ~]# kubeadm join --token a3bd48.1bc42347c3b35851 192.168.1.30:6443

La salida del comando anterior sería algo así como a continuación

[[email protected] ~]# kubeadm join --token a3bd48.1bc42347c3b35851 192.168.1.30:6443

La salida sería algo así como a continuación

Ahora verifique el estado de los nodos desde el nodo maestro usando el comando kubectl

 [[correo electrónico protegido] ~]# kubectl get nodesname status age versiónk8s-master listos 2h v1.7.5worker-nodo1 listos 20m v1.7.5worker-nodo2 listos 18m v1.7.5 [[correo electrónico protegido]#]#  

Como podemos ver, los nodos maestros y trabajadores están listos. Esto concluye que kubernetes 1.7 se instaló con éxito y también se unieron con éxito dos nodos de trabajo. Ahora podemos crear pods y servicios.

Comparta sus opiniones y comentarios en caso de que este artículo lo ayude a instalar la última versión de kubernetes 1.7


Cent OS
  1. Cómo instalar phpMyAdmin en RHEL 8 / CentOS 8

  2. Cómo instalar P7Zip en RHEL 8 / CentOS 8

  3. Cómo instalar Icinga 2 en CentOS 8 / RHEL 8

  4. Cómo instalar MongoDB en CentOS 8 / RHEL 8

  5. Cómo instalar Firefox 10 en CentOS 6 / RHEL 6

Cómo instalar maven en RHEL 8 / CentOS 8

Cómo instalar cpan en RHEL 8 / CentOS 8

Cómo instalar ruby ​​en RHEL 8 / CentOS 8

Cómo instalar Docker CE en RHEL 8 / CentOS 8

Cómo instalar VirtualBox 6.0 en CentOS 8 / RHEL 8

Cómo instalar PHP 7.4 en CentOS 8 / RHEL 8