Diferencia entre revisiones de «Google Cloud Contenedores»

De Ardemans Wiki
Saltar a: navegación, buscar
(Usando diferentes configuraciones)
(Instalación)
 
(2 revisiones intermedias por el mismo usuario no mostrado)
Línea 4: Línea 4:
  
 
== Instalación ==
 
== Instalación ==
TODO: buscar el manual de como se instala y al menos hacer referencia
+
Podemos consultar [https://cloud.google.com/sdk/ la guia oficial de instalación de sdk de gcloud]
  
 
Hará falta instalar la app kubectl para manejar los elementos de nuestro nuevo kubernetes
 
Hará falta instalar la app kubectl para manejar los elementos de nuestro nuevo kubernetes
Línea 62: Línea 62:
 
=== La red de contenedores ===
 
=== La red de contenedores ===
 
Es la red que van a tener los contenedores que se creen dentro del cluster. la configuración de esta red tiene que ser una /14 perteneciente a los subrangos:
 
Es la red que van a tener los contenedores que se creen dentro del cluster. la configuración de esta red tiene que ser una /14 perteneciente a los subrangos:
- 10.0.0.0/8 (10.0.0.0/14, 10.4.0.0/14, 10.8.0.0/14 ...)
+
* 10.0.0.0/8 (10.0.0.0/14, 10.4.0.0/14, 10.8.0.0/14 ...)
- 172.16.0.0/12 (172.16.0.0/14, 172.20.0.0/14, 172.24.0.0/14...)
+
* 172.16.0.0/12 (172.16.0.0/14, 172.20.0.0/14, 172.24.0.0/14...)
  
 
En el comando para crear el cluster se especifica con el parámetro --cluster-ipv4-cidr
 
En el comando para crear el cluster se especifica con el parámetro --cluster-ipv4-cidr
 +
 +
=== "Parar" un cluster de kubernetes ===
 +
 +
Un truco para parar un cluster de kubernetes temporalmente y luego volver a levantarlo sin perder las configuraciones es el de hacer un resize del grupo de instancias que compone un cluster a tamaño cero:
 +
 +
<pre>
 +
$ gcloud compute instance-groups managed resize gke-cluster-test --size 0
 +
</pre>
  
 
= El registro de Imagenes =
 
= El registro de Imagenes =

Última revisión de 14:26 19 may 2016

Introducción

gcloud SDK

Instalación

Podemos consultar la guia oficial de instalación de sdk de gcloud

Hará falta instalar la app kubectl para manejar los elementos de nuestro nuevo kubernetes

$gcloud components install kubectl

Configuraciones

Para ver las configuraciones de gcloud:

$ gcloud config list

Y veremos la lista de parámetros definidos en nuestra configuración

[app]
use_appengine_api = True
[compute]
region = europe-west1
zone = europe-west1-b
[container]
cluster = clusterone
[core]
account = xxxxx@xxxxxxxx.com
disable_usage_reporting = True
project = delta-tuner-XXXXXX
[meta]
active_config = default

Con ese mismo comando podremos cambiar los parámetros que necesitemos, por ejemplo, cambiar el cluster de contenedores con el que queremos trabajar

$ gcloud config set container/cluster clustertwo

Usando diferentes configuraciones

Si tenemos varios proyectos o varias cuentas en google cloud podremos crearnos "perfiles" en del comando gcloud, que en realida le llaman "configurations"

Para ver la lista de configuraciones que tenemos podemos ejecutar

$ gcloud config configurations list

Lo que nos dará una lista de perfiles que tenemos y uno de ellos aparecerá como activo. Para activar cualquiera de ellos:

$ gcloud config configurations activate <perfil>

Si queremos crear uno nuevo:

$ gcloud config configurations create <perfil>

Una vez que estamos en nuestro perfil podemos ejecutar la primera vez gcloud init para empezar la configuracion.

Todos los datos de configuración de nuestros perfiles se almacenan en ~/.config/gcloud/configurations, y para saber cual es la configuracion activa es un fichero de texto en ~/.config/gcloud/active_config

Comando de creación de cluster kubernetes

Un cluster de kubernetes se puede crear desde la consola WEB de Google Cloud, pero también puede ser muy cómodo usar la línea de comandos para crearlo.

La red de contenedores

Es la red que van a tener los contenedores que se creen dentro del cluster. la configuración de esta red tiene que ser una /14 perteneciente a los subrangos:

  • 10.0.0.0/8 (10.0.0.0/14, 10.4.0.0/14, 10.8.0.0/14 ...)
  • 172.16.0.0/12 (172.16.0.0/14, 172.20.0.0/14, 172.24.0.0/14...)

En el comando para crear el cluster se especifica con el parámetro --cluster-ipv4-cidr

"Parar" un cluster de kubernetes

Un truco para parar un cluster de kubernetes temporalmente y luego volver a levantarlo sin perder las configuraciones es el de hacer un resize del grupo de instancias que compone un cluster a tamaño cero:

$ gcloud compute instance-groups managed resize gke-cluster-test --size 0

El registro de Imagenes

Cada proyecto de Google Cloud dispone de un registro de imágenes de docker con el que los clusters de Kubernetes pueden trabajar. A este repositorio podemos hacer push de nuestras imágenes de docker con gcloud. Primero lo que hace falta es saber la URL con la que acceder al registro. Esta dirección es la combinación de la URL especifica para cada zona, el ID de proyecto y el nombre de la imagen. Por ejemplo:

eu.gcr.io/delta-tuner-xxxxxx/miweb

Una vez que tenemos la dirección podemos etiquetar con la dirección la imagen que queremos subir, y hacer push desde el comando gcloud ``` $ docker tag eu.gcr.io/delta-tuner-xxxxxx/miweb:latest $ gcloud docker push eu.gcr.io/delta-tuner-xxxxxx/miweb:latest ``` De todas formas, cuando haces "login" con gcloud te modifica el fichero .dockercfg para añadirte las credenciales para subir al registro de google cloud, con lo cual se podría hacer con docker push también.

Mismas operaciones para hacer pull de imagenes en el registro de Google Cloud.

Más info

Usando nuestro cluster de kubernetes

Tendremos que seleccionar el proyecto y el cluster con el que vamos a trabajar, tal y como se explica en el apartado de configuración Para poder usar el comando kubectl tendremos que "bajarnos" las credenciales que dicho cluster a nuestro fichero de configuración de kube:

$ gcloud container clusters get-credentials clustertwo

Eso actualizará el fichero ~/.kube/config, y a partir de ahí podremos usar el comando kubectl, como se explica en la página de kubernetes

Repositorio Git del proyecto

Por cada proyecto Google Cloud nos proporciona un repositorio de git donde subir nuestros ficheros de configuracion, scripts de kubernetes, o lo que creamos necesario para nuestro proyecto. No es obligatorio usarlo ni tampoco sacamos ningún beneficio especial de él salvo que cuando ejecutamos gcloud init en una máquina nueva nos ofrece el clonar ese repositorio directamente.

Lo podemos clonar en cualquier ubicacion con:

$ gcloud source repos clone default

De momento parece que solo nos proporcionan un único repositorio por proyecto, el que se llama default, pero parece que han previsto el que a futuro te proporcionen diferentes repositorios para cada proyecto.

TODO

Parece que hay un script gcloud.sh que se encarga de manejar las credenciales para usar los repositorios de git de cada proyecto, pero no se muy bien como enlaza este script. Cuando hacemos un gcloud source repos clone default, está metiendo en la configuracion de git .git/config una configuración especial de credenciales, diciendole que use el script gcloud.sh:

[credential]
	helper = \"gcloud.sh\"

Pero ese script no se muy bien donde está y como se aplica.