Tenho um cluster Kubernetes com muitos pools de nós. Às vezes, a implantação falha porque o pool de nós selecionado pelo Kubernetes não tem recursos disponíveis suficientes.
Existe alguma maneira de forçar o Kubernetes a selecionar um pool de nós com a quantidade de recursos que todo o conjunto de pods solicitou?
Responder1
Você pode restringir um pod para que ele só possa ser executado em um conjunto específico de nós. Existem várias maneiras de fazer isso e a abordagem recomendada é usar seletores de rótulos.
Você pode usar qualquer um dos métodos a seguir para escolher onde o Kubernetes agenda pods específicos:
seletor de nócorrespondência de campo contrarótulos de nó
Afinidade e antiafinidade
campo nodeName
Aseletor de nóespecifica um mapa de pares chave/valor que são definidos usando rótulos personalizados em nós e seletores especificados em pods.
Para que o pod seja elegível para execução em um nó, o pod deve ter o mesmo seletor de nó de chave/valor que o rótulo no nó.
Observação: você não pode adicionar um seletor de nó diretamente a um pod agendado existente.
nodeSelector é a maneira mais simples de restringir pods a nós com rótulos específicos, enquantoAfinidade e antiafinidadeexpande os tipos de restrições que você pode definir. O recurso de afinidade consiste em dois tipos de afinidade:
- A afinidade do nó funciona como o campo nodeSelector, mas é mais expressiva e permite especificar regras flexíveis.
- A afinidade/antiafinidade entre pods permite restringir pods a rótulos em outros pods.
Para nome do nó você podereferirpara o link para mais informações.
A afinidade do nó é uma propriedade dos Pods que os atrai para um conjunto de nós e, como dito, o seletor de nós é usado para restringir os pods. Então, você pode usarMáculas e tolerâncias.
Os taints são opostos porque permitem que um nó repela um conjunto de pods. As tolerâncias são aplicadas aos pods e permitem que os pods sejam agendados em nós com taints correspondentes. Taints e tolerâncias trabalham juntos para garantir que os pods não sejam agendados em nós inadequados. Um ou mais taints são aplicados a um nó. Isso indica que o nó deve recusar quaisquer pods que não tolerem as contaminações.
Você pode consultar olinkspara mais informações sobreimpurezas e tolerância.