kube-proxy

Ao ativar o complemento de cluster kube-proxy, você pode passar os pares de chave/valor a seguir como argumentos.

Observe que, para clusters grandes, recomendamos que você revise a configuração do kube-proxy antes de implantar o complemento:

  • Revise kube-proxy.ContainerResources. O kube-proxy é executado em cada nó de trabalho, e os requisitos de recursos podem aumentar à medida que o número de Serviços, EndpointSlices, IPs de ponto final e eventos de atualização aumenta. Aumente as solicitações e os limites de CPU e memória se os pods kube-proxy mostrarem pressão sustentada de CPU ou memória.
  • Tenha cuidado ao definir nodeSelectors, afinidade ou tolerações. O kube-proxy deve ser executado em cada nó de trabalho que requer a rede do Kubernetes Service. As restrições de programação que excluem nós podem deixar esses nós sem rede de serviço funcional.
  • Use as definições rollingUpdate que permitem atualizações de kube-proxy para progredir em um grande número de nós. Evite definições que atualizem muitos nós de uma só vez ou impeçam que as atualizações passem pelo cluster.
  • Se você definir customizeKubeProxyConfigMap como verdadeiro, revise as definições de sincronização de kube-proxy para a versão e o modo de proxy do Kubernetes do cluster. A documentação do Kubernetes observa que, no modo iptables, clusters muito grandes podem precisar de um minSyncPeriod maior se a duração da sincronização da regra de kube-proxy for muito maior que um segundo (consulte IPs Virtuais e Proxies de Serviço na documentação do Kubernetes).
  • Se a versão do Kubernetes do cluster, o sistema operacional e o plug-in de rede suportarem o modo nftables, avalie se os nftables são apropriados para sua carga de trabalho. A documentação do Kubernetes observa que o modo nftables foi projetado para fornecer melhor desempenho e escalabilidade do que o modo iptables, mas também observa que ele pode não ser compatível com todos os plug-ins de rede (consulte IPs Virtuais e Proxies de Serviço na documentação do Kubernetes).
Argumentos de Configuração Comuns a todos os 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
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
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
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
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
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
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
customizeKubeProxyConfigMap personalizar kube-proxy configMap

Se você quiser que a Oracle gerencie o Kube-proxy automaticamente para você, defina customizeKubeProxyConfigMap como false (o padrão).

Se você quiser personalizar o comportamento do Kube-proxy, defina customizeKubeProxyConfigMap como true e crie um kube-proxy configMap no namespace do kube-system.

Obrigatório false true
kube-proxy.ContainerResources recursos de contêiner kube-proxy

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.