Diferencia entre revisiones de «Google Cloud Contenedores»
(→La red de contenedores) |
(→Comando de creación de cluster kubernetes) |
||
Línea 66: | Línea 66: | ||
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 = |
Revisión de 16:26 29 feb 2016
Contenido
Introducción
gcloud SDK
Instalación
TODO: buscar el manual de como se instala y al menos hacer referencia
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.
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.