Guia de início rápido de instalação do Anthos no modo desconectado

O Anthos em execução no modo desconectado é uma versão do Anthos que pode ser executada totalmente isolada da Internet em um ambiente com isolamento físico. Use o Anthos no modo desconectado para executar cargas de trabalho altamente regulamentadas no local e aproveite as várias vantagens da infraestrutura criada para a nuvem.

Escopo de início rápido do modo particular do Anthos

Neste guia de início rápido, orientamos você na execução no modo desconectado do Anthos como um operador de infraestrutura, responsável pela camada de infraestrutura, como máquinas bare metal, rede, armazenamento e sistema operacional. Neste guia de início rápido, você aprenderá a:

  • Instale e configure o Anthos em execução no modo desconectado usando a abordagem de instalação mínima.
  • Implantar um cluster de administrador.
  • Crie um cluster de usuário e implante um aplicativo nele.

O Anthos em execução no modo desconectado tem dois tipos de clusters:

  • Os clusters de administrador são usados para criar e gerenciar clusters de usuários.
  • Os clusters de usuário executam suas cargas de trabalho.

Você também tem uma estação de trabalho de administrador que é uma única máquina que contém as ferramentas necessárias para instalar e gerenciar a implantação do Anthos em execução no modo desconectado.

Antes de começar

Verifique se você atende aos requisitos técnicos do Anthos em execução no modo desconectado e se você tem cinco ou mais máquinas prontas para usar. É necessário ter uma experiência anterior com o Kubernetes e o gerenciamento de sistema para este guia de início rápido.

Prepare o ambiente

Acessar o Anthos em execução no modo desconectado

O Google precisa conceder acesso ao Anthos em execução nas versões no modo desconectado. Forneça ao seu ponto de contato do Google um endereço de e-mail para cada testador, para que possamos conceder acesso ao repositório de download. Esses endereços de e-mail precisam ser contas do Google.

Depois que seu ponto de contato do Google confirmar que você tem acesso ao Anthos em execução nas versões do modo desconectado, verifique se você tem as permissões para fazer o download do Anthos em execução nas versões do modo desconectado executando o seguinte comando:

gsutil ls gs://anthos-private-mode-release/

Se você vir um erro, verifique se a gsutil está usando a mesma conta do Google que você forneceu ao seu ponto de contato do Google executando o comando gcloud auth list.

Se preferir, acesse o bucket de lançamento mais recente para verificar se tem as permissões corretas. Você precisa fazer login com a Conta do Google fornecida anteriormente.

Se você tiver problemas para acessar o Anthos em execução nas versões do modo desconectado, fale com seu ponto de contato do Google para receber ajuda.

Faça o download do Anthos em execução no modo desconectado

Nesta seção, você faz o download do Anthos em execução na versão do modo desconectado, que está contido em vários arquivos de vários gigabytes cada. Dependendo da sua conexão com a Internet, o download pode levar muito tempo.

Faça o download do Anthos em execução no modo desconectado

Na estação de trabalho administrativa, execute os seguintes comandos:

# Login with the account granted access to Anthos running in disconnected mode
gcloud auth login

# Download the script which helps download all the latest components
export VERSION=1.10.3-gke.2

# Please use official 'INSTALLER_DIGEST' value from https://cloud.google.com/anthos/private-mode/docs/1.10/installing/infrastructure#download
export INSTALLER_DIGEST=62ea4de45311e2899c8187aed2c57ea28919299fd9452bdb64c4d972b1d9956a
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

Instalar as dependências restantes

Depois que o download do Anthos em modo desconectado for concluído, execute os seguintes 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"

Não é preciso ter uma conexão de Internet novamente até implantar o app de demonstração.

Configurar o Container Registry local

O Anthos em execução no modo desconectado funciona armazenando as imagens de contêiner do Anthos em um registro de contêiner local.

Exporte as seguintes variáveis de ambiente.

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

Substitua:

  • REGISTRY_HOST é o endereço IP do registro. Se você quiser instalar e usar o Anthos em execução no registro do contêiner no modo desconectado na estação de trabalho de administrador, use o endereço IP da estação de trabalho de administrador aqui.

  • REGISTRY_PASSWORD é o valor definido para a senha do registro.

Configurar o Anthos em execução no registro de contêiner do modo desconectado

