Istio

Ao ativar o complemento de cluster do Istio, você pode passar os seguintes pares de chave/valor como argumentos.

Argumentos de Configuração Comuns à maioria dos Complementos de Cluster
Chave (API e CLI) Nome para Exibição da Chave (Console) Descrição Obrigatório/Opcional Valor Padrão Valor de Exemplo
affinity afinidade

Um grupo de regras de programação de afinidade.

Formato JSON em texto simples ou codificado em Base64.

Não utilizado por:
  • Operador de GPU Nvidia
Possíveis equivalentes:
  • Descoberta de Recursos do Nó, use master.affinity
  • Operador de Rede NVIDIA, use operator.affinity
  • Driver SMB CSI, use contoller.affinity
  • Operador de GPU AMD, use controllerManager.affinity
Opcional nulo nulo
nodeSelectors seletores de nó

Você pode usar seletores de nó e labels de nó para controlar os nós de trabalho nos quais os pods complementares são executados.

Para que um pod seja executado em um nó, o seletor de nós do pod deve ter a mesma chave/valor do label do nó.

Defina nodeSelectors como um par de chave/valor que corresponda ao seletor de nós do pod e ao label do nó de trabalho.

Formato JSON em texto simples ou codificado em Base64.

Não utilizado por:
  • Operador de GPU NVIDIA
  • SMB do Driver CSI
Possíveis equivalentes:
  • Descoberta de Recursos do Nó, use worker.nodeSelector
  • Operador de Rede NVIDIA, use operator.nodeSelectors
  • Operador de GPU AMD, use selector ou controllerManager.nodeSelector
Opcional nulo {"foo":"bar", "foo2": "bar2"}

O pod só será executado em nós que tenham o label foo=bar ou foo2=bar2.

numOfReplicas numOfReplicas O número de réplicas da implantação do complemento.
Não utilizado por:
  • Plug-in de GPU AMD
  • Operador de GPU NVIDIA
  • Operador de Rede NVIDIA
  • SMB do Driver CSI
Possíveis equivalentes:
  • CoreDNS, use nodesPerReplica
  • Descoberta de Recursos do Nó, use master.replicaCount
  • Operador de GPU AMD, use controllerManager.replicas
Obrigatório 1

Cria uma réplica da implantação do complemento por cluster.

2

Cria duas réplicas da implantação do complemento por cluster.

rollingUpdate rollingUpdate

Controla o comportamento desejado de atualização incremental por maxSurge e maxUnavailable.

Formato JSON em texto simples ou codificado em Base64.

Não utilizado por:
  • Descoberta de Recurso do Nó
  • Operador de Rede NVIDIA
  • SMB do Driver CSI
Possíveis equivalentes:
  • Operador de GPU NVIDIA, use daemonsets.rollingUpdate.maxUnavailable
  • Operador de GPU AMD, use upgradePolicy em devicePlugin, metricsExporter, testRunner, configManager ou draDriver
Opcional nulo nulo
tolerations tolerâncias

Você pode usar taints e tolerations para controlar os nós de trabalho nos quais os pods complementares são executados.

Para que um pod seja executado em um nó que tenha uma taint, o pod deve ter uma tolerância correspondente.

Defina tolerations como um par de chave/valor que corresponda à tolerância do pod e à mancha do nó de trabalho.

Formato JSON em texto simples ou codificado em Base64.

Possíveis equivalentes:
  • Descoberta de Recursos do Nó, use master.tolerations e/ou worker.tolerations
  • Operador de GPU NVIDIA, use daemonsets.tolerations
  • Operador de Rede NVIDIA, use operator.tolerations
  • Driver SMB CSI, use controller.tolerations
  • Operador de GPU AMD, usar tolerações em devicePlugin, metricsExporter, testRunner, configManager, draDriver ou controllerManager
