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,

    1. 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.

    1. 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

Instalando o complemento do ISTIO por meio do console

  1. No painel de cluster, clique no nome do cluster em que você deseja instalar o complemento do Istio.

  2. Navegue para a seção Complementos.

  3. Na placa Istio gerenciado, clique em Instalar.

  4. Clique em Instalar novamente.

  5. No cartão Istio gerenciado, verifique se o complemento está listado.

Instalando o complemento do ISTIO com a CLI

Efetue login na sua conta. If applicable, target the appropriate resource group. Configure o contexto para o seu cluster.

  1. Atualize o plug-in “ container-service ” para a versão mais recente.

    ibmcloud update && ibmcloud plugin update container-service
    
  2. Revise as Versões de Istio suportadas.

    ibmcloud ks addon-versions --addon istio
    
  3. 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
    
  4. Verifique se o complemento Istio gerenciado tem um status de Addon Ready.

    ibmcloud ks cluster addon ls --cluster CLUSTER_NAME_OR_ID
    

    Exemplo de saída

    NAME            Version     Health State   Health Status
    istio           1.29.5       normal         Addon Ready
    
  5. 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-system
    
    kubectl get pods -n istio-system
    
  6. 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.

  1. Verifique a versão do Istio que você instalou em seu cluster.
    istioctl version
    
  2. Baixe no seu computador a versão do istioctl compatível com a versão do Istio do seu cluster.
    curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.29.5 sh -
    
  3. Navegue para o diretório do pacote Istio.
    cd istio-1.29.5
    
  4. Usuários do Linux e do macOS: inclua o cliente istioctl em sua variável de sistema PATH.
    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.

  1. Descreva o recurso managed-istio-custom ConfigMap para analisar seu conteúdo e a documentação integrada.
    kubectl describe cm managed-istio-custom -n ibm-operators
    
  2. Edite o recurso de mapa de configuração managed-istio-custom.
    kubectl edit cm managed-istio-custom -n ibm-operators
    
  3. 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 milli para o pod do componente istiod . 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 pod istiod seja planejado.
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 log default, destinado a mensagens de log não categorizadas, é aplicado a todos os componentes no plano de controle no nível info bá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 comando istioctl proxy-config log <pod> --level <level>.
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 um ServiceEntry dentro da malha de serviço, configure como REGISTRY_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 comandos kubectl logs para 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.
istio-components-pilot-hpa-maxReplicas
Valor padrão: "5"
Por padrão, o arquivo Istio define o número máximo de pods do autoscaler horizontal (HPA) para o istiod como 5. Não aumente esse valor, a menos que você tenha uma service mesh de grande porte em que o istiod precise 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-operators

Nã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.

  1. Salve e feche o arquivo de configuração.

  2. Ao mudar as configurações istio-global-logging-level ou istio-global-proxy-accessLogFile, deve-se reiniciar os pods de plano de dados para aplicar as mudanças neles.

    1. 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>
        ```
    
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á executar kubectl 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 ) executando kubectl 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.

  1. No painel de cluster, clique no nome do cluster do qual você deseja remover o complemento do Istio.

  2. Navegue para a seção Complementos.

  3. Na placa Istio gerenciado, clique no ícone do menu Ação.

  4. Clique em ** Desinstalar **. O complemento Istio gerenciado está desativado nesse cluster.

  5. 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.

  1. Desative o complemento istio.
    ibmcloud ks cluster addon disable istio --cluster CLUSTER_NAME_OR_ID -f
    
  2. 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
    
  3. 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).

  1. Salve o managed-istio-custom ConfigMap para solucionar problemas ou reinstalar o complemento posteriormente.

    kubectl get cm -n ibm-operators managed-istio-custom -o yaml > Customizations.yaml
    
  2. 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
        ```
    
  3. 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.

  1. Certifique-se de que sua ferramenta istioctl cli esteja na versão de patch necessária.

    istioctl version
    
  2. Para cada arquivo IOP que você salvou na etapa anterior, execute o comando istioctl upgrade para atualizar Istio para a versão que corresponde à versão istioctl. Esse comando também altera o mecanismo de instalação e atualização do uso do operador no cluster para istioctl.

    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.

  1. 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
    
  2. 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 ”.

  1. Salve o managed-istio-custom ConfigMap para solucionar problemas ou reinstalar o complemento posteriormente.

    kubectl get cm -n ibm-operators managed-istio-custom -o yaml > Customizations.yaml
    
  2. Para a versão 1.23 e anteriores, salve todos os IstioOperator CRs (IOPs).

    a. Listar os recursos IOP:

    kubectl get iop -A
    

    b. 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

  1. No painel de cluster, clique no nome do cluster do qual você deseja remover o complemento do Istio.

  2. Navegue para a seção Complementos.

  3. Na placa Istio gerenciado, clique no ícone do menu Ação.

  4. Clique em ** Desinstalar **. O complemento do Istio gerenciado é desativado nesse cluster e todos os recursos do Istio nesse cluster são removidos.

  5. 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.

  1. Desative o complemento istio-sample-bookinfo.
    ibmcloud ks cluster addon disable istio-sample-bookinfo --cluster CLUSTER_NAME_OR_ID
    
  2. Desative o complemento istio-extras.
    ibmcloud ks cluster addon disable istio-extras --cluster CLUSTER_NAME_OR_ID
    
  3. Desative o complemento istio.
    ibmcloud ks cluster addon disable istio --cluster CLUSTER_NAME_OR_ID -f
    
  4. 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

  1. O mapa de configuração managed-istio-custom nã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
    
  2. 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-istio IOP.

    kubectl delete iop -n ibm-operators managed-istio
    
  3. Para a versão 1.24 e posteriores, salve e exclua o gateway addon-istio ConfigMaps,, remova os gateways personalizados e exclua o plano de controle Istio.

    a. Salve o gateway addon-istio ConfigMaps.

    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.values
    

    b. Exclua o gateway addon-istio ConfigMaps.

    kubectl delete cm -n ibm-operators managed-istio-egressgateway-values
    kubectl delete cm -n ibm-operators managed-istio-ingressgateway-values
    

    c. Remova os gateways personalizados.

    d. Exclua o plano de controle Istio.

    istioctl uninstall -y --purge
    

    Saí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
    
  4. 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