Nesta seção, você configura um registro de contêiner particular na estação de trabalho do administrador. Execute todos os comandos abaixo na estação de trabalho de administrador.

  1. Se você não tiver seu próprio registro de contêiner particular, instale o Anthos em execução no registro de contêiner no modo desconectado.

    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
    
  2. Faça login no registro para confirmar que você tem acesso. Talvez seja necessário esperar alguns segundos caso receba um erro.

    docker login ${REGISTRY_HOST} -u admin -p ${REGISTRY_PASSWORD}
    

O Container Registry estará disponível em https://REGISTRY_HOST/ depois que o serviço for iniciado. As credenciais de login são admin e REGISTRY_PASSWORD para a senha.

Fazer upload de imagens no registro de contêiner

Nesta seção, mostramos como fazer o upload das imagens de contêiner do Anthos em execução no modo desconectado para o registro do contêiner.

Prepare e faça upload das imagens de contêiner do Anthos em execução no modo desconectado para o registro do contêiner. Se solicitado, escolha a opção Use that credential ou insira as novas credenciais.

actl images push --private-registry=${PRIVATE_REGISTRY} \
    --images ~/anthos-baremetal-private-mode

Observação: se você usar um proxy HTTP na estação de trabalho, talvez seja necessário cancelar a definição das seguintes variáveis de ambiente para que o comando actl images push funcione:

unset http_proxy
unset https_proxy
unset HTTP_PROXY
unset HTTPS_PROXY

Instalar o centro de gerenciamento

Nesta seção, você verá como instalar um cluster de administrador do Anthos em máquinas bare metal e, em seguida, instalar o centro de gerenciamento do Anthos no cluster de administrador.

Preparar a configuração do cluster de administrador

Atualize o arquivo ./actl-workspace/admin/admin.yaml com configurações que correspondam ao seu ambiente.

vi ./actl-workspace/admin/admin.yaml

Preencha os seguintes campos:

  • O sshPrivateKeyPath é a chave usada durante a instalação para acessar os outros nós que farão parte do cluster. Esta é a metade particular da chave pública que você distribuiu aos nós nos pré-requisitos.

  • O registryMirrors identifica o local de todos os espelhos de registro em que as imagens do Docker estão armazenadas.

    • registryMirrors.endpoint é o endpoint do espelho. O formato do endpoint é URL_SCHEME://REGISTRY_HOST/v2/IMAGE_PREFIX . Por exemplo, se você criou o registro na estação de trabalho, defina o endpoint como https://REGISTRY_HOST/v2/library. Observe que é necessário o /v2/ entre REGISTRY_HOST e IMAGE_PREFIX.

    • registryMirrors.pullCredentialConfigPath é o caminho das credenciais. Geralmente, é algo como /home/USER/.docker/config.json.

    • O registryMirrors.caCertPath é o local da autoridade de certificação que o registro usará para criptografar o tráfego. Esse certificado é distribuído aos nós durante o processo de instalação para permitir que eles extraiam imagens do registro. O caminho costuma ser /etc/docker/certs.d/REGISTRY_HOST/ca.crt.

  • A especificação controlPlane define quais nós fazem parte do plano de controle.

    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
    
  • A especificação loadBalancer define o tipo de balanceador de carga usado. A configuração padrão instala um balanceador de carga no cluster em execução. Nesse caso, no mínimo, você precisa definir o controlPlaneVIP para identificar um pool de endereços IP virtuais (VIP) para expor o servidor da API Kubernetes e o addressPools para alocar VIPs. sob demanda aos serviços que os solicitam. Exemplo:

    loadBalancer:
      mode: bundled
      # There are two load balancer VIPs: one for the control plane and one for the
      # Layer 7 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
    
  • A última seção da especificação do cluster especifica o loginUser. Esse login precisa ter acesso à chave SSH especificada abaixo e é o usuário para o qual a chave foi distribuída nos pré-requisitos

    nodeAccess:
      loginUser: LOGIN_USERNAME
    

    Substitua LOGIN_USERNAME pelo nome de usuário usado para fazer login no cluster de usuário.

  • A especificação nodePool identifica os nós que hospedarão o console do centro de gerenciamento, o Prometheus, o Grafana e outros serviços no cluster de administrador. Esses nós são os nós de trabalho do cluster de administrador. Exemplo:

    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
    