Opcional nulo [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

Somente pods que têm essa tolerância podem ser executados em nós de trabalho que têm a mancha tolerationKeyFoo=tolerationValBar:noSchedule.

topologySpreadConstraints topologySpreadConstraints

Como distribuir pods correspondentes entre a topologia fornecida.

Formato JSON em texto simples ou codificado em Base64.

Não utilizado por:
  • Descoberta de Recurso do Nó
  • Operador de GPU NVIDIA
  • Operador de Rede NVIDIA
  • SMB do Driver CSI
  • AMD GPU Operator
Opcional nulo nulo
Argumentos de Configuração Específicos para esta Extensão de Cluster
Chave (API e CLI) Nome para Exibição da Chave (Console) Descrição Obrigatório/Opcional Valor Padrão Valor de Exemplo
customizeConfigMap customizeConfigMap

Se você quiser que a Oracle gerencie o Istio automaticamente, defina customizeConfigMap como false (o padrão).

Se você quiser personalizar o Istio usando o istioctl (ou outra ferramenta suportada pelo Istio) e quiser manter as personalizações quando a Oracle atualizar o complemento, defina customizeConfigMap como true.

Obrigatório false true
discovery.ContainerResources discovery.ContainerResources

Você pode especificar as quantidades de recursos solicitadas pelos contêineres de complementos e definir limites de uso de recursos que os contêineres de complementos não podem exceder.

Formato JSON em texto simples ou codificado em Base64.

Opcional nulo {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Crie contêineres complementares que solicitem 100 mililitros de CPU e 100 mebibytes de memória. Limite os contêineres complementares a 500 milicores de CPU e 200 mebibytes de memória.

discovery.EnvVariables discovery.EnvVariables

Lista de variáveis de ambiente do contêiner de descoberta do plano de controle Istio, no formato JSON.

Opcional nulo [{"name":"ISTIO_GPRC_MAXRECVMSGSIZE","value":"8388608"},{"name":"ISTIO_GPRC_MAXSTREAMS","value":"150000"}]
enableIngressGateway enableIngressGateway Ativar gateway de entrada do Istio Obrigatório false true
istio-ingressgateway.Annotations istio-ingressgateway.Annotations

Anotações a serem passadas para a implantação do Istio.

Por exemplo, para especificar a forma do balanceador de carga ou se o balanceador de carga será criado como balanceador de carga de rede. Para obter mais anotações, consulte Resumo de Anotações para Balanceadores de Carga e Balanceadores de Carga de Rede.

Formato JSON em texto simples ou codificado em Base64.

Opcional ""

{"service.beta.kubernetes.io/oci-load-balancer-shape":"400Mbps"}

{"oci.oraclecloud.com/load-balancer-type": "nlb"}

istio-ingressgateway.HorizontalPodAutoscalerMinReplicas istio-ingressgateway.HorizontalPodAutoscalerMinReplicas

Número mínimo de réplicas do pod horizontal do gateway de entrada Istio.

Deve ser um número inteiro com um valor maior que zero.

Opcional nulo 1
istio-ingressgateway.HorizontalPodAutoscalerMaxReplicas istio-ingressgateway.HorizontalPodAutoscalerMaxReplicas

Número máximo de réplicas do pod horizontal do gateway de entrada Istio.

Deve ser um número inteiro com um valor maior que zero.

Opcional nulo 3
istio-ingressgateway.PodDisruptionBudgetMinAvailable istio-ingressgateway.PodDisruptionBudgetMinAvailable

Número mínimo ou porcentagem de pods de gateway de entrada do Istio disponíveis.

Opcional nulo

1

10%

istiod.HorizontalPodAutoscalerMinReplicas istiod.HorizontalPodAutoscalerMinReplicas

Número mínimo de réplicas do controlador Istio.

Deve ser um número inteiro com um valor maior que zero.

Opcional nulo 1
istiod.HorizontalPodAutoscalerMaxReplicas istiod.HorizontalPodAutoscalerMaxReplicas

Número máximo de réplicas do controlador Istio.

Deve ser um número inteiro com um valor maior que zero.

Opcional nulo 3
istiod.PodDisruptionBudgetMinAvailable istiod.PodDisruptionBudgetMinAvailable

Número mínimo ou porcentagem de pods do controlador Istio disponíveis.

Opcional nulo

1

10%

profile perfil Perfil de instalação do Istio Obrigatório "oke-default" "oke-default"
Considerações sobre Clusters Grandes

A tabela a seguir descreve considerações para configurar este complemento de cluster em clusters grandes.

Nome do Argumento Número wrt de Atribuições dos Nós Descrição À medida que o tamanho do cluster aumenta Riscos Recomendação
affinity N

Controla o posicionamento dos pods Istio em nós específicos.

Não aplicável Não aplicável Não aplicável
nodeSelectors N

Controla se os pods Istio são executados em nós com labels específicos.

Não aplicável Não aplicável Não aplicável
tolerations N

Controla se os pods Istio podem ser executados em nós contaminados.

Não aplicável Não aplicável Não aplicável
topologySpreadConstraints S

Controla como os pods Istio correspondentes são distribuídos na topologia do cluster.

Talvez seja necessário ajustar as restrições de distribuição da topologia quando o número de réplicas istiod aumenta.

Se não estiver bem configurado, réplicas de istiod ou gateway podem acabar co-localizadas no mesmo nó ou na mesma zona, de modo que uma falha de nó/zona elimina várias réplicas de uma só vez.

Configure o topologySpreadConstraints para distribuir réplicas de gateway de entrada e istíodo em diferentes nós e zonas de disponibilidade, melhorando a resiliência contra falhas de nó e zona.

numOfReplicas S

Controla o número de réplicas do plano de controle Istio.

Podem ser necessárias mais réplicas à medida que o número de pods que participam da malha de serviços aumenta.

Se definido muito baixo, istiod tem uma maior chance de se tornar um único ponto de falha durante drenos de nó ou atualizações.

Aumente o número de réplicas à medida que o número de pods em malha aumenta.

rollingUpdate N

Controla a estratégia de atualização para a implantação do Istio.

Não aplicável Não aplicável Não aplicável
customizeConfigMap N

Controla a configuração de Istio no nível do operador.

Não aplicável Não aplicável Não aplicável
discovery.ContainerResources S

Define recursos de CPU e memória para o contêiner de descoberta istiod .

Os requisitos de CPU e memória podem aumentar à medida que o número de proxies em malha e a quantidade de configuração do Istio aumentam.

Se subdimensionado, o plano de controle Istio pode não ter CPU ou memória, o que arrisca uma propagação de configuração mais lenta, atualizações de sidecar atrasadas e instabilidade sob alta rotatividade de malha.

Aloque CPU e memória suficientes para o istiod com base no tamanho da malha e no tráfego, e monitore a utilização de recursos regularmente para evitar gargalos no plano de controle à medida que o cluster cresce.
discovery.EnvVariables N

Define variáveis de ambiente para o contêiner de descoberta do plano de controle Istio.

Não aplicável Não aplicável Não aplicável
enableIngressGateway N

Controla se o gateway de entrada Istio clássico está ativado.

Não aplicável Não aplicável

Ative o gateway de entrada somente quando o cluster exigir o gateway de entrada Istio clássico.

istio-ingressgateway.Annotations S

Define anotações para o gateway de entrada Istio, incluindo anotações que controlam o tipo e a forma do balanceador de carga.

A configuração do balanceador de carga necessária depende do volume de tráfego que o gateway de entrada recebe ou deve receber, em vez de diretamente no número de nós do cluster.

Se configurado incorretamente, o gateway de entrada poderá ser provisionado com a forma ou o tipo de balanceador de carga errado (por exemplo, forma de LB do OCI ou definição de NLB errada). Isso pode levar a exposição incorreta, limites de throughput ou problemas de roteamento de tráfego.

Configure anotações do balanceador de carga da OCI para atender aos seus requisitos de tráfego de produção e arquitetura de rede, garantindo balanceamento de carga ideal, escalabilidade e alta disponibilidade.
istio-ingressgateway.HorizontalPodAutoscalerMinReplicas S

Define o número mínimo de réplicas do gateway de entrada Istio mantidas pelo Horizontal Pod Autoscaler.

Pode ser necessário mais réplicas de gateway de entrada à medida que o tráfego aumenta.

Se muito baixo, o gateway de entrada terá menos capacidade de linha de base e terá maior probabilidade de se tornar um gargalo de tráfego durante os picos. Se for 1, também há menos resiliência durante as interrupções.

Aumente o número mínimo de réplicas à medida que o tráfego aumenta para manter a disponibilidade e a tolerância a falhas.

istio-ingressgateway.HorizontalPodAutoscalerMaxReplicas S

Define o número máximo de réplicas de gateway de entrada do Istio que o Horizontal Pod Autoscaler pode criar.

O gateway de entrada pode precisar ser dimensionado para mais réplicas à medida que o tráfego aumenta.

Se muito baixo, o gateway de entrada não poderá ser dimensionado o suficiente durante picos de tráfego, o que pode criar latência ou conexões eliminadas.

Aumente o número máximo de réplicas à medida que o tráfego aumenta para manter a disponibilidade e a tolerância a falhas.

istio-ingressgateway.PodDisruptionBudgetMinAvailable S

Define o número mínimo ou a porcentagem de pods de gateway de entrada Istio que devem permanecer disponíveis durante uma interrupção voluntária.

Pode ser necessário um valor de disponibilidade mínimo mais alto à medida que o tráfego de entrada aumenta.

Se muito baixo, os upgrades ou drenos de nós podem remover muitos gateways de uma só vez e criar uma interrupção de entrada.

Aumente o valor mínimo de disponibilidade à medida que o tráfego aumenta para manter a alta disponibilidade.

istiod.HorizontalPodAutoscalerMinReplicas S

Define o número mínimo de réplicas istiod mantidas pelo Horizontal Pod Autoscaler.

Podem ser necessárias mais réplicas istiod à medida que o tamanho da malha de serviços aumenta.

Se muito baixo, o plano de controle começa a partir de pouca capacidade e é mais provável que fique para trás durante as explosões de configuração.

Aumentar o número mínimo de réplicas à medida que a malhagem aumenta. Use pelo menos três réplicas para manter a disponibilidade.

istiod.HorizontalPodAutoscalerMaxReplicas S

Define o número máximo de réplicas istiod que o Horizontal Pod Autoscaler pode criar.

Mais réplicas istiod poderão ser necessárias quando as réplicas existentes atingirem ou excederem seus limites de recursos.

Se muito baixo, o istíodo não pode ser dimensionado o suficiente para lidar com o crescimento da malha, a rotatividade de configurações ou um grande número de sidecars.

Aumente o número máximo de réplicas quando os pods istiod se aproximarem consistentemente ou excederem seus limites de recursos.

istiod.PodDisruptionBudgetMinAvailable S

Define o número mínimo ou a porcentagem de istiod pods que devem permanecer disponíveis durante uma interrupção voluntária.

A manutenção de réplicas istiod disponíveis se torna cada vez mais importante quando o plano de controle gerencia uma grande malha de serviços.

Se muito baixo, um dreno ou upgrade pode deixar o plano de controle indisponível e a injeção sidecar pode falhar em todo o cluster.

Configure o valor para que alguns pods istiod permaneçam disponíveis durante reinicializações e atualizações de configuração.

profile N

Especifica o perfil de instalação do Istio.

Não aplicável Não aplicável Não aplicável