Skip to content

Commit

Permalink
Fix stratio_docs release 0.2 (kubernetes-sigs#345)
Browse files Browse the repository at this point in the history
* Fix docs

* Fix docs

* Fix Azure docs

* Fix Azure docs

* Fix images

* Fix gcp images

* Fix Gcp docs

* Fix Gcp docs

* Remove imagesdir from architecture file

* Fix bin path

* Fix format

* Fix format

* Fix typo

* Remove imagesdir

* Fix lines

* Add images

* Fix typo

* Fix typo

* Fix Image Config

* Fix Image Config GCP

* Fix tips

* Fix Image Config GCP

* Fix Image Config GCP

* Fix make GCP

* Add more info

* Fix typo

* More fixes

* Apply suggested changes

* More fixes

* Fix empty line

* More fixes

---------

Co-authored-by: Francisco Augusto <faugusto@stratio.com>
  • Loading branch information
iamjanr and kahun authored Oct 23, 2023
1 parent 8beec6e commit 5690a4a
Show file tree
Hide file tree
Showing 27 changed files with 335 additions and 154 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions stratio-docs/es/modules/ROOT/pages/architecture.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
= Arquitectura

Arquitectura de referencia:

image::eks-reference-architecture.png[]

== Introducción

image::arq-intro.png[]
Expand Down Expand Up @@ -415,6 +419,7 @@ a|
enablePerformancePlus
subscriptionID
----

|===

En el aprovisionamiento se crean otras _StorageClasses_ (no por defecto) según el proveedor, pero para utilizarlas las cargas de trabajo deberán especificarlas en su despliegue.
Expand Down
221 changes: 140 additions & 81 deletions stratio-docs/es/modules/ROOT/pages/aws-image-builder.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,17 @@

Esta sección explica cómo crear imágenes propias para _Stratio Cloud Provisioner_ https://image-builder.sigs.k8s.io/capi/providers/aws.html[en AWS].

El creador de imágenes se puede utilizar para crear imágenes destinadas a usarse con proveedores de CAPI de Kubernetes. Cada proveedor tiene un formato propio de imágenes con el que puede trabajar. Por ejemplo, las instancias de AWS utilizan AMI.

== Prerrequisitos

=== Globales

Packer y Ansible se utilizan para construir las imágenes. Esta herramienta se ha bifurcado y ampliado del proyecto Wardroom.
Packer y Ansible se utilizan para construir las imágenes.

* Versión del empaquetador (Packer) >= 1.6.0
* Complemento de Goss para la versión de Packer >= 1.2.0
* Versión de Ansible >= 2.10.0

Si los archivos binarios necesarios no están presentes, se pueden instalar en _images/capi/.bin_ con el comando `make deps-ami`. Este directorio deberá agregarse a su _$PATH_.
Si los archivos binarios necesarios no están presentes, se pueden instalar en _~/.local/bin_ con el comando `make deps-ami`. Este directorio deberá agregarse a su _$PATH_.

=== De AWS

Expand All @@ -24,155 +22,216 @@ Es necesario tener:
* https://docs.aws.amazon.com/es_es/cli/latest/userguide/cli-chap-configure.html[AWS CLI instalado y configurado].
* VPC por defecto para el usuario de AWS.

[NOTE]
====
.VPCIdNotSpecified: no hay VPC por defecto para este usuario
+
Edita el fichero _images/capi/packer/ami/packer.json_ y modifica el valor de la variable `vpc_id` por el ID de la VPC por defecto de tu cuenta de AWS.
+
image:https://user-images.githubusercontent.com/112587171/232500508-c90c8901-9ac2-4f94-8bf3-8c986c1ff105.png[]
+
image:https://user-images.githubusercontent.com/112587171/232500704-3fcf3706-435e-48af-8caf-d1188812b133.png[]
==== Errores frecuentes

.Error: subnet_id or subnet_filter must be provided for non-default VPCs
+
Edita el fichero _images/capi/packer/ami/packer.json_ y modifica el valor de la variable `subnet_id` por el ID de una _subnet_ de la VPC especificada en la variable `vpc_id`.
*VPCIdNotSpecified: no hay VPC por defecto para este usuario*

.Timeout waiting for SSH
+
* Edita el fichero _images/capi/packer/ami/packer.json_ y modifica el valor de la variable `ssh_keypair_name` por el nombre de la clave SSH que se utilizará para conectarse a la instancia creada a partir de la imagen.
Para solucionarlo, edita el fichero _images/capi/packer/ami/packer.json_ y modifica el valor de la variable `vpc_id` con el ID de la VPC por defecto de tu cuenta de AWS.

Para conseguir dicho valor debes navegar a la sección 'VPC' de la consola de AWS y copiar el _VPC ID_ de la pestaña 'Details'.

image::vpc-id.png[]

*`subnet_id` or `subnet_filter` must be provided for non-default VPCs*

Para solucionarlo, edita el fichero _images/capi/packer/ami/packer.json_ y modifica el valor de la variable `subnet_id` por el ID de una _subnet_ de la VPC especificada en la variable `vpc_id`.

*Timeout waiting for SSH*

Sigue estos pasos para solucionarlo:

. Edita el fichero _images/capi/packer/ami/packer.json_ y modifica el valor de la variable `ssh_keypair_name` por el nombre de la clave SSH.
+
[source,bash]
[source,json]
----
"ssh_keypair_name": "my-ssh-keypair"
----

. Modifica el valor de la variable `ssh_private_key_file` por la ruta al fichero de la clave privada SSH.
+
* Modifica el valor de la variable `ssh_private_key_file` por la ruta al fichero de la clave privada de la clave SSH que se utilizará para conectarse a la instancia creada a partir de la imagen.
+
[source,bash]
[source,json]
----
"ssh_private_key_file": "/home/user/.ssh/my-ssh-keypair.pem"
----

. La máquina virtual debe tener una IP pública para poder conectarse a ella. Si no tiene, puedes crearla para la instancia editando el fichero _images/capi/packer/ami/packer.json_ y modificando/añadiendo el valor de la variable `associate_public_ip_address` a _true_ en la sección 'builders'.
+
* La máquina virtual debe tener una IP pública para poder conectarse a ella. Si no tiene, puedes crearla para la instancia creada a partir de la imagen editando el fichero _images/capi/packer/ami/packer.json_ y modificando/añadiendo el valor de la variable `associate_public_ip_address` a _true_ en la sección 'builders'.
+
[source,bash]
[source,json]
----
"associate_public_ip_address": "true"
----

. Crea/asigna un grupo de seguridad (con permisos al puerto 22) a la instancia creada (en la misma red que esta) y modifica/añade el valor de la variable `security_group_id` con el ID del grupo de seguridad creado/asignado en el fichero _images/capi/packer/ami/packer.json_ en la sección 'builders'.
+
* Crea/asigna un grupo de seguridad (con permisos al puerto 22) a la instancia creada a partir de la imagen (en la misma red que esta) y modifica/añade el valor de la variable `security_group_id` con el ID del grupo de seguridad creado/asignado en el fichero _images/capi/packer/ami/packer.json_ en la sección 'builders'.
+
[source,bash]
[source,json]
----
"security_group_id": "sg-1234567890"
----
+
image:https://user-images.githubusercontent.com/112587171/232501134-2aac0dda-dada-4203-82a6-952dfeee243b.png[]
image::segurity-group.png[]

* Añade la variable `ssh_interface` = "public_ip" en la sección 'builders' del fichero _images/capi/packer/ami/packer.json_ para que se conecte a la instancia creada a partir de la imagen por la IP privada.
. Añade la variable `ssh_interface` = "public_ip" en la sección 'builders' del fichero _images/capi/packer/ami/packer.json_ para que se conecte a la instancia por la IP privada.
+
[source,bash]
[source,json]
----
"ssh_interface": "public_ip"
----
+
* Crea un "internet gateway" y una "route table" (o usa la de por defecto) para la VPC de tu cuenta de AWS y asócialos.
+
image:https://user-images.githubusercontent.com/112587171/232501256-7383320b-cc49-4966-bd99-00f407be09bb.png[]

====
. Crea un _internet gateway_ y una _route table_ (o usa la de por defecto) para la VPC de tu cuenta de AWS y asócialos.
+
image::internet-gatway.png[]

== Configuración de la imagen

Para modificar la https://image-builder.sigs.k8s.io/capi/capi.html#customization[configuración de la imagen] puedes editar el archivo _images/capi/packer/config/ami-<OS>.json_. Los parámetros de configuración se pueden encontrar en la https://github.com/kubernetes-sigs/image-builder/tree/1510769a271725cda3d46907182a2843ef5c1c8b/images/capi/packer/ami[documentación de Packer].

[TIP]
====
. Modifica las versiones de Kubernetes.
Estas son algunas recomendaciones:

* Modifica las versiones de Kubernetes.
+
https://github.com/kubernetes-sigs/image-builder/blob/3b70f45036617ba8752b0711ee6d212f9591a514/images/capi/packer/config/kubernetes.json[Versión de Kubernetes]:
Edita el archivo _images/capi/packer/config/kubernetes.json_ y modifica los valores de las variables `crictl_version`, `kubernetes_deb_version`, `kubernetes_rpm_version`, `kubernetes_semver` y `kubernetes_series`.
+
[%autowidth]
|===
| *crictl_version* | 1.26.1 | Versión de las cri-tools.
| *kubernetes_deb_version* | 1.24.10-00 | Versión de Kubernetes para Debian.
| *kubernetes_rpm_version* | 1.24.10-0 | Versión de Kubernetes para RPM.
| *kubernetes_semver* | 1.24.10 | Versión semántica de Kubernetes que se instalará en la imagen.
| *kubernetes_series* | 1.24 | Versión de la serie de Kubernetes que se instalará en la imagen.
|===
+
https://github.com/kubernetes-sigs/image-builder/blob/3b70f45036617ba8752b0711ee6d212f9591a514/images/capi/packer/ami/packer.json[Tipo de instancia]:
.Cambia el tipo de instancia de la imagen.
La versión de las https://github.com/kubernetes-sigs/cri-tools/tags[cri-tools] tiene que ir pareja con la versión de Kubernetes que se esté utilizando.
+
[%autowidth]
|===
| Versión de las cri-tools | Versión de Kubernetes
| 1.26.1 | 1.24, 1.25, 1.26
|===

Edita el archivo _images/capi/packer/ami/packer.json_ y modifica el valor de la variable `builder_instance_type` por el tipo de instancia deseado (sección 'builders').
* Modifica los parámetros del kernel.
+
IMPORTANT: Requerido para que funcione la monitorización de Stratio.
+
Edita el fichero _ansible/roles/node/tasks/main.yml_ y modifica la tarea con el nombre _Set and persist kernel params_ para añadir el parámetro `vm.max_map_count` con el valor 262144.
+
[source,yaml]
----
- name: Set and persist kernel params
sysctl:
name: "{{ item.param }}"
value: "{{ item.val }}"
state: present
sysctl_set: yes
sysctl_file: "{{ sysctl_conf_file }}"
reload: yes
loop:
- { param: net.bridge.bridge-nf-call-iptables, val: 1 }
- { param: net.bridge.bridge-nf-call-ip6tables, val: 1 }
- { param: net.ipv4.ip_forward, val: 1 }
- { param: net.ipv6.conf.all.forwarding, val: 1 }
- { param: net.ipv6.conf.all.disable_ipv6, val: 0 }
- { param: net.ipv4.tcp_congestion_control, val: bbr }
- { param: vm.overcommit_memory, val: 1 }
- { param: kernel.panic, val: 10 }
- { param: kernel.panic_on_oops, val: 1 }
- { param: fs.inotify.max_user_instances, val: 8192 }
- { param: fs.inotify.max_user_watches, val: 524288 }
- { param: vm.max_map_count, val: 262144 }
----

* Cambia el tipo de instancia de la imagen.
+
Edita el archivo _images/capi/packer/ami/packer.json_ y modifica el valor de la variable `builder_instance_type` en la sección 'builders' por el tipo de instancia deseado.
+
[source,json]
----
"builder_instance_type": "t3.medium"
----

.Modifica la región donde crear la instancia para la construcción de la imagen.
* Modifica la región donde crear la instancia para la construcción de la imagen.
+
Edita el archivo _images/capi/packer/ami/packer.json_ y modifica el valor de la variable `region` por la región donde se creará la instancia (sección 'builders').
[source,bash]
Edita el archivo _images/capi/packer/ami/packer.json_ y modifica el valor de la variable `region` en la sección 'builders' por la región donde se creará la instancia.
+
[source,json]
----
"region": "eu-west-1"
----

.Limita las regiones donde disponibilizar la imagen (sección 'variables').
[source,bash]
* Limita las regiones donde disponibilizar la imagen.
+
Edita el archivo _images/capi/packer/ami/packer.json_ y modifica el valor de la variable `ami_regions` en la sección 'variables' por las regiones donde se disponibilizará la imagen.
+
[source,json]
----
"ami_regions": ["eu-west-1", "eu-west-2"]
----

====

== Construcción de la imagen

El siguiente comando instala/comprueba las dependencias necesarias para construir la imagen (ruta: _images/capi_):

[source,shell]
. Clona el repositorio _image-builder_ si no lo tenías previamente.
+
[source,console]
----
# make deps-ami
git clone https://github.com/kubernetes-sigs/image-builder.git
cd image-builder
----

image:https://user-images.githubusercontent.com/112587171/232500797-a8168ab5-23c9-43bc-b9bb-c0af20e0093d.png[Make deps, width=100%]

Desde el directorio _images/capi_, ejecuta `make build-ami-<OS>`, donde <OS> es el sistema operativo deseado.

Las opciones disponibles se enumeran a través del comando:

[source,shell]
+
O actualízalo si ya lo tenías.
+
[source,console]
----
# make help
# make help | grep -i "build-ami"
cd image-builder
git pull
----

Por ejemplo, para construir una imagen de Ubuntu 20.04, ejecuta:

[source,shell]
. Posiciónate en la ruta _images/capi_ dentro del repositorio.
+
[source,console]
----
# make build-ami-ubuntu-2204
cd images/capi
----

image:https://user-images.githubusercontent.com/112587171/232500876-2985090a-86b7-4216-b2c6-8aa544a741f5.png[Make build, width=100%]

image:https://user-images.githubusercontent.com/112587171/232500916-6d39cb1b-d6e4-4042-9114-b68d3f14a967.png[Make build, width=100%]

image:https://user-images.githubusercontent.com/112587171/232500986-ec972a0a-7866-40a4-b945-ec5b9f0bdd2a.png[Make build, width=100%]
. Instala las dependencias necesarias para crear la imagen.
+
[source,console]
----
make deps-ami
----
+
image::desp-ami.png[]

Para compilar todos los sistemas operativos disponibles, utiliza el objetivo `-all`. Si deseas compilarlos en paralelo, utiliza `make -j`.
. Consulta las imágenes que se pueden construir.
+
[source,console]
----
make help | grep build-ami
----

[source,shell]
. Genera la imagen deseada. Por ejemplo, para construir una imagen de Ubuntu 22.04, ejecuta:
+
[source,console]
----
make build-ami-ubuntu-2204
----
+
image::build-ami-ubuntu-2204-part1.png[]
+
image::build-ami-ubuntu-2204-part2.png[]
+
image::amis.png[]
+
Para generar las imágenes de todos los sistemas operativos disponibles, utiliza el parámetro `-all`. Si deseas construirlas en paralelo, utiliza `make -j`.
+
[source,console]
----
# make -j build-ami-all
make -j build-ami-all
----

== Depuración

El proceso de creación de la imagen se puede depurar con la variable de entorno `PACKER_LOG`.

[source,shell]
[source,console]
----
export PACKER_LOG=1
----
Loading

0 comments on commit 5690a4a

Please sign in to comment.