Defina a afinidade do nó Kubernetes

Defina a afinidade do nó Kubernetes
Este tutorial está relacionado à afinidade do nó em Kubernetes. Se você deseja adicionar nós aos recipientes de pod nas vagens de clusters de Kubernetes usando afinidade, você está no lugar certo. Aqui, entenderemos como criar um novo nó em Kubernetes usando a afinidade do nó. Vamos ajudá -lo a cada passo com a ajuda de ilustrações pragmáticas. No final deste tutorial, poderemos adicionar novos nós a pods, excluir nós e atualizar os nós usando a afinidade em Kubernetes.

O que é a afinidade do nó em Kubernetes?

A afinidade do nó é um agendador que atribui os nós a vagens específicas. As vagens de Kubernetes fazem uso da afinidade do nó. A capacidade de um pod de declarar uma afinidade por um grupo específico de nós em que ele pode ser colocado é conhecido como afinidade do nó. Na afinidade do nó, realizamos dois tipos de agendamento - agendamento suave e difícil. Através da afinidade do nó, garantiremos que os diferentes vagens que estamos usando sejam hospedados em nós específicos no cluster de Kubernetes. No pod, cada nó é rotulado com um valor único.

Pré -requisitos:

Em nosso sistema, o sistema operacional Linux ou Ubuntu deve ser instalado. Se o Windows já estiver instalado, instale uma máquina virtual e execute a versão mais recente do Ubuntu em seu sistema. Kubernetes deve ser instalado no sistema após a instalação. Você deve estar familiarizado com os comandos de Kubernetes e a ferramenta de linha de comando kubectl.

Leia os pré -requisitos com cuidado. Após o cumprimento desses requisitos, execute os comandos na linha de comando Kubectl mencionados nos exemplos a seguir. Vamos dividir os tutoriais em degraus, cada um com uma breve explicação.

Etapa 1: execute os Kubernetes

Na primeira etapa, executamos os Kubernetes no terminal. O comando é o seguinte:

> Minikube Start

Aqui, o Minikube nos fornece um ambiente local no qual realizamos as diferentes operações em clusters.

Então, depois de executar o comando, o minikube começa e o espaço do nó é reservado.

Etapa 2: busque o nó existente em Kubernetes

Nesta etapa, os nós rotulados que existem atualmente no sistema são exibidos. Para obter os nós rotulados, usamos um comando específico.

Execute o seguinte comando no sistema e exiba os resultados:

> Kubectl Get nós -shows

Na captura de tela anterior, vimos que este comando retorna parâmetros diferentes como nome, status, funções, idade, versão e etiquetas. Os parâmetros do nome devem exibir o nome do contêiner, o parâmetro de status é retornar o estado do contêiner, o parâmetro de papéis é retornar quem controla o contêiner, o parâmetro de idade é retornar quanto tempo esse pod é criado, o parâmetro da versão é retornar Uma versão deste pod e o parâmetro dos rótulos é retornar o valor específico do nó para este pod.

Etapa 3: Defina a afinidade do nó Kubernetes

Nesta etapa, definimos a afinidade do nó para o contêiner Minikube. A afinidade do nó depende do rótulo. Aqui, atribuímos os rótulos usando o comando. O comando para definir a afinidade do nó é o seguinte:

> KUBECTL LABEL NOS MINIKUBE DISKTYPE == SSD

Anexamos um rótulo ao nó Minikube cujo tipo de disco é SSD. Temos a lista de nós rotulados após a rotulagem do nó. Isso significa que obtemos a lista da afinidade do nó. Aqui, executamos o mesmo comando novamente que usamos anteriormente para mostrar a lista dos nós rotulados.

> Kubectl Get nós -shows

Etapa 4: Defina o arquivo de configuração do Node Affinity pod ou afinidade do nó no arquivo YAML

Nesta etapa, definimos a afinidade do nó em um arquivo YAML. Em um contêiner Minikube, executamos os seguintes comandos para criar o arquivo YAML:

> Nano Aff. Yaml

No Linux, o Nano é usado para criação de arquivos.

Após a execução do comando, a seguinte captura de tela anexada aparece. Este é um arquivo de configuração que contém uma informação sobre contêineres e clusters. Como visto na captura de tela a seguir, a afinidade é especificada. Na afinidade do nó, ele nos dá um valor de “requerimento. Isso significa que o agendamento difícil é executado nesta vagem e a vagem exige essa programação a qualquer custo. Na afinidade do nó dura, uma vagem criada é chamada nginx. Definimos esse tipo de disco de pod conforme agendado nesse tipo de disco de nós, cuja etiqueta anexa é SSD. Lembre -se sempre de que, quando “NecedinguringSchedulingIgnoringException” é exibido, o agendamento difícil da afinidade do nó é realizado.

Dessa forma, definimos o pod com diferentes tipos de afinidade do nó.

Etapa 5: verifique se o pod está agendado no nó da etiqueta

Nesta etapa, determinamos se uma vagem está agendada ou não em um nó rotulado. Para esse fim, executamos o seguinte comando:

> Kubectl Aplicar -F aff.Yaml

A vagem é criada com sucesso.

Etapa 6: Alistar todos os pods em Kubernetes

Depois disso, verificamos a lista de vagens em execução ou pendentes em nossos Kubernetes. Executamos o seguinte comando que é mostrado na captura de tela:

.> Kubectl Get PODs -Output = Wide

Na captura de tela previamente ligada, notamos que todas as vagens estão em status de corrida. Junto com isso, obtemos todos os detalhes de POD através deste comando.

Etapa 7: Crie o pod para definir a afinidade do nó em Kubernetes

Nesta etapa, executamos o comando novamente para definição de afinidade do nó. Criamos um arquivo YAML com o “PF.Yaml ”Nome. O comando é o seguinte:

> nano pf.Yaml

Etapa 8: verifique o tipo de afinidade do nó

Nesta etapa, veremos qual tipo de afinidade do nó é definida neste arquivo YAML. O nome da vagem é nginx. Sua especificação é a afinidade, como mostrado na captura de tela a seguir. Na afinidade do nó, “preferrredduringschedulingInoringuringException” é usado. Quando a palavra preferida é usada, significa que o tipo de afinidade do nó é suave. Afinidade do nó suave significa que, se o cronograma preferir o nó e os rótulos correspondem à expressão de correspondência fornecida, está bem. Caso contrário, ignore e agende a vagem.

Etapa 9: verifique se o pod está programado para rotular o nó

Nesta etapa, verificamos se todos os pods que criamos estão agendados com nós de etiquetas. Por esse motivo, executamos o seguinte comando para criar o pod como um arquivo YAML:

> kubectl Aplicar -f pf.Yaml

A vagem é criada com sucesso.

Etapa 10: Alistar todas as vagens em Kubernetes

Aqui, executamos o comando para ver se todos os pods estão agendados com nós rotulados. Executamos o seguinte comando no terminal:

> Kubectl Get PODs -Output = Wide

O mesmo processo é repetido para a afinidade do nó suave, como discutimos anteriormente para a afinidade do nó duro. Todos os nós estão no status de execução, o que significa que todos os pods estão agendados com nós dos rótulos.

Conclusão

A afinidade do nó é um agendador para pods nos nós dos rótulos. A afinidade do nó inclui um conjunto de regras em forma rígida e suave. Isso é o que aprendemos em detalhes. Assumimos que você aprendeu muito com este tutorial. Você pode praticar para sua melhoria.