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.