Crie o cluster de administrador

Execute o comando a seguir para criar o cluster de administrador. Isso leva aproximadamente 30 minutos.

cd ~/anthos-baremetal-private-mode
actl clusters baremetal create admin

Quando o cluster de administração for criado, verifique se você tem acesso a ele.

export ADMIN_KUBECONFIG=$(pwd)/bmctl-workspace/admin/admin-kubeconfig
KUBECONFIG=${ADMIN_KUBECONFIG} kubectl get nodes

Instalar o centro de gerenciamento

  1. Instalar a Central de gerenciamento no cluster de administrador com a configuração padrão.

    cd ~/anthos-baremetal-private-mode
    actl platform management-center create
    
  2. Acesse o Anthos Management Center no navegador.

    actl platform management-center describe --kubeconfig=${ADMIN_KUBECONFIG}
    

O URL do Centro de Gerenciamento do Anthos é retornado.

Registrar recursos

Registrar máquinas de inventário

Para criar um cluster de usuário, o Anthos precisa de um pool de máquinas inativas disponível. Nesta seção, você registrará máquinas de inventário no cluster de administrador do Anthos para disponibilizá-las.

kubectl apply -f <path/to/example-machine.yaml> --kubeconfig=${ADMIN_KUBECONFIG}

Exemplo:

apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: InventoryMachine
metadata:
  name: IP_ADDRESS
  labels:
    "KEY": "VALUE"
spec:
  address: IP_ADDRESS

Substitua:

  • IP_ADDRESS: o endereço IP da máquina, por exemplo, 10.200.0.10.
  • KEY:VALUE: um par de chave-valor, por exemplo, "rack": "r1020" para indicar um local do rack.

Os labels são pares de chave-valor de formato livre anexados ao recurso. Esses rótulos podem ser usados posteriormente no Management Center para filtrar máquinas. Por exemplo, é possível usar os rótulos para identificar a localização do rack ou configurações especiais de hardware.

Criar clusters de usuários

Na página Clusters do Management Center, clique em Criar para criar um novo cluster de usuário do Anthos. Depois que o cluster é criado, ele é registrado automaticamente na central de gerenciamento e aparece no painel do cluster imediatamente.

Criar um cluster

Pode levar até 15 minutos para que a instalação esteja pronta. Enquanto aguarda, verifique o status do cluster de usuário com o seguinte comando:

kubectl get Cluster -n USER_CLUSTER_NAME --kubeconfig=${ADMIN_KUBECONFIG}

Substitua USER_CLUSTER_NAME pelo nome do cluster que você criou.

Depois que o status estiver pronto, o cluster será criado e registrado no cluster do administrador.

Acessar o cluster de usuários

Depois da criação do cluster de usuário, faça o download do kubeconfig no centro de gerenciamento.

Implantar app de demonstração

Para conhecer o Anthos em execução no modo desconectado, teste o aplicativo de amostra Online Boutique.

Fazer o download da imagem

As etapas nesta seção exigem uma conexão de Internet.

  1. Faça o download do repositório de amostra:

    git clone https://github.com/GoogleCloudPlatform/microservices-demo.git/ online-boutique
    
  2. Fazer o download das imagens:

    IMAGES=$(cat online-boutique/release/kubernetes-manifests.yaml | grep image | sed "s/ *image: //")
    actl images save --output online-boutique-images ${IMAGES}
    

Implante a amostra

  1. Envie as imagens para o registro particular:

    actl images push --images online-boutique-images --private-registry=PRIVATE_REGISTRY
    

    Substitua PRIVATE_REGISTRY pelo nome do registro particular.

  2. Criar um namespace para o aplicativo.

    kubectl create namespace demo --kubeconfig=USER_CLUSTER_KUBECONFIG
    

    Substitua USER_CLUSTER_KUBECONFIG pelo caminho para o arquivo Kubeconfig do cluster de usuário.

  3. Implante a amostra no cluster:

    kubectl apply -n demo -f online-boutique/release/ --kubeconfig=USER_CLUSTER_KUBECONFIG
    

Boutique on-line com recursos insuficientes

Limpeza

Exclua o cluster de usuário executando o seguinte comando:

kubectl -n cluster-USER_CLUSTER_NAME \
  delete Cluster USER_CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG

A seguir