progreso en k8s
This commit is contained in:
parent
482b07332c
commit
b280542249
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: Instalación de k8s utilizando Ansible
|
title: Instalación de kubernetes utilizando Ansible
|
||||||
published: 2024-10-30
|
published: 2024-10-30
|
||||||
description: ''
|
description: ''
|
||||||
image: ''
|
image: ''
|
||||||
@ -54,4 +54,83 @@ sed -i 's/127\.0\.0\.1/192\.168\.56\.10/g' $KUBECONFIG
|
|||||||
|
|
||||||
Finalmente podemos usar kubectl.
|
Finalmente podemos usar kubectl.
|
||||||
|
|
||||||
## Instalación k3s
|
## Instalación k8s
|
||||||
|
|
||||||
|
Para instalar kubernetes se va a utilizar [k3s](https://k3s.io/), que se instala siguiendo estos pasos:
|
||||||
|
|
||||||
|
* en el **plano de control**:
|
||||||
|
```shell
|
||||||
|
curl -sfL https://get.k3s.io | sh -
|
||||||
|
```
|
||||||
|
después se obtiene el token en `/var/lib/rancher/k3s/server/node-token`
|
||||||
|
* en los nodos:
|
||||||
|
```shell
|
||||||
|
curl -sfL https://get.k3s.io | K3S_URL=https://[ip plano control]:6443 K3S_TOKEN=[token] sh -
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ansible
|
||||||
|
|
||||||
|
sin embargo, nos interesa automatizar dicho proceso ya que haciendo esto permite escalar el número de nodos fácilmente. para ello, se va a usar [ansible](https://www.ansible.com/). Se han configurado los siguientes ficheros.
|
||||||
|
|
||||||
|
### Inventario
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
all:
|
||||||
|
children:
|
||||||
|
planos_control:
|
||||||
|
hosts:
|
||||||
|
p_nodo:
|
||||||
|
ansible_ssh_host: 192.168.56.10
|
||||||
|
ansible_ssh_user: vagrant
|
||||||
|
ansible_ssh_private_key_file: ../.vagrant/machines/plano-control/virtualbox/private_key
|
||||||
|
trabajadores:
|
||||||
|
hosts:
|
||||||
|
nodo1:
|
||||||
|
ansible_ssh_host: 192.168.56.20
|
||||||
|
ansible_ssh_user: vagrant
|
||||||
|
ansible_ssh_private_key_file: ../.vagrant/machines/nodo1/virtualbox/private_key
|
||||||
|
nodo2:
|
||||||
|
ansible_ssh_host: 192.168.56.30
|
||||||
|
ansible_ssh_user: vagrant
|
||||||
|
ansible_ssh_private_key_file: ../.vagrant/machines/nodo2/virtualbox/private_key
|
||||||
|
|
||||||
|
vars:
|
||||||
|
token_k3s: ""
|
||||||
|
token_k3s_base64: ""
|
||||||
|
ip_pcontrol: "192.168.56.10"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Playbook
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- hosts: all
|
||||||
|
become: true
|
||||||
|
tasks:
|
||||||
|
- name: Actualizamos el sistema
|
||||||
|
apt: update_cache=yes upgrade=yes
|
||||||
|
- name: nos aseguramos de que curl esté instalado
|
||||||
|
apt:
|
||||||
|
pkg:
|
||||||
|
- curl
|
||||||
|
|
||||||
|
- hosts: planos_control
|
||||||
|
become: true
|
||||||
|
tasks:
|
||||||
|
# Para que no haya problemas de certificados al usar kubectl, añadimos la IP del plano de control durante la instalación de k3s.
|
||||||
|
- name: instalamos k3s
|
||||||
|
shell: "curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC='--tls-san {{ ip_pcontrol }}' sh -"
|
||||||
|
- name: sacar token
|
||||||
|
ansible.builtin.slurp:
|
||||||
|
src: "/var/lib/rancher/k3s/server/node-token"
|
||||||
|
register: token_k3s_base64
|
||||||
|
- name: descodificar token
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
token_k3s: "{{ token_k3s_base64.content | ansible.builtin.b64decode | replace('\n', '' ) }}"
|
||||||
|
- debug: msg="el token es {{token_k3s}}"
|
||||||
|
|
||||||
|
- hosts: trabajadores
|
||||||
|
become: true
|
||||||
|
tasks:
|
||||||
|
- name: instalamos k3s con el token
|
||||||
|
shell: "curl -sfL https://get.k3s.io | K3S_URL=https://{{ ip_pcontrol }}:6443 K3S_TOKEN={{ hostvars['p_nodo'].token_k3s }} sh -"
|
||||||
|
```
|
||||||
|
Loading…
x
Reference in New Issue
Block a user