Migre o Istio integrado para o Cloud Service Mesh

Estes passos são específicos da versão incluída do Istio que é incluída por predefinição no "suplemento do GKE" do Knative serving.

Uma vez que a versão incluída do Istio é desinstalada quando executou o processo de desinstalação do "suplemento do GKE" do Knative Serving, os passos nesta página instalam o Cloud Service Mesh no seu cluster e, em seguida, configuram o gateway de entrada.

Antes de começar

Vista geral

Em geral, o processo de instalação do Cloud Service Mesh quando migra da versão agrupada do Istio é o mesmo que o processo de execução de uma instalação limpa do Cloud Service Mesh. Neste processo, a versão 1.18 do Cloud Service Mesh é instalada com o plano de controlo no cluster.

Instale a versão 1.18 do Cloud Service Mesh

Use a documentação de instalação do Cloud Service Mesh para instalar o Cloud Service Mesh.

Antes de começar:

  • Para a migração, a gateway de entrada tem de ser instalada separadamente durante os passos de configuração subsequentes. O script de instalação não instala o gateway de entrada por predefinição.

  • Opcional: se usar a autoridade de certificação (AC) do Cloud Service Mesh, também tem de incluir a flag --ca mesh_ca com o script de instalação do Cloud Service Mesh.

Para instalar o Cloud Service Mesh:

Siga os passos na documentação do Cloud Service Mesh: Instale a versão 1.18 do Cloud Service Mesh

Exemplo

Segue-se um exemplo do comando predefinido que inclui a flag obrigatória:

./asmcli install \
  --project_id ${PROJECT_ID} \
  --cluster_name ${CLUSTER_NAME} \
  --cluster_location ${CLUSTER_LOCATION} \
  --ca mesh_ca \
  --output_dir DIR_PATH \
  --enable_all

Configure a entrada do Cloud Service Mesh

Nesta secção, o script de migração é usado para criar o gateway de entrada do Cloud Service Mesh no espaço de nomes gke-system.

Para a migração, é usado o espaço de nomes gke-system para que o gateway de entrada seja colocado no mesmo espaço de nomes usado pelo "Istio integrado" removido recentemente. Por conseguinte, os pods de entrada da malha de serviços na nuvem podem assumir o controlo do tráfego sem problemas, sem alterações de configuração necessárias ao serviço de entrada. Por exemplo, não tem de configurar um novo endereço IP externo.

  1. Para criar o gateway de entrada no espaço de nomes gke-system, execute o seguinte comando para iniciar o script de migração:

    ./migration-addon.sh --command set-up-asm-ingress
    

    O resultado do terminal durante o processo tem um aspeto semelhante ao seguinte:

    Setting up Cloud Service Mesh ingress. Note that the Cloud Service Mesh ingress is not
    serving traffic at this step.
    namespace/gke-system labeled
    deployment.apps/istio-ingressgateway created
    horizontalpodautoscaler.autoscaling/istio-ingressgateway created
    role.rbac.authorization.k8s.io/istio-ingressgateway-sds created
    rolebinding.rbac.authorization.k8s.io/istio-ingressgateway-sds created
    Cloud Service Mesh ingress is successfully installed.
    
  2. Verifique se o gateway de entrada istio-ingrerssgateway está a ser executado no espaço de nomes gke-system executando o seguinte comando:

    kubectl get deployment istio-ingressgateway -n gke-system
    

    Tenha em atenção que o número de recipientes istio-ingressgateway é intencionalmente 0. Após instalar o componente de frota de fornecimento do Knative, existe um passo subsequente para migrar todo o tráfego para a entrada do Cloud Service Mesh.

O que se segue?

Instale o componente de frota

Reversão

Se precisar de reverter as alterações que fez através dos passos anteriores, pode usar o script de migração para:

  • Elimine o gateway de entrada do Cloud Service Mesh.
  • Desinstale o Cloud Service Mesh.

Para reverter a configuração e a instalação da malha de serviço na nuvem:

  1. Execute o seguinte comando para iniciar a reversão.

    ./migration-addon.sh --command rollback-set-up-asm-ingress
    

    O resultado do terminal durante o processo tem um aspeto semelhante ao seguinte:

    Deleting Cloud Service Mesh ingress
    deployment.apps "istio-ingressgateway" deleted
    horizontalpodautoscaler.autoscaling "istio-ingressgateway" deleted
    role.rbac.authorization.k8s.io "istio-ingressgateway-sds" deleted
    rolebinding.rbac.authorization.k8s.io "istio-ingressgateway-sds" deleted
    Cloud Service Mesh ingress is successfully deleted.
    
  2. Para verificar se o gateway de entrada do Cloud Service Mesh foi removido, verifique se o serviço istio-ingressgateway já não existe no espaço de nomes gke-system:

    kubectl get deployment istio-ingressgateway -n gke-system
    
  3. Desinstale o Cloud Service Mesh

  4. Para continuar a reverter todas as alterações ao estado original das suas instalações, reverta o "suplemento do GKE" do Knative Serving.