Para desplegar un clúster de Kubernetes en openEuler, es fundamental asegurar que las máquinas cumplan con ciertos requisitos previos.
Requisitos del Sistema
- Sistema Operativo: openEuler en todas las máquinas del clúster.
- Hardware: Mínimo 2 GB de RAM y 2 CPUs por máquina. Se recomienda 30 GB de espacio en disco.
- Red: Todas las máquinas deben poder comunicarse entre sí.
- Conectividad Externa: Acceso a Internet para descargar imágenes de contenedores.
- Sin SWAP: La partición SWAP debe estar deshabilitada.
Configuración de Hardware Recomendada
Para un clúster de tres nodos (un maestro y dos nodos de trabajo), se sugiere la siguiente configuración:
| CPU | Memoria | Rol | Nombre del Host |
|---|---|---|---|
| 4 núcleos | 4 GB | Maestro | k8s-master |
| 4 núcleos | 4 GB | Nodo de Trabajo | k8s-node01 |
| 4 núcleos | 4 GB | Nodo de Trabajo | k8s-node02 |
Preparación de los Nodos
Configuración de Nombres de Host
Asignaremos nombres de host únicos a cada máquina para facilitar la identificación dentro del clúster.
Nodo Maestro
hostnamectl set-hostname k8s-master01
Nodo de Trabajo 1
hostnamectl set-hostname k8s-node01
Nodo de Trabajo 2
hostnamectl set-hostname k8s-node02
En el nodo maestro, actualizaremos el archivo /etc/hosts para incluir las direcciones IP y nombres de host de todos los nodos del clúster:
cat >> /etc/hosts << EOF
192.168.10.1 k8s-master01
192.168.10.2 k8s-node01
192.168.10.3 k8s-node02
EOF
Configuración de Direcciones IP
Se deben asignar direcciones IP estáticas a cada nodo.
Nodo Maestro (192.168.10.1/24)
Edite el archivo de configuración de red (ej. /etc/sysconfig/network-scripts/ifcfg-ens33) con los siguientes parámetros:
TYPE="Ethernet"
BOOTPROTO="none"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.10.1"
PREFIX="24"
GATEWAY="192.168.10.254"
DNS1="8.8.8.8"
Nodo de Trabajo 1 (192.168.10.2/24)
Configure el archivo de red de manera similar, ajustando la IPADDR a 192.168.10.2.
TYPE="Ethernet"
BOOTPROTO="none"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.10.2"
PREFIX="24"
GATEWAY="192.168.10.254"
DNS1="8.8.8.8"
Nodo de Trabajo 2 (192.168.10.3/24)
Configure el archivo de red de manera similar, ajustando la IPADDR a 192.168.10.3.
TYPE="Ethernet"
BOOTPROTO="none"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.10.3"
PREFIX="24"
GATEWAY="192.168.10.254"
DNS1="8.8.8.8"
Resolución de Nombres de Host y IPs
Asegúrese de que el archivo /etc/hosts en todas las máquinas contenga las asignaciones correctas de IP a nombres de host:
cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.1 k8s-master01
192.168.10.2 k8s-node01
192.168.10.3 k8s-node02
Configuración del Firewall
Desactive el servicio firewalld en todos los nodos para evitar conflictos:
systemctl disable firewalld
systemctl stop firewalld
firewall-cmd --state
La salida esperada es: not running.
Configuración de SELinux
Deshabilite SELinux editando el archivo /etc/selinux/config. Este cambio requiere un reinicio del sistema.
sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
Sincronización de Tiempo y Configuración Regional
Mantener la hora sincronizada es crucial para Kubernetes. Instale y configure ntpdate y ajuste la zona horaria y el idioma.
yum install ntpdate -y
ntpdate time1.aliyun.com
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo 'LANG="en_US.UTF-8"' >> /etc/profile;source /etc/profile
Habilitación de Reenvío de Paquetes y Filtros de Red
Configure el sistema para permiitr el reenvío de tráfico IPv4 a través de las cadenas iptables y habilite los filtros de red para puentes.
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf