Configuração do complemento gerenciado Istio
O Istio on IBM Cloud® Kubernetes Service fornece uma instalação contínua do Istio, atualizações automáticas e gerenciamento de ciclo de vida de componentes de plano de controle do Istio e integração com as ferramentas de criação de log e monitoramento de plataforma.
Remoção de outras instalações do Istio de um cluster
Se você já instalou o Istio no cluster usando o gráfico IBM Helm ou por outro método, remova essa instalação do Istio antes de habilitar o complemento gerenciado Istio.
Antes de Iniciar: Verifique se o site Istio já está instalado no cluster. Execute kubectl get namespaces e procure o namespace istio-system na saída.
Para remover outras instalações do Istio:
-
Se você instalou o Istio usando o diagrama IBM Cloud Istio Helm,
- Desinstale a implementação do Istio Helm.
helm del istio --purge ``` 2. Se você usou o Helm 2.9 ou anterior, exclua o recurso de tarefa extra. ```sh {: pre} kubectl -n istio-system delete job --all ``` 3. O processo de desinstalação pode levar até 10 minutos. Antes de instalar o complemento gerenciado do Istio no cluster, execute `kubectl get namespaces` e verifique se o namespace `istio-system` foi removido. -
Se você tiver instalado o Istio manualmente ou usado o gráfico do Helm da comunidade do Istio, consulte a Documentação de desinstalação do Istio.
-
Se você instalou o BookInfo anteriormente no cluster, limpe esses recursos.
- Mude o diretório para o local do arquivo Istio.
cd <filepath>/istio-1.29.5 ``` 2. Exclua todos os serviços, pods e implementações do BookInfo no cluster. ```sh {: pre} samples/bookinfo/platform/kube/cleanup.sh ``` 3. O processo de desinstalação pode levar até 10 minutos. Antes de instalar o complemento gerenciado do Istio no cluster, execute `kubectl get namespaces` e verifique se o namespace `istio-system` foi removido.
Instalando o complemento do Istio
Em vez do Istio da comunidade, você pode instalar o complemento Istio gerenciado.
Antes de Iniciar
-
Assegure-se de que você tenha a função de acesso de serviço Gravador ou Gerenciador do IBM Cloud IAM para o IBM Cloud Kubernetes Service.
-
Não é possível executar a comunidade Istio simultaneamente com o complemento Istio gerenciado no cluster. Se você usar um cluster existente e tiver instalado anteriormente o Istio no cluster usando o gráfico do IBM Helm ou por meio de outro método, limpe a instalação do Istio.
-
Clusters clássicos multizona: assegure-se de ativar um Virtual Routing and Forwarding (VRF) para sua conta de infraestrutura IBM Cloud. Para ativar o VRF, consulte Ativando o VRF. Para verificar se um VRF já está ativado, use o comando
ibmcloud account show. Se não puder ou não quiser ativar a VRF, ative a Ampliação de VLAN. Para realizar essa ação, você precisa da permissão de infraestrutura “ Gerenciar a extensão de VLANs na rede ” ou pode solicitar ao proprietário da conta que a habilite. Para verificar se o spanning de VLAN já está habilitado, use o comandoibmcloud ks vlan spanning get --region REGION.
Instalando o complemento do ISTIO por meio do console
-
No painel de cluster, clique no nome do cluster em que você deseja instalar o complemento do Istio.
-
Navegue para a seção Complementos.
-
Na placa Istio gerenciado, clique em Instalar.
-
Clique em Instalar novamente.
-
No cartão Istio gerenciado, verifique se o complemento está listado.
Instalando o complemento do ISTIO com a CLI
-
Atualize o plug-in “
container-service” para a versão mais recente.ibmcloud update && ibmcloud plugin update container-service -
Revise as Versões de Istio suportadas.
ibmcloud ks addon-versions --addon istio -
Ative o complemento
istio. A versão padrão do complemento gerenciado “ Istio ”, disponível ao público em geral, 1.29.5, está instalada.ibmcloud ks cluster addon enable istio --cluster CLUSTER_NAME_OR_ID -
Verifique se o complemento Istio gerenciado tem um status de
Addon Ready.ibmcloud ks cluster addon ls --cluster CLUSTER_NAME_OR_IDExemplo de saída
NAME Version Health State Health Status istio 1.29.5 normal Addon Ready -
Também é possível verificar os componentes individuais do complemento para assegurar que os serviços do Istio e seus pods correspondentes sejam implementados.
kubectl get svc -n istio-systemkubectl get pods -n istio-system -
Em seguida, será possível incluir os seus apps na malha de serviço do Istio.
Instalando a CLI istioctl
Instale o cliente da CLI do istioctl em seu computador Para obter mais informações, consulte a Referência de comando do istioctl.
- Verifique a versão do Istio que você instalou em seu cluster.
istioctl version - Baixe no seu computador a versão do
istioctlcompatível com a versão doIstiodo seu cluster.curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.29.5 sh - - Navegue para o diretório do pacote Istio.
cd istio-1.29.5 - Usuários do Linux e do macOS: inclua o cliente
istioctlem sua variável de sistemaPATH.export PATH=$PWD/bin:$PATH
Customizando a instalação do Istio
É possível customizar um conjunto de opções de configuração do Istio editando o recurso configmap managed-istio-custom. Essas configurações incluem controle extra sobre monitoramento, criação de log e redes em seu plano de controle
e sua malha de serviço.
- Descreva o recurso
managed-istio-customConfigMap para analisar seu conteúdo e a documentação integrada.kubectl describe cm managed-istio-custom -n ibm-operators - Edite o recurso de mapa de configuração
managed-istio-custom.kubectl edit cm managed-istio-custom -n ibm-operators - Na seção
data, inclua o par<key>: "<value>"de uma ou mais das opções de configuração a seguir.
istio-components-pilot-requests-cpu-
- Valor padrão:
"500m" - Configure a solicitação de CPU no
millipara o pod do componenteistiod. Tenha cuidado ao mudar esse valor. Configurar esse valor muito baixo pode impedir que o plano de controle funcione adequadamente e configurar esse valor muito alto pode impedir que o podistiodseja planejado.
- Valor padrão:
istio-global-logging-level-
- Valor padrão:
"default:info": Defina o escopo de logs e o nível de mensagens de log para componentes do plano de controle. Um escopo representa uma área funcional dentro de um componente do plano de controle e cada escopo suporta níveis específicos de informações de log. O escopo de criação de logdefault, destinado a mensagens de log não categorizadas, é aplicado a todos os componentes no plano de controle no nívelinfobásico. - Para especificar níveis de log para escopos de componentes individuais, insira uma lista separada por vírgula de escopos e níveis, como
"<scope>:<level>,<scope>:<level>". Para obter uma lista dos escopos para cada componente do plano de controle e o nível de informações de mensagens de log, consulte a Documentação de criação de log do componente Istio. Para mudar o nível de log do plano de dados, use o comandoistioctl proxy-config log <pod> --level <level>.
- Valor padrão:
istio-global-outboundTrafficPolicy-mode-
Valor padrão:
"ALLOW_ANY": Por padrão, todo o tráfego de saída da malha de serviço é permitido. Para bloquear o tráfego de saída da malha de serviço para qualquer host que não esteja definido no registro de serviço ou que não tenha umServiceEntrydentro da malha de serviço, configure comoREGISTRY_ONLY. istio-global-proxy-accessLogFile-
Valor padrão:
"": Os proxies Envoy imprimem informações de acesso na saída padrão. Esses logs são úteis quando você depura problemas de ingresso ou egresso. Para visualizar essas informações de acesso ao executar os comandoskubectl logspara os contêineres do Envoy, configure como"/dev/stdout". istio-monitoring-telemetry-
Valor padrão:
"true": Por padrão, as métricas de telemetria e o suporte Prometheus estão ativados. Para remover quaisquer problemas de desempenho associados às métricas de telemetria e desativar todo o monitoramento, configure como"false". istio-meshConfig-enableTracing-
Valor padrão:
"true": Por padrão, o Istio gera períodos de rastreio para uam de cada 100 solicitações. Para desativar os períodos de rastreio, configure como"false". istio-pilot-traceSampling-
- Valor padrão:
"1.0" - Por padrão, o Istio gera intervalos de rastreamento para 1 em cada 100 solicitações, o que corresponde a uma taxa de amostragem de 1%. Para gerar mais períodos de rastreio, aumente o valor de porcentagem.
- Valor padrão:
istio-components-pilot-hpa-maxReplicas-
- Valor padrão:
"5" - Por padrão, o arquivo
Istiodefine o número máximo de pods do autoscaler horizontal (HPA) para oistiodcomo 5. Não aumente esse valor, a menos que você tenha uma service mesh de grande porte em que oistiodprecise de mais recursos para atualizar as configurações.
Por exemplo, o seu configmap pode se parecer com o exemplo a seguir.
apiVersion: v1 data: istio-ingressgateway-zone-1: dal10 <key: value> # such as istio-egressgateway-public-1-enabled: "false" kind: ConfigMap metadata: name: managed-istio-custom namespace: ibm-operatorsNão vê uma opção dessa tabela em seu configmap? Como o seu configmap contém valores definidos pelo usuário, o configmap não é atualizado com nenhuma opção que seja liberada ao longo do tempo. Em vez disso, é possível fazer backup de uma cópia de seu configmap e excluí-lo do cluster. Depois de aproximadamente 5 minutos, um configmap padrão que contém as novas opções é criado em seu cluster. Em seguida, é possível copiar suas configurações definidas anteriormente de seu backup para esse configmap padrão, definir novas configurações e aplicar as mudanças.
- Valor padrão:
-
Salve e feche o arquivo de configuração.
-
Ao mudar as configurações
istio-global-logging-levelouistio-global-proxy-accessLogFile, deve-se reiniciar os pods de plano de dados para aplicar as mudanças neles.- Obtenha a lista de todos os pods de plano de dados que não estão no namespace
istio-system.
istioctl version --short=false | grep "data plane version" | grep -v istio-system ``` Exemplo de saída ```sh {: screen} data plane version: version.ProxyInfo{ID:"test-6f86fc4677-vsbsf.default", IstioVersion:"1.29.5"} data plane version: version.ProxyInfo{ID:"rerun-xfs-f8958bb94-j6n89.default", IstioVersion:"1.29.5"} data plane version: version.ProxyInfo{ID:"test2-5cbc75859c-jh6bx.default", IstioVersion:"1.29.5"} data plane version: version.ProxyInfo{ID:"minio-test-78b5d4597d-hkpvt.default", IstioVersion:"1.29.5"} data plane version: version.ProxyInfo{ID:"sb-887f89d7d-7s8ts.default", IstioVersion:"1.29.5"} data plane version: version.ProxyInfo{ID:"gid-deployment-5dc86db4c4-kdshs.default", IstioVersion:"1.29.5"} ``` 2. Reinicie cada pod excluindo-o. Na saída da etapa anterior, o nome do pod e o espaço de nomes são listados em cada entrada como `data plane version: version.ProxyInfo{ID:"<pod_name>.<namespace>", IstioVersion:"1.29.5"}`. ```sh {: pre} kubectl delete pod <pod_name> -n <namespace> ``` - Obtenha a lista de todos os pods de plano de dados que não estão no namespace
- Quer alterar uma configuração do ConfigMap?
- Para mudar uma configuração incluída no configmap, é possível usar um script de correção. Por exemplo, se você incluiu a configuração
istio-global-proxy-accessLogFile: "/dev/stdout"e posteriormente desejar retorná-la para"", poderá executarkubectl patch cm managed-istio-custom -n ibm-operators --type='json' -p='[{"op": "add", "path": "/data/istio-global-proxy-accessLogFile", "value":""}]'. - Precisa depurar sua configuração de personalização em 1.24 ou posterior?
- Verifique o helm value.yaml e os registros de resultados do helm no configmap managed-istio-istiod-control-plane-values no namespace ibm-operators. O site value.yaml mostrará se a alteração foi adicionada. Os resultados do timão mostrarão
se houve algum erro de sintaxe.
kubectl get cm -n ibm-operators managed-istio-istiod-control-plane-values -o json | jq -r .data.\"values.yaml\" kubectl get cm -n ibm-operators managed-istio-istiod-control-plane-values -o json | jq -r .data.\"values.yaml.helm.result\"Thu, 23 Oct 2025 19:58:48 GMT HELM_SUCCESS: Release "istiod" has been upgraded. Happy Helming! NAME: istiod LAST DEPLOYED: Thu Oct 23 19:58:42 2025 NAMESPACE: istio-system STATUS: deployed REVISION: 275 TEST SUITE: None NOTES: "istiod" successfully installed! - Precisa depurar sua configuração de personalização no 1.23?
- Verifique os registros do pod
addon-istio-operator( Istio versão 1.10 a 1.23 ) executandokubectl logs -n ibm-operators -l name=managed-istio-operator. O operador Istio valida e reconcilia qualquer mudança customizada do Istio que você fizer.
Se você desativar o complemento Istio, o mapa de configuração managed-istio-custom não será removido durante a desinstalação. Quando você reativa o complemento ISTIO, seu configmap customizado é aplicado durante a instalação. Se
não quiser reutilizar configurações customizadas em uma instalação mais recente do Istio, você deverá excluir o configmap após desativar o complemento do Istio executando kubectl delete cm -n ibm-operators managed-istio-custom.
Ao ativar novamente o complemento Istio, o mapa de configuração padrão é aplicado durante a instalação.
Migração do complemento Istio para a comunidade Istio
Se você estiver usando as versões gerenciadas do complemento Istio 1.21 a 1.23, poderá migrar para uma versão posterior da comunidade Istio.
Antes de Iniciar: Se você não precisar mais do Istio, poderá desinstalar o complemento sem instalar a comunidade Istio em vez de concluir estas etapas.
Etapa 1: Desativar o complemento Istio no console
Desative o complemento pelo console ou pela CLI.
-
No painel de cluster, clique no nome do cluster do qual você deseja remover o complemento do Istio.
-
Navegue para a seção Complementos.
-
Na placa Istio gerenciado, clique no ícone do menu Ação.
-
Clique em ** Desinstalar **. O complemento Istio gerenciado está desativado nesse cluster.
-
No cartão do Istio gerenciado, verifique se o complemento que você desinstalou não está mais listado.
Etapa 1: Desativar os complementos do Istio na CLI
Desative o complemento e verifique se não há complementos adicionais no site Istio.
- Desative o complemento
istio.ibmcloud ks cluster addon disable istio --cluster CLUSTER_NAME_OR_ID -f - Verifique se todos os complementos do Istio gerenciados estão desativados neste cluster. Nenhum complemento do Istio é retornado na saída.
ibmcloud ks cluster addon ls --cluster CLUSTER_NAME_OR_ID - Aguarde 10 minutos antes de continuar com a próxima etapa. Isso nos dá tempo para descongestionar o operador Istio.
Etapa 2: Reduzir a escala do operador Istio
Reduzir a implantação do operador “ Istio ”. Ao migrar do uso do operador no cluster Istio pelo complemento Istio para o uso do istioctl pela comunidade Istio, você deve evitar que os dois métodos de instalação disputem o controle
do Istio. As etapas de redução de escala do operador, exclusão dos IOPs e exclusão do operador removem o operador no cluster sem desinstalar o Istio.
Execute o comando a seguir:
kubectl scale deployment -n ibm-operators addon-istio-operator --replicas=0
Etapa 3: Economia de recursos
Salve todos os recursos que você criou ou modificou no namespace istio-system e todos os recursos Kubernetes que foram gerados automaticamente por definições de recursos personalizados (CRDs).
-
Salve o
managed-istio-customConfigMap para solucionar problemas ou reinstalar o complemento posteriormente.kubectl get cm -n ibm-operators managed-istio-custom -o yaml > Customizations.yaml -
Salve todos os CRs (IOPs) IstioOperator. O operador no cluster Istio tem um finalizador nos IOPs para impedir sua exclusão até que o operador no cluster exclua os recursos definidos nos IOPs. Como parte da remoção do operador Istio sem excluir Istio, você deve remover os finalizadores.
- Listar os recursos IOP:
kubectl get iop -A ``` - Para cada recurso IOP listado, remova o finalizador. Exemplo usando o `managed-istio` IOP: ```sh {: pre} kubectl patch -n ibm-operators istiooperator/managed-istio --type json --patch='[ { "op": "remove", "path": "/metadata/finalizers" } ]' ``` - Para cada recurso IOP listado, salve cada um em um arquivo: ```sh {: pre} kubectl get iop -n <IOP_namespace> <IOP_name> -o yaml > <IOP_name>.yaml ``` -
Aguarde 10 minutos antes de continuar com a próxima etapa.
Etapa 4: Alterar o instalador dos IOPs
Exclua todos os recursos do operador Istio (IOP), por exemplo, para um gateway de entrada personalizado.
-
Certifique-se de que sua ferramenta
istioctlcli esteja na versão de patch necessária.istioctl version -
Para cada arquivo IOP que você salvou na etapa anterior, execute o comando
istioctl upgradepara atualizar Istio para a versão que corresponde à versãoistioctl. Esse comando também altera o mecanismo de instalação e atualização do uso do operador no cluster paraistioctl.istioctl upgrade -f <filename>.yaml
Etapa 5: Remoção do operador Istio e dos IOPs
Exclua a implementação do operador Istio, a conta de serviço, a vinculação de função de cluster, a função de cluster e todos os IOPs. Istio foi transferido do operador no cluster Istio para a instalação baseada em istioctl. Agora
você pode limpar os restos da instalação do operador no cluster Istio enquanto ele é reduzido.
-
Execute os seguintes comandos para excluir a implementação do operador Istio:
kubectl delete deployment -n ibm-operators addon-istio-operator --ignore-not-found=true kubectl delete serviceaccount -n ibm-operators addon-istio-operator --ignore-not-found=true kubectl delete clusterrolebinding addon-istio-operator --ignore-not-found=true kubectl delete clusterrole addon-istio-operator --ignore-not-found=true -
Exclua os IOPs.
- Listar os recursos IOP:
kubectl get iop -A ``` - Para cada recurso IOP listado, exclua-o: ```sh {: pre} kubectl delete IstioOperator <resource_name> -n <namespace> ```
Etapa 6: Removendo o ConfigMap
Como o ConfigMap foi salvo anteriormente, ele pode ser removido.
Remova o managed-istio-custom ConfigMap.
kubectl delete cm -n ibm-operators managed-istio-custom
A remoção do complemento está concluída e você pode continuar a usar e atualizar a comunidade Istio conforme necessário.
Desinstalando o complemento “ Istio ”
Se você já terminou de trabalhar com o Istio, pode limpar os recursos do Istio em seu cluster e desinstalar os complementos do Istio.
Etapa 1: Salvar recursos antes da desinstalação
Quaisquer recursos criados ou modificados no namespace istio-system são removidos. Para manter esses recursos, salve-os antes de desinstalar o complemento “ Istio ”.
-
Salve o
managed-istio-customConfigMap para solucionar problemas ou reinstalar o complemento posteriormente.kubectl get cm -n ibm-operators managed-istio-custom -o yaml > Customizations.yaml -
Para a versão 1.23 e anteriores, salve todos os IstioOperator CRs (IOPs).
a. Listar os recursos IOP:
kubectl get iop -Ab. Para cada recurso IOP listado, salve cada um em um arquivo:
kubectl get iop -n <IOP_namespace> <IOP_name> -o yaml > <IOP_name>.yaml
Etapa 2: desinstalando o complemento do Istio
Desinstale o complemento do console ou da CLI. Para Istio 1.20 e anteriores, todos os recursos personalizados do operador Istio (IOP) são automaticamente excluídos.
Desinstalando o Istio add-on a partir do console
-
No painel de cluster, clique no nome do cluster do qual você deseja remover o complemento do Istio.
-
Navegue para a seção Complementos.
-
Na placa Istio gerenciado, clique no ícone do menu Ação.
-
Clique em ** Desinstalar **. O complemento do Istio gerenciado é desativado nesse cluster e todos os recursos do Istio nesse cluster são removidos.
-
No cartão do Istio gerenciado, verifique se o complemento que você desinstalou não está mais listado.
Desinstalando o complemento “ Istio ” pela CLI
Se você não instalou os reprovados istio-sample-bookinfo e istio-extras add-ons, pule os passos 1 e 2.
- Desative o complemento
istio-sample-bookinfo.ibmcloud ks cluster addon disable istio-sample-bookinfo --cluster CLUSTER_NAME_OR_ID - Desative o complemento
istio-extras.ibmcloud ks cluster addon disable istio-extras --cluster CLUSTER_NAME_OR_ID - Desative o complemento
istio.ibmcloud ks cluster addon disable istio --cluster CLUSTER_NAME_OR_ID -f - Verifique se todos os complementos do Istio gerenciados estão desativados neste cluster. Nenhum complemento do Istio é retornado na saída.
ibmcloud ks cluster addon ls --cluster CLUSTER_NAME_OR_ID
Etapa 3: Removendo recursos
Depois que os recursos são salvos e o complemento é desativado, os recursos podem ser removidos
-
O mapa de configuração
managed-istio-customnão é removido durante a desinstalação. Se, posteriormente, o complemento Istio for ativado novamente, todas as configurações customizadas feitas no mapa de configuração serão aplicadas durante a instalação. Se não quiser reutilizar configurações customizadas em uma instalação mais recente do Istio, o configmap deverá ser excluído.kubectl delete cm -n ibm-operators managed-istio-custom -
Para a versão 1.23 e anteriores, exclua os recursos personalizados do operador Istio (IOP) e o IOP.
a. Exclua qualquer recurso customizado do operador Istio (IOP) que você criou, como para um gateway de ingresso customizado. Ao executar este comando, o operador Istio remove automaticamente qualquer recurso criado pelo recurso IOP, como implementações ou serviços.
kubectl delete IstioOperator <resource_name> -n <namespace>b. Exclua o
managed-istioIOP.kubectl delete iop -n ibm-operators managed-istio -
Para a versão 1.24 e posteriores, salve e exclua o gateway
addon-istioConfigMaps,, remova os gateways personalizados e exclua o plano de controle Istio.a. Salve o gateway
addon-istioConfigMaps.kubectl get cm -n ibm-operators managed-istio-ingressgateway-values -o json | jq -r .data.\"values.yaml\" > ingress-gateway.values kubectl get cm -n ibm-operators managed-istio-egressgateway-values -o json | jq -r .data.\"values.yaml\" > egress-gateway.valuesb. Exclua o gateway
addon-istioConfigMaps.kubectl delete cm -n ibm-operators managed-istio-egressgateway-values kubectl delete cm -n ibm-operators managed-istio-ingressgateway-valuesc. Remova os gateways personalizados.
d. Exclua o plano de controle Istio.
istioctl uninstall -y --purgeSaída:
All Istio resources will be pruned from the cluster Removed apps/v1, Kind=Deployment/istiod.istio-system. Removed /v1, Kind=Service/istiod.istio-system. Removed /v1, Kind=ConfigMap/istio.istio-system. Removed /v1, Kind=ConfigMap/istio-sidecar-injector.istio-system. Removed /v1, Kind=Pod/istiod-7f59b54bfd-p5f4d.istio-system. Removed /v1, Kind=Pod/istiod-7f59b54bfd-zckw6.istio-system. Removed policy/v1, Kind=PodDisruptionBudget/istiod.istio-system. Removed autoscaling/v2, Kind=HorizontalPodAutoscaler/istiod.istio-system. Removed admissionregistration.k8s.io/v1, Kind=MutatingWebhookConfiguration/istio-sidecar-injector.. ✔ Uninstall complete -
Aguarde 10 minutos antes de continuar com a próxima etapa.
Etapa 4: Remova o operador “ Istio ”
Para a versão 1.23 e anteriores, depois que o complemento for completamente desinstalado, você poderá remover o operador Istio.
Exclua a implementação, a conta de serviço, a ligação de função de cluster e a função de cluster do operador Istio.
kubectl delete deployment -n ibm-operators addon-istio-operator --ignore-not-found=true
kubectl delete serviceaccount -n ibm-operators addon-istio-operator --ignore-not-found=true
kubectl delete clusterrolebinding addon-istio-operator --ignore-not-found=true
kubectl delete clusterrole addon-istio-operator --ignore-not-found=true