Planeie uma atualização
Esta página fornece informações para ajudar a planear uma atualização do Cloud Service Mesh. Recomendamos que reveja também as notas de atualização do Istio.
Acerca das atualizações de teste
Recomendamos que atualize o Cloud Service Mesh executando primeiro uma implementação canary do novo plano de controlo. Com uma atualização canary, o asmcli
instala uma nova revisão do plano de controlo juntamente com o plano de controlo antigo. Os planos de controlo antigos e novos estão etiquetados com uma etiqueta revision
, que serve como identificador dos planos de controlo.
Para migrar cargas de trabalho para o novo plano de controlo:
Defina a etiqueta
revision
do novo plano de controlo num dos seus espaços de nomes.Faça um reinício progressivo. O reinício injeta novamente os proxies sidecar nos pods para que os proxies usem o novo plano de controlo.
Monitorize o efeito da atualização nas cargas de trabalho. Se precisar de testar a sua aplicação, repita os passos anteriores.
Depois de testar a sua aplicação, pode migrar todo o tráfego para o novo plano de controlo ou reverter para o plano de controlo antigo.
Uma atualização canary é muito mais segura do que uma atualização no local, em que o novo plano de controlo substitui o antigo. Para ver passos detalhados, consulte o artigo Mude para o novo plano de controlo.
Personalize o plano de controlo
Se personalizou a instalação anterior, precisa das mesmas personalizações quando atualizar o Cloud Service Mesh. Se personalizou a instalação adicionando a flag --set values
a istioctl install
, tem de adicionar essas definições a um ficheiro YAML IstioOperator
, denominado ficheiro de sobreposição. Especifica o ficheiro de sobreposição através da opção --custom_overlay
com o nome do ficheiro quando executa asmcli
.
O pacote anthos-service-mesh
no GitHub contém muitos ficheiros de sobreposição. Estes ficheiros contêm personalizações comuns à configuração predefinida. Pode usar estes ficheiros tal como estão ou fazer alterações adicionais, conforme necessário. Alguns dos ficheiros são necessários para ativar funcionalidades opcionais da Cloud Service Mesh.
O pacote anthos-service-mesh
é transferido quando executa asmcli
para validar o seu projeto e cluster.
Quando instala o Cloud Service Mesh através do asmcli install
, pode especificar um ou mais ficheiros de sobreposição com o --option
ou o --custom_overlay
.
Se não precisar de fazer alterações aos ficheiros no repositório anthos-service-mesh
, pode usar --option
, e o script obtém o ficheiro do GitHub por si. Caso contrário, pode fazer alterações ao ficheiro de sobreposição e, em seguida, usar a opção --custom_overlay
para o transmitir ao asmcli
.
Escolha uma autoridade de certificação
Se a sua instalação atual do Cloud Service Mesh usar a autoridade de certificação do Cloud Service Mesh como a autoridade de certificação (CA) para emitir certificados TLS mútuo (mTLS), recomendamos que continue a usar a autoridade de certificação do Cloud Service Mesh pelos seguintes motivos:
- A autoridade de certificação do Cloud Service Mesh é um serviço altamente fiável e escalável que está otimizado para cargas de trabalho dimensionadas dinamicamente.
- Com a autoridade de certificação da Cloud Service Mesh, a Google gere a segurança e a disponibilidade do back-end da AC.
- A autoridade de certificação do Cloud Service Mesh permite-lhe confiar numa única raiz de confiança em todos os clusters.
Se a sua instalação atual do Cloud Service Mesh usar a AC do Istio (anteriormente denominada "Citadel"), pode mudar para a autoridade de certificação do Cloud Service Mesh quando fizer a atualização, mas tem de agendar um período de inatividade. Durante a atualização, o tráfego mTLS é interrompido até que todas as cargas de trabalho sejam comutadas para a utilização do novo plano de controlo com a autoridade de certificação do Cloud Service Mesh.
Os certificados da autoridade de certificação do Cloud Service Mesh incluem os seguintes dados acerca dos serviços da sua aplicação:
- O Google Cloud ID do projeto
- O espaço de nomes do GKE
- O nome da conta de serviço do GKE
Identificar a sua AC
Quando executa asmcli install
para fazer a atualização, especifica a AC que asmcli
deve ativar no novo plano de controlo.
A alteração das ACs provoca indisponibilidade quando implementa cargas de trabalho no novo plano de controlo. Se não conseguir agendar o tempo de inatividade, certifique-se de que especifica a mesma CA para o novo plano de controlo que o plano de controlo antigo usa. Se não tiver a certeza de qual CA está ativada na sua rede de malha, execute os seguintes comandos:
Obtenha uma lista de pods de um dos seus espaços de nomes:
kubectl get pods -n NAMESPACE
Substitua
POD_NAME
pelo nome de um dos seus Pods no seguinte comando:kubectl get pod POD_NAME -n NAMESPACE -o yaml | grep CA_ADDR -A 1
Se a autoridade de certificação do Cloud Service Mesh estiver ativada no espaço de nomes, é apresentado o seguinte resultado:
- name: CA_ADDR value: meshca.googleapis.com:443
Prepare a configuração do gateway
O Cloud Service Mesh dá-lhe a opção de implementar e gerir gateways como parte da sua malha de serviços. Um gateway descreve um balanceador de carga que opera no limite da malha e recebe ligações HTTP/TCP de entrada ou saída. As gateways são proxies Envoy que lhe oferecem um controlo detalhado sobre o tráfego que entra e sai da malha.
O asmcli
não instala o istio-ingressgateway
. Recomendamos que
implemente e faça a gestão do plano de controlo e das gateways separadamente. Para mais
informações, consulte o artigo Instalar e atualizar gateways.
Atualize a sua plataforma (opcional)
Como prática recomendada, deve atualizar o Cloud Service Mesh para a versão suportada mais recente que também seja compatível com a sua plataforma atual. Em seguida, atualize o seu ambiente para que esteja dentro do intervalo de plataformas e versões do Kubernetes suportadas. Por último, se necessário, atualize para a versão suportada mais recente do Cloud Service Mesh.