Guía de inicio rápido para la instalación del modo privado de Anthos
Alcance de la guía de inicio rápido del modo privado de Anthos
En esta guía de inicio rápido, se te guiará a través de la instalación del modo privado de Anthos como operador de infraestructura, responsable de la capa de la infraestructura, como las máquinas físicas, las herramientas de redes, el almacenamiento y el sistema operativo. En esta guía de inicio rápido, aprenderás a realizar las siguientes tareas:
- Instalar y configurar el modo privado de Anthos mediante el enfoque de instalación mínima.
- Implementar un clúster de administrador.
- Crea un clúster de usuario y, luego, implementa una aplicación en el clúster de usuario
El modo privado de Anthos tiene dos tipos de clústeres:
- Los clústeres de administrador se usan para crear y administrar clústeres de usuarios.
- Los clústeres de usuario ejecutan las cargas de trabajo.
También tienes una estación de trabajo de administrador, que es una sola máquina que contiene las herramientas necesarias para instalar y administrar la implementación del modo privado de Anthos.
Antes de comenzar
Asegúrate de cumplir con los requisitos técnicos para el modo privado de Anthos y de que tienes cinco o más máquinas listas para usar. Para esta guía de inicio rápido, se necesita experiencia previa en administración del sistema y Kubernetes.Prepare el entorno
Obtén acceso al modo privado de Anthos
Google debe otorgarte acceso a las actualizaciones del modo privado de Anthos. Proporciona tu punto de contacto de Google con una dirección de correo electrónico para cada verificador para que podamos otorgarle acceso al repositorio de descargas. Estas direcciones de correo electrónico deben ser Cuentas de Google.
Una vez que tu punto de contacto de Google confirme que tienes acceso a las actualizaciones del modo privado de Anthos, verifica que tengas los permisos para descargar las actualizaciones del modo privado de Anthos mediante la ejecución del siguiente comando:
gsutil ls gs://anthos-private-mode-release/
Si obtienes un error, ejecuta el comando gcloud auth list
para verificar que gsutil
use la misma Cuenta de Google que proporcionaste a tu punto de contacto de Google.
Como alternativa, puedes visitar el bucket de la versión más reciente para verificar que tengas los permisos correctos. Debes acceder con la Cuenta de Google que proporcionaste antes.
Si tienes problemas para acceder a las versiones del modo privado de Anthos, comunícate con tu punto de contacto de Google a fin de obtener ayuda.
Descarga el modo privado de Anthos
En esta sección, debes descargar la versión del modo privado de Anthos, que se encuentra en varios archivos de varios gigabytes cada uno. Según tu conexión a Internet, es posible que la descarga demore mucho tiempo.
Descarga el modo privado de Anthos
En tu estación de trabajo de administrador, ejecuta los siguientes comandos:
# Login with the account granted access to Anthos private mode
gcloud auth login
# Download the script which helps download all the latest components
export VERSION=1.8.5-gke.1
# Please use official 'INSTALLER_DIGEST' value from https://cloud.google.com/anthos/private-mode/docs/1.8/installing/infrastructure#download
export INSTALLER_DIGEST=7747774fc4274f330558c647b4268c3ef7fcac355c3f3451d7c6c09b8d91b933
export INSTALLER=get-anthos-private-mode-$VERSION.sh
gsutil cp gs://anthos-private-mode-release/$VERSION/$INSTALLER .
if [[ -n "$INSTALLER_DIGEST" ]]; then echo "$INSTALLER_DIGEST $INSTALLER" | sha256sum -c; fi && chmod +x $INSTALLER && ./$INSTALLER
# If you are working on a workstation shared with other users,
# we recommend that you revoke your credentials after downloading the release.
gcloud auth revoke YOUR_EMAIL_ADDRESS
Instala las dependencias restantes
Una vez completada la descarga del modo privado de Anthos, ejecuta los siguientes comandos:
cd anthos-baremetal-private-mode
# Add actl command line tool and tools directory to the PATH
export PATH=$PWD/bin:$PATH
# Download Harbor offline installer
curl -SL \
https://github.com/goharbor/harbor/releases/download/v2.2.0/harbor-offline-installer-v2.2.0.tgz \
--output "local-registry/harbor-offline-installer.tgz"
# Install docker-compose
curl -SL \
https://github.com/docker/compose/releases/download/1.28.5/docker-compose-Linux-x86_64 \
--output "local-registry/docker-compose"
No volverás a necesitar una conexión a Internet hasta que implementes la app de demostración.
Configura el Container Registry local
El modo privado de Anthos funciona mediante el almacenamiento de las imágenes de contenedor de Anthos en un registro de contenedores local.
Exporta las siguientes variables de entorno.
export REGISTRY_HOST=REGISTRY_HOST
export REGISTRY_PASSWORD=REGISTRY_PASSWORD
# By default, a library public project is created,
# and you can also create other private projects via the container registry portal.
export PRIVATE_REGISTRY=${REGISTRY_HOST}/library
Reemplaza lo siguiente:
REGISTRY_HOST
es la dirección IP de tu registro. Si deseas instalar y usar Container Registry del modo privado de Anthos en la estación de trabajo de administrador, usa aquí la dirección IP de tu estación de trabajo de administrador.REGISTRY_PASSWORD
es el valor que estableciste para la contraseña de registro.
Configura el registro de contenedores del modo privado de Anthos
En esta sección, configurarás un registro de contenedores privado en la estación de trabajo de administrador. Ejecuta todos los comandos que aparecen a continuación desde la estación de trabajo de administrador.
Si no tienes Container Registry privado, instala Container Registry del modo privado de Anthos.
cd ~/anthos-baremetal-private-mode # Move it to a path under $PATH chmod a+x local-registry/docker-compose sudo cp local-registry/docker-compose /usr/bin # Install local registry ./local-registry/install.sh
Accede al registro para verificar que tienes acceso. Es posible que debas esperar unos segundos si recibes un error.
docker login ${REGISTRY_HOST} -u admin -p ${REGISTRY_PASSWORD}
Container Registry está disponible en https://REGISTRY_HOST/
después de que se inicia el servicio.
Las credenciales de acceso son el nombre de usuario admin
y REGISTRY_PASSWORD
para la contraseña.
Sube imágenes a Container Registry
En esta sección, subirás las imágenes de contenedor en modo privado de Anthos a tu registro de contenedores.
Prepara y sube las imágenes de contenedor en modo privado de Anthos a tu registro de contenedores. Si se te solicita, elige la opción Use that credential
o ingresa las credenciales nuevas.
actl images push --private-registry=${PRIVATE_REGISTRY} \
--images ~/anthos-baremetal-private-mode
Nota: Si usas un proxy HTTP en tu estación de trabajo, es posible que debas anular las siguientes variables de entorno para que funcione el comando actl images push
:
unset http_proxy
unset https_proxy
unset HTTP_PROXY
unset HTTPS_PROXY
Instala el centro de administración
En esta sección, debes instalar un clúster de administrador de Anthos en equipos físicos y, luego, debes instalar el centro de administración del modo privado de Anthos sobre el clúster de administrador.
Prepara la configuración del clúster de administrador
Actualiza el archivo ./actl-workspace/admin/admin.yaml
con la configuración que coincide con tu entorno.
vi ./actl-workspace/admin/admin.yaml
Completa los siguientes campos:
La
sshPrivateKeyPath
es la clave que se usa durante la instalación para acceder a los otros nodos que serán parte del clúster. Esta es la mitad privada de la clave pública que distribuiste a los nodos en los requisitos previos.La
registryMirrors
identifica la ubicación de la duplicación de todo el registro en la que se almacenan las imágenes de Docker.registryMirrors.endpoint
es el extremo de la duplicación. El formato del extremo esURL_SCHEME://REGISTRY_HOST/v2/IMAGE_PREFIX
. Por ejemplo, si creaste el registro en la estación de trabajo, establece el extremo enhttps://REGISTRY_HOST/v2/library
. Ten en cuenta que/v2/
entreREGISTRY_HOST
yIMAGE_PREFIX
es necesario.registryMirrors.pullCredentialConfigPath
es la ruta de las credenciales. Por lo general, es similar al siguiente ejemplo:/home/USER/.docker/config.json
.registryMirrors.caCertPath
es la ubicación de la autoridad certificadora que usará el registro para encriptar el tráfico. Este certificado se distribuye a los nodos durante el proceso de instalación para que puedan extraer imágenes del registro. Por lo general, la ruta es/etc/docker/certs.d/REGISTRY_HOST/ca.crt
.
La especificación
controlPlane
define qué nodos forman parte del plano de control.controlPlane: nodePoolSpec: nodes: # Control plane node pools. Typically, this is either a single machine # or 3 machines if using a high availability deployment. - address: 10.200.0.3
La especificación
loadBalancer
define qué tipo de balanceador de cargas se usa. La configuración predeterminada instala un balanceador de cargas en el clúster en ejecución. En este caso, como mínimo, debes configurarcontrolPlaneVIP
para identificar un grupo de direcciones IP virtual (VIP) a fin de exponer el servidor de la API de Kubernetes y losaddressPools
para asignar VIP según demanda para los servicios que los solicitan. Por ejemplo:loadBalancer: mode: bundled # There are two load balancer VIPs: one for the control plane and one for the # L7 Ingress service. # The VIPs must be in the same subnet as the load balancer nodes. vips: # ControlPlaneVIP specifies the VIP to connect to the Kubernetes API server. # This address must not be in the address pools below. controlPlaneVIP: 10.200.0.50 # AddressPools is a list of non-overlapping IP ranges for the data plane load # balancer. # All addresses must be in the same subnet as the load balancer nodes. # Address pool configuration is only valid for 'bundled' LB mode in non-admin # clusters. addressPools: - name: pool1 addresses: # Each address must be either in the CIDR form (1.2.3.0/24) # or range form (1.2.3.1-1.2.3.5). - 10.200.0.51-10.200.0.59
En la última sección de la especificación del clúster se especifica el
loginUser
. Este acceso debe tener acceso a la clave SSH especificada a continuación y es el usuario para el que se distribuye la clave en los requisitos previos.nodeAccess: loginUser: LOGIN_USERNAME
Reemplaza
LOGIN_USERNAME
por el nombre de usuario que se usa para acceder al clúster de usuario.La especificación
nodePool
identifica los nodos que alojarán la consola del centro de administración, Prometheus, Grafana y otros servicios en el clúster de administrador. Estos son los nodos trabajadores del clúster de administrador. Por ejemplo:apiVersion: baremetal.cluster.gke.io/v1 kind: NodePool metadata: name: node-pool-1 namespace: cluster-admin spec: # Cannot be changed, must be admin clusterName: admin nodes: - address: 10.200.0.6
Crea el clúster de administrador:
Ejecuta el siguiente comando para crear el clúster de administrador. Lleva alrededor de 30 minutos.
cd ~/anthos-baremetal-private-mode
actl clusters baremetal create admin
Una vez que se cree el clúster de administrador, verifique que tenga acceso a él.
export ADMIN_KUBECONFIG=$(pwd)/bmctl-workspace/admin/admin-kubeconfig
KUBECONFIG=${ADMIN_KUBECONFIG} kubectl get nodes
Instala el centro de administración
Instala el Centro de administración en el clúster de administrador con la configuración predeterminada.
cd ~/anthos-baremetal-private-mode actl platform management-center create
Accede al centro de administración de Anthos en tu navegador.
actl platform management-center describe --kubeconfig=${ADMIN_KUBECONFIG}
Se muestra la URL del Centro de administración de Anthos.
Registra recursos
Registra máquinas de inventario
Para crear un clúster de usuario, Anthos necesita un grupo de máquinas inactivas disponibles. En esta sección, registrarás las máquinas de inventario en el clúster de administrador de Anthos para que estén disponibles.
kubectl apply -f <path/to/example-machine.yaml> --kubeconfig=${ADMIN_KUBECONFIG}
Ejemplo:
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: InventoryMachine
metadata:
name: IP_ADDRESS
labels:
"KEY": "VALUE"
spec:
address: IP_ADDRESS
Reemplaza lo siguiente:
IP_ADDRESS
: Es la dirección IP de la máquina, por ejemplo,10.200.0.10
.KEY
:VALUE
: Un par clave-valor, por ejemplo"rack": "r1020"
, para indicar una ubicación de bastidor.
Los labels
son pares clave-valor de formato libre que se conectan al recurso.
Estas etiquetas se pueden usar más adelante en el centro de administración para filtrar máquinas.
Por ejemplo, puedes usar las etiquetas para identificar la configuración de la ubicación del bastidor o la configuración especial de hardware.
Crear clústeres de usuario
En la página Clústeres del Centro de administración, haz clic en Crearpara crear un clúster de usuario de Anthos nuevo. Una vez que se crea el clúster, se registra de forma automática en el centro de administración y aparece en el panel del clúster de inmediato.
La instalación y preparación puede tardar hasta 15 minutos. Mientras esperas, puedes verificar el estado del clúster de usuario con el siguiente comando:
kubectl get Cluster -n USER_CLUSTER_NAME --kubeconfig=${ADMIN_KUBECONFIG}
Reemplaza USER_CLUSTER_NAME
por el nombre del clúster que creaste.
Una vez que el estado esté listo, el clúster se crea y se registra de forma correcta en el clúster de administrador.
Obtén acceso al clúster de usuario
Una vez que se crea el clúster de usuario, puedes descargar kubeconfig a través del Centro de administración.
Implementa una app de demostración
Puedes explorar el modo privado de Anthos con la aplicación de ejemplo Online Boutique.
Descarga la imagen
Para realizar los pasos de esta sección, se requiere una conexión a Internet.
Descarga el repositorio de muestra:
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git/ online-boutique
Cómo descargar las imágenes
IMAGES=$(cat online-boutique/release/kubernetes-manifests.yaml | grep image | sed "s/ *image: //") actl images save --output online-boutique-images ${IMAGES}
Implemente la muestra
Envía las imágenes al registro privado:
actl images push --images online-boutique-images --private-registry=PRIVATE_REGISTRY
Reemplaza
PRIVATE_REGISTRY
por el nombre de tu clúster privado.Crea un espacio de nombres para la aplicación:
kubectl create namespace demo --kubeconfig=USER_CLUSTER_KUBECONFIG
Reemplaza
USER_CLUSTER_KUBECONFIG
por la ruta de acceso al archivo Kubeconfig del clúster de usuario.Implementa la muestra en el clúster:
.kubectl apply -n demo -f online-boutique/release/ --kubeconfig=USER_CLUSTER_KUBECONFIG
Realiza una limpieza
Borra tu clúster de usuario mediante la ejecución del siguiente comando:
kubectl -n cluster-USER_CLUSTER_NAME \
delete Cluster USER_CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG