Como usar o Kubernetes SodeSelector

Como usar o Kubernetes SodeSelector
O cluster de Kubernetes usa as restrições de agendamento, como: contas, etiquetas, tolerações e modeseletor para segregar e agendar a carga de trabalho em diferentes pools de nós. As restrições de agendamento são um requisito comum em Kubernetes para gerenciamento de infraestrutura. Vamos nos concentrar nas restrições de agendamento do SodeSelector neste artigo. Estaremos explorando o que é um Nodeselector, como funciona e como pode ser usado em Kubernetes. Apresentaremos um cenário simples para ajudá -lo a entender como usar com eficiência o Kubernetes Sodeselector.

O que é Kubernetes Sodeselector?

Um NodeseLector é uma restrição de agendamento em Kubernetes que especifica um mapa na forma de uma chave: Value Par Selectores de vagem personalizados e rótulos de nós são usados ​​para definir a chave, o par de valores. O NodeseLector rotulado no nó deve corresponder com a chave: par de valores para que um determinado pod possa ser executado em um nó específico. Para agendar o pod, os rótulos são usados ​​nos nós e os modeletores são usados ​​em vagens. A plataforma OpenShift Container agenda as vagens nos nós usando o NodeSelector, combinando com os rótulos.

Além disso, rótulos e modeselector são usados ​​para controlar qual pod deve ser agendado em um nó específico. Quando você usa os rótulos e o NodeSelector, rotule o nó primeiro para que os pods não sejam desscheduled e depois adicione o NodeseLector à vagem. Para colocar um determinado pod em um determinado nó, o NodeseLector é usado, enquanto o NodeSelector em todo. O projeto NodeSelector é usado para colocar o novo pod em um determinado nó no projeto.

Pré -requisitos

Para usar o Kubernetes SodeSelector, verifique se você tem as seguintes ferramentas instaladas em seu sistema:

  • Ubuntu 20.04 ou qualquer outra versão mais recente
  • Minikube Cluster com um mínimo de um nó de trabalhador
  • Ferramenta de linha de comando kubectl

Agora, estamos nos mudando para a próxima seção, onde estaremos demonstrando como você pode usar o NodeSelector em um cluster de Kubernetes.

Configuração do SodeSelector em Kubernetes

Uma vagem pode ser restrita a ser capaz de executar apenas em um nó específico usando o NodeseLector. O Nodeselector é uma restrição de seleção de nós especificada na especificação POD PODSPEC. Em palavras simples, o NodeseLector é um recurso de agendamento que fornece controle sobre o pod para agendar o pod em um nó com o mesmo rótulo especificado pelo usuário para o rótulo Nodeselector. Para usar ou configurar o Nodeselector em Kubernetes, você precisa do cluster Minikube. Inicie o cluster Minikube com o comando dado abaixo:

> Minikube Start

Agora que o cluster do Minikube foi iniciado com sucesso, podemos iniciar a implementação da configuração do NodeSelector em Kubernetes. Neste documento, vamos guiá -lo a criar duas implantações, uma não é sem o NodeseLector e o outro está com o NodeSelector.

Configurar a implantação sem o NodeseLector

Primeiro, extrairemos os detalhes de todos os nós que estão atualmente ativos no cluster usando o comando dado abaixo:

> Kubectl Get nós

Este comando listará todos os nós presentes no cluster com os detalhes de nome, status, funções, idade e parâmetros de versão. Veja a saída de amostra dada abaixo:

Agora, verificaremos quais manchas estão ativas nos nós no cluster para que possamos planejar a implantação das vagens no nó de acordo. O comando dado abaixo deve ser usado para obter a descrição das manchas aplicadas no nó. Não deve haver manchas ativas no nó para que as vagens possam ser facilmente implantadas nele. Então, vamos ver quais manchas estão ativas no cluster executando o seguinte comando:

> Kubectl Descreva os nós Minikube | Grep Taint

A partir da saída dada acima, podemos ver que não há mancha aplicada no nó, exatamente o que precisamos para implantar as vagens no nó. Agora, a próxima etapa é criar uma implantação sem especificar nenhum número de steletor. Nesse caso, usaremos um arquivo YAML onde armazenaremos a configuração do Nodeselector. O comando anexado aqui será usado para a criação do arquivo YAML:

> Nano se esgoto.Yaml

Aqui, estamos tentando criar um arquivo YAML chamado Enond.YAML com o comando nano.

Ao executar este comando, teremos um esgotar.Arquivo YAML onde armazenaremos a configuração de implantação. Veja a configuração de implantação abaixo:

Agora, criaremos a implantação usando o arquivo de configuração de implantação. O esgoto.O arquivo YAML será usado junto com o comando 'Criar' para criar a configuração. Veja o comando completo dado abaixo:

> Kubectl Criar -f Esgotar.Yaml

Como mostrado acima, a implantação foi criada com êxito, mas sem o NodeSelector. Agora, vamos verificar os nós que já estão disponíveis no cluster com o comando dado abaixo:

> kubectl Obtenha pods

Isso listará todos os pods disponíveis no cluster. Veja a saída fornecida abaixo:

Em seguida, precisamos mudar a contagem de réplicas que podem ser feitas editando o esgotamento.arquivo yaml. Basta abrir o esgoto.Arquivo Yaml e edite o valor das réplicas. Aqui, estamos mudando as réplicas: 3 para réplicas: 30. Veja a modificação no instantâneo dado abaixo:

Agora, as mudanças precisam ser aplicadas à implantação do arquivo de definição de implantação e isso pode ser feito usando o seguinte comando:

> Kubectl Aplicar -f Esgotar.Yaml

Agora, vamos verificar mais detalhes dos pods usando a opção -o wide:

> kubectl Obtenha pods -O de largura

A partir da saída acima, podemos ver que os novos nós foram criados e agendados no nó, pois não há mancha ativa no nó que estamos usando no cluster. Portanto, precisamos especificamente ativar uma mancha para garantir que os pods sejam agendados apenas no nó desejado. Para isso, precisamos criar o rótulo no nó principal:

> kubectl rótulo nós mestre no mestre = true

Configurar a implantação com o NodeSelector

Para configurar a implantação com um NodeSelector, seguiremos o mesmo processo que se seguiu para a configuração da implantação sem nenhum número.

Primeiro, criaremos um arquivo YAML com o comando 'nano', onde precisamos armazenar a configuração da implantação.

> Nano e.Yaml

Agora, salve a definição de implantação no arquivo. Você pode comparar os dois arquivos de configuração para ver a diferença entre as definições de configuração.

Agora, crie a implantação do NodeSelector com o comando abaixo:

> Kubectl Criar -f nd.Yaml

Obtenha os detalhes das vagens usando a bandeira -o ampla:

> kubectl Obtenha pods -O de largura

A partir da saída dada acima, podemos notar que as vagens estão sendo implantadas no nó Minikube. Vamos mudar a contagem de réplicas para verificar onde as novas vagens são implantadas no cluster.

Aplique as novas alterações na implantação usando o seguinte comando:

> kubectl Aplicar -f nd.Yaml

Conclusão

Neste artigo, tivemos uma visão geral da restrição de configuração do SodeSelector em Kubernetes. Aprendemos o que é um NodeSelector em Kubernetes e com a ajuda de um cenário simples, aprendemos como criar uma implantação com e sem restrições de configuração de someseletor. Você pode se referir a este artigo se for novo no conceito Nodeselector e encontrar todas as informações relevantes.