meta data de esta página
¡Esta es una revisión vieja del documento!
Instalación de Kubernetes en Centos
La Wikipedida define Kubernetes como (referido en inglés comúnmente como “K8s”) un sistema de código libre para la automatización del despliegue, ajuste de escala y manejo de aplicaciones en contenedores .
A esta clase de software se la conoce como orquestadores, existen varios y cada uno tienen sus propias características
Pasos previos
Vamos a realizar los siguientes pasos tanto en el manager como en el resto de nodos Lo primero será deshabilitar la swap
- temporalmente (hasta que reiniciemos )con el comando swapoff -a
- Definitivamente editando el fichero /etc/fstab y comentando la línea de la partición del swap
- Activamos el modo bridge . Para ello creamos un fichero de configuración para que se cargue en /etc/sysctl.d incluido el manager
cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF
y aplicamos los cambios con
sysctl --system
- deshabilitamos SElinux
- instalamos docker
yum install -y docker
- Lo ponemos para que arranque al inicio
systemctl enable docker && systemctl start docker
Instalación de Kubernetes
Pasos a realizar en todos los nodos (incluido el manager)
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=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
Instalamos los paquetes
yum update yum install -y kubelet kubeadm kubectlLo ponemos para que arranque al inicio
systemctl enable kubelet && systemctl start kubelet
Comprobamos que kubernetes y docker están en el mismo grupo de control ( cgroup)
Para verificar el cgroup de docker
docker info | grep -i cgroup
Para añadir kubernetes al mismo cgroup
sed -i 's/cgroup-driver=systemd/cgroup-driver=cgroupfs/g' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
Reiniciamos los servicios
systemctl daemon-reload systemctl restart kubelet
Pasos a realizar sólo en el Manager
Iniciamos el cluster
kubeadm init
Cuando este comando termina nos aparecerá un comando con el token y el hash para unir los nodos. Este comando deberemos de guardarlos para añadir los nodos.
Antes de usar Kubernetes deberemos de ejecutar los siguientes comandos para terminar la configuración.
- Si kubernetes lo vamos a lanzar como root sólo debemos ejecutar el siguiente comando
export KUBECONFIG=/etc/kubernetes/admin.conf
- Si lo vamos a lanzar como otro usuario deberemos de crear un directorio para la configuración, copiar los archivos necesarios y darle permisos sobre dichos archivos
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Ahora debemos de definir el modelo de red que queremos usar en kubernetes , hay varias aproximaciones cada una con distitas características (https://kubernetes.io/docs/concepts/cluster-administration/networking/)
Si por ejemplo vamos a usar flannel ejecutariamos en el manager
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Si usamos weave el comando sería
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
Si queremos comprobar si se ha instalado correctamente podemos ejecutar
kubectl get pods --all-namespacesnos deberías aparecer un pods llamada weave-net-wvlbx con el estado running