diff --git a/1.instala_kubernetes.sh b/1.instala_kubernetes.sh index c5a9b92..a975869 100755 --- a/1.instala_kubernetes.sh +++ b/1.instala_kubernetes.sh @@ -1,7 +1,6 @@ #!/bin/bash # Variables -#KUBERNETES_VERSION="1.28.2-00" # Cambia por la versión que necesites USER="curso" # Usuario con acceso sudo # Actualizar sistema @@ -49,33 +48,31 @@ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubun # Install containerd sudo apt update -sudo apt install -y containerd.io +sudo apt install containerd.io -y # Configure containerd and start service -sudo mkdir -p /etc/containerd -sudo containerd config default|sudo tee /etc/containerd/config.toml +# sudo mkdir -p /etc/containerd +sudo containerd config default|sudo tee /etc/containerd/config.toml >/dev/null 2>&1 +sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml # restart containerd sudo systemctl restart containerd -sudo systemctl enable containerd -systemctl status containerd - - - - - +# sudo systemctl enable containerd +# systemctl status containerd # Configurar el repositorio de Kubernetes echo "Agregando el repositorio de Kubernetes..." -sudo apt-get install apt-transport-https ca-certificates curl -y +### sudo apt-get install apt-transport-https ca-certificates curl -y # If the folder `/etc/apt/keyrings` does not exist, it should be created before the curl command, read the note below. # sudo mkdir -p -m 755 /etc/apt/keyrings -curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg -sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg # allow unprivileged APT programs to read this keyring +curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/k8s.gpg +##### curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg +#sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg # allow unprivileged APT programs to read this keyring # This overwrites any existing configuration in /etc/apt/sources.list.d/kubernetes.list -echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list -sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list # helps tools such as command-not-found to work correctly +echo 'deb [signed-by=/etc/apt/keyrings/k8s.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | sudo tee /etc/apt/sources.list.d/k8s.list +##### echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list +#sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list # helps tools such as command-not-found to work correctly #curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg @@ -90,22 +87,16 @@ sudo apt-mark hold kubelet kubeadm kubectl - - - - - - # Instalar containerd -echo "Instalando containerd..." -sudo apt-get install -y containerd -sudo mkdir -p /etc/containerd -containerd config default | sudo tee /etc/containerd/config.toml +#echo "Instalando containerd..." +# sudo apt-get install -y containerd +# sudo mkdir -p /etc/containerd +# containerd config default | sudo tee /etc/containerd/config.toml -# Configurar containerd para usar systemd como driver de cgroup -sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml -sudo systemctl restart containerd -sudo systemctl enable containerd + # Configurar containerd para usar systemd como driver de cgroup +# sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml +# sudo systemctl restart containerd +# sudo systemctl enable containerd sudo kubeadm config images pull diff --git a/2.levanta_cluster.sh b/2.levanta_cluster.sh index 6f8228a..b25da5f 100755 --- a/2.levanta_cluster.sh +++ b/2.levanta_cluster.sh @@ -3,20 +3,20 @@ # Variables USER="curso" # Usuario con acceso sudo -# Inicializar el nodo maestro (opcional) -read -p "¿Quieres inicializar el nodo maestro ahora? (y/n): " INIT_MASTER -if [ "$INIT_MASTER" == "y" ]; then - echo "Inicializando el nodo maestro..." - sudo kubeadm init --pod-network-cidr=174.24.0.0/16 --cri-socket=unix:///run/containerd/containerd.sock --upload-certs --control-plane-endpoint=k8scp - # Configurar kubectl para el usuario - echo "Configurando kubectl para el usuario $USER..." - mkdir -p /home/$USER/.kube - sudo cp -i /etc/kubernetes/admin.conf /home/$USER/.kube/config - sudo chown $(id -u $USER):$(id -g $USER) /home/$USER/.kube/config -else - echo "Nodo maestro no inicializado. Ejecuta 'kubeadm init' manualmente si deseas configurarlo más tarde." -fi +echo "Inicializando el nodo maestro..." +sudo kubeadm init --control-plane-endpoint=k8scp + + +# sudo kubeadm init --pod-network-cidr=174.24.0.0/16 --cri-socket=unix:///run/containerd/containerd.sock --upload-certs --control-plane-endpoint=k8scp + +# Configurar kubectl para el usuario +echo "Configurando kubectl para el usuario $USER..." +mkdir -p /home/$USER/.kube +sudo cp -i /etc/kubernetes/admin.conf /home/$USER/.kube/config +sudo chown $(id -u $USER):$(id -g $USER) /home/$USER/.kube/config + +# eliminar restriccion de pods en el master +kubectl taint nodes --all node-role.kubernetes.io/control-plane- -echo "Instalación de Kubernetes completada." diff --git a/3.instala_calico.sh b/3.instala_calico.sh index 166f7e1..cb47bf4 100755 --- a/3.instala_calico.sh +++ b/3.instala_calico.sh @@ -2,6 +2,11 @@ # Variables +kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.29.1/manifests/calico.yaml + + + + # Instalar red de pods (Calico) echo "Instalando la red de pods (Calico)..." diff --git a/4.prueba_k8s.sh b/4.prueba_k8s.sh new file mode 100755 index 0000000..7c20faa --- /dev/null +++ b/4.prueba_k8s.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Variables + +kubectl create ns demo-app +kubectl create deployment nginx-app --image nginx --replicas 2 --namespace demo-app +kubectl get deployment -n demo-app +kubectl get pods -n demo-app + +kubectl run test-pod2 --image=busybox -- sleep 3600 + +kubectl create deployment gitea-app2 --image gitea/gitea:latest --replicas 2 --namespace demo-app + +kubectl describe pod nginx-app --namespace demo-app | less + +kubectl delete deployment gitea-app --namespace demo-app \ No newline at end of file diff --git a/README.md b/README.md index 0c3e8a7..b6ee955 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # infra_cloudinit +https://www.linuxtechi.com/install-kubernetes-on-ubuntu-24-04/ +