Kubernetes Networking Question #019e3a4f
Cenário: Você tem um cluster Kubernetes hospedado em um provedor de nuvem pública. Ao tentar criar um Service do tipo LoadBalancer, o external-ip fica preso no estado "Pending". Qual componente do Kubernetes está falhando neste cenário?
Cloud Controller Manager
Load Balancer Manager
Cloud Architecture Manager
Cloud Load Balancer Manager
Official Explanation / Community Explanations
O Cloud Controller Manager é o componente do Kubernetes responsável por integrar-se com as APIs do provedor de nuvem para gerenciar recursos como balanceadores de carga, nós e rotas. Quando um Service do tipo LoadBalancer é criado, o Cloud Controller Manager se comunica com a API do provedor de nuvem para provisionar um balanceador de carga externo e atribuir um IP externo. Se o IP externo permanecer no estado "Pending", isso indica que o Cloud Controller Manager não está em execução, está mal configurado ou não consegue alcançar a API do provedor de nuvem.
Como funciona:
- O Cloud Controller Manager é executado como um conjunto de controladores que interagem com a infraestrutura do provedor de nuvem.
- Para um Service LoadBalancer, o
service-controllerdentro do Cloud Controller Manager solicita um novo balanceador de carga ao provedor de nuvem. - O provedor de nuvem provisiona o balanceador de carga e retorna seu IP externo, que é então atribuído ao Service.
- Se o Cloud Controller Manager falhar (por exemplo, devido a credenciais ausentes, problemas de rede ou configuração incorreta), o IP externo permanece "Pending" indefinidamente.
Por que a resposta correta está certa:
O Cloud Controller Manager é o único componente que lida com o provisionamento de balanceadores de carga específicos da nuvem. Sem ele, o cluster não pode obter um IP externo do provedor de nuvem.
Por que as opções incorretas estão erradas:
- "Load Balancer Manager" não é um componente padrão do Kubernetes. O Kubernetes não possui um componente com esse nome.
- "Cloud Architecture Manager" não é um componente real do Kubernetes. Ele não existe na arquitetura do Kubernetes.
- "Cloud Load Balancer Manager" também não é um componente padrão. O componente correto é o Cloud Controller Manager, que abrange o gerenciamento de balanceadores de carga, entre outras tarefas específicas da nuvem.