Migrar o Istio incluído no Istio para Cloud Service Mesh

Essas etapas são específicas para a versão agrupada do Istio que é incluída por padrão com o "complemento do GKE" do Knative Serving.

Como a versão empacotada do Istio foi desinstalada quando você executou processo de desinstalação do "complemento GKE" (em inglês) do Knative serving, as etapas nesta página, instale o Cloud Service Mesh no seu cluster e configura seu gateway de entrada.

Antes de começar

Visão geral

Em geral, o processo para instalar o Cloud Service Mesh ao migrar da versão agrupada do Istio é o mesmo que realizar uma instalação limpa do Cloud Service Mesh. Neste processo, a versão do Cloud Service Mesh 1.18 é instalado com o Plano de controle no cluster.

Instalar o Cloud Service Mesh versão 1.18

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, o gateway de entrada precisa ser instalado separadamente durante as etapas de configuração subsequentes. O script de instalação não instala o gateway de entrada por padrão.

  • Opcional: se você usar a autoridade de certificação do Cloud Service Mesh (Mesh CA), também precisará incluir a sinalização --ca mesh_ca com o script de instalação do Cloud Service Mesh.

Para instalar o Cloud Service Mesh:

Siga as etapas na documentação do Cloud Service Mesh: Instalar o Cloud Service Mesh versão 1.18

Exemplo

Veja a seguir um exemplo do comando padrão que inclui a sinalização necessária:

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

Configurar a entrada do Cloud Service Mesh

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

Para a migração, o namespace gke-system é usado para que o gateway de entrada seja colocado no mesmo namespace usado pelo "Istio" agrupado removido recentemente. Portanto, os pods de entrada do Cloud Service Mesh podem assumir o tráfego facilmente sem nenhuma alteração de configuração necessária no serviço de entrada. Por exemplo, não é necessário configurar um novo endereço IP externo.

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

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

    A saída do terminal durante o processo é semelhante a esta:

    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á em execução no namespace gke-system executando o seguinte comando:

    kubectl get deployment istio-ingressgateway -n gke-system
    

    Observe que o número de pods istio-ingressgateway é intencionalmente 0. Depois de instalar o componente da frota de serviço do Knative serving, há uma etapa subsequente para migrar todo o tráfego para a entrada do Cloud Service Mesh.

A seguir

Instalar o componente da frota

Reversão

Se você precisar reverter as alterações feitas por meio das seguintes etapas, use o script de migração para:

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

Para reverter a configuração e a instalação do Cloud Service Mesh:

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

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

    A saída do terminal durante o processo é semelhante a esta:

    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 não existe mais no namespace gke-system:

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

  4. Para continuar revertendo todas as alterações para o estado original das instalações, reverta o "complemento do GKE" do Knative serving.