¿Qué es Helm?
Helm es una herramienta que agiliza la instalación y gestión de aplicaciones en plataformas Kubernetes. El cuadro de Helm de Couchbase Autonomous Operator permite a los usuarios combinar definiciones de Kubernetes para recursos como Servicios, Roles y Despliegues en un único paquete personalizable. Dado que Helm es esencialmente un gestor de paquetes para aplicaciones Kubernetes, todos los recursos instalados pueden ser gestionados y actualizados como una sola unidad utilizando un enfoque de todo o nada que asegura que cada dependencia necesaria para cada versión se instala correctamente al actualizar. Este blog describe cómo usar Helm para instalar el Operador Autónomo Couchbase junto con un Cluster Couchbase en tu entorno Kubernetes.
Instalación de Helm
Asumiendo que tienes un cluster kubernetes corriendo en al menos la versión 1.11, entonces estás listo para comenzar con helm para desplegar un Cluster Couchbase. El primer paso es instalar el cliente de línea de comandos Helm. Los siguientes comandos descargarán y descomprimirán el binario helm en una ruta ejecutable para linux (para un sistema operativo diferente ver libera)
|
1 2 3 4 |
# Install helm wget https://storage.googleapis.com/kubernetes-helm/helm-v2.13.1-linux-amd64.tar.gz tar -zxvf helm-v2.13.1-linux-amd64.tar.gz sudo mv linux-amd64/helm /usr/local/bin/helm |
Ahora vamos a instalar el servicio de plantillas Helms que se llama labrador. Tiller hace todo el trabajo de interactuar directamente con la API de Kubernetes para crear recursos como Servicios, Secretos y Pods. Como con toda buena guía de inicio rápido, vamos a ser un poco flojos con la seguridad en aras de la brevedad, lo que significa dar el labrador la capacidad de crear recursos dentro de cualquier espacio de nombres de Kubernetes. Ejecute el siguiente comando para crear las reglas RBAC y ServiceAccount necesarias para el servicio Tiller:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
echo "apiVersion: v1 kind: ServiceAccount metadata: name: tiller namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: tiller roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: tiller namespace: kube-system" | kubectl create -f - |
Por último, instale el servicio tiller en el clúster kubernetes:
|
1 |
helm init --service-account tiller |
¡Hora de empezar a timonear!
Instalación de gráficos
Instalar la carta del operador
Couchbase Operator Chart despliega el controlador de admisión dinámico, el Operator en sí, y todos los recursos necesarios para ejecutarlos dentro de tu cluster. Este es el poder/magia de helm, ya que funciona de forma muy similar a un gestor de paquetes al representar un grupo de recursos como una única unidad instalable y actualizable.
Para instalar los gráficos deberá dirigir el cliente helm a nuestro repositorio asociado con el siguiente comando:
|
1 |
helm repo add couchbase https://couchbase-partners.github.io/helm-charts/ |
Y ahora vamos a instalar el gráfico de operador:
|
1 |
helm install --name op-example couchbase/couchbase-operator |
La instalación devuelve una lista de comandos a ejecutar para comprobar los registros del operador.
|
1 2 3 4 5 6 7 |
NOTES: 1. couchbase-operator deployed. Check the couchbase-operator logs kubectl logs -f deployment/op-example-couchbase-operator --namespace default 2. admission-controller deployed. Check the admission-controller logs kubectl logs -f deployment/op-example-couchbase-admission-controller --namespace default |
Copie el primer comando para asegurarse de que el operador se ha iniciado correctamente:
|
1 |
kubectl logs -f deployment/op-example-couchbase-operator --namespace default |
Y deberías ver que el operador está escuchando eventos, lo que significa que está esperando un cluster que gestionar:
|
1 2 3 |
time="2019-05-02T23:42:12Z" level=info msg="couchbase-operator v1.2.0 (release)" module=main ... time="2019-05-02T23:42:28Z" level=info msg="CRD initialized, listening for events... |
Instalar la tabla de clústeres de Couchbase
El gráfico de clúster couchbase proporciona una versión templada del tipo de clúster couchbase. Por defecto, este gráfico instalará un cluster de 3 nodos. Si tiene curiosidad sobre los detalles de este gráfico, puede ver los valores predeterminados con el siguiente comando:
|
1 |
helm inspect couchbase/couchbase-cluster |
Ahora vamos a poner en marcha un cluster instalando la tabla de cluster con el siguiente comando:
|
1 |
helm install --name cb-example couchbase/couchbase-cluster |
La instalación devuelve los pasos para obtener el estado del clúster junto con una forma rápida de ver la consola de administración.
|
1 2 3 4 5 6 |
NOTES: 1. Get couchbase cluster status kubectl describe --namespace default couchbasecluster cb-example-couchbase-cluster 2. Connect to Admin console kubectl port-forward --namespace default cb-example-couchbase-cluster-0000 8091:8091 # open https://localhost:8091 |
Vamos a ejecutar el segundo comando para ver la consola:
|
1 |
kubectl port-forward --namespace default cb-example-couchbase-cluster-0000 8091:8091 |
Este comando creará un proxy de la consola de administración a su localhost en el puerto 8091. Navegue a https://localhost:8091 para ver el clúster. Si aún no ve el clúster, ejecute kubectl describe po cb-example-couchbase-cluster-0000 para obtener el estado del Pod que se está reenviando porque puede ser que las imágenes aún se estén creando, lo que suele ocurrir cuando se ejecuta en un clúster completamente nuevo.
Gestión de gráficos
En este punto debería tener al menos dos gráficos instalados, uno para el operador y otro para el cluster. Para ver la lista de gráficos instalados, ejecute lista de cascos:
|
1 2 3 4 5 |
~$ helm list NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE cb-example 1 Thu May 9 23:44:31 2019 DEPLOYED couchbase-cluster-0.1.2 1.2 default op-example 1 Thu May 9 23:40:36 2019 DEPLOYED couchbase-operator-0.1.2 1.2 default |
Cuando se instala una carta, Helm la denomina liberar. Puede instalar varias versiones desde un único gráfico. Cuando se elimina una versión mediante helm deletetodos sus recursos empaquetados (Pods, Servicios, Secretos) también son eliminados. Para más información sobre cómo personalizar el operador y el gráfico de cluster, consulta la documentación de Couchbase Operator en Actualización de una versión.
Instalación con TLS y volúmenes persistentes
Para crear un cluster con TLS y Persistent Volumes utilizaremos el template overriding de helm para proporcionar personalizaciones del gráfico del cluster.
Cree un archivo llamado misvalores.yaml con los siguientes valores:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
echo "couchbaseCluster: servers: all_services: pod: volumeMounts: default: couchbase data: couchbase securityContext: fsGroup: 1000 volumeClaimTemplates: - metadata: name: couchbase spec: storageClassName: default resources: requests: storage: 1Gi couchbaseTLS: create: true" > myvalues.yaml |
Los valores anteriores suponen que tiene una clase de almacenamiento denominada por defectoSi este no es el caso, cámbielo por el valor apropiado para su entorno. Ahora instale el gráfico de clúster con los valores anulados:
|
1 |
helm install --name cbs-example -f myvalues.yaml couchbase/couchbase-cluster |
Observe que helm ha autogenerado el certificado de CA utilizado por el operador y los clientes junto con el certificado y la clave del servidor.
|
1 2 3 4 5 6 |
RESOURCES: ==> v1/Secret NAME AGE cbs-example-couchbase-cluster 1s cbs-example-couchbase-cluster-server-tls 1s cbs-example-couchbase-cluster-operator-tls 1s |
Para ver la consola de administración, ejecute el comando de reenvío de puerto desde el puerto de administración habilitado para TLS (18091) de un pod a su localhost con el siguiente comando:
|
1 |
kubectl port-forward --namespace default cbs-example-couchbase-cluster-0000 18091:18091 |
Vaya a https://localhost:18091 para ver el clúster.
Seguir adelante
Si estás pensando "eso ha sido demasiado fácil", probablemente tengas razón. Si piensa: "Quiero saber más", eche un vistazo a la sección Guía de instalación para conocer las mejores prácticas a la hora de poner su entorno en producción.
Más recursos sobre el operador autónomo Couchbase
-
Pruébalo: https://www.couchbase.com/downloads
-
Foros de apoyo: https://www.couchbase.com/forums/c/couchbase-server/Kubernetes
-
Documentación: https://docs.couchbase.com/operator/1.2/whats-new.html
Seguir leyendo
-
Operador autónomo 1.2.0 Deep Dive: https://www.couchbase.com/blog/deep-dive-couchbase-autonomous-operator-1-2-0
-
Operador autónomo 1.2.0 Trabajo en red: https://www.couchbase.com/blog/autonomous-operator-1-2-0-networking