Sobes.tech
Middle

Por que é responsável a plano de controlo do Kubernetes e o que fazem os nós de trabalho?

sobes.tech IA

Resposta da IA

O plano de controlo gere o cluster: aceita comandos, planeia os processos do kube-scheduler, gere os estados através do kube-controller-manager, e armazena a configuração no etcd. Os nós de trabalho (workers) executam cargas de trabalho reais (pods) sob a gestão do kubelet e atendem às solicitações de rede através do kube-proxy.

Plano de controlo:

  • kube-apiserver: Servidor API do cluster, ponto de entrada único.
    # Exemplo de acesso à API
    apiVersion: v1
    kind: Pod
    metadata:
      name: my-pod
    spec:
      containers:
      - name: my-container
        image: nginx
    
  • etcd: Armazenamento distribuído e consistente de tipo chave-valor para guardar o estado do cluster.
  • kube-scheduler: Seleciona o nó para colocar novos pods.
  • kube-controller-manager: Executa controladores que monitorizam o estado do cluster e fazem as alterações necessárias.
    • Controlador de nós
    • Controlador de replicação, ReplicaSet, Deployment
    • Controlador de endpoints
    • Controladores de contas de serviço e tokens
  • cloud-controller-manager (opcional): Interage com provedores de nuvem para gerir recursos (balanceadores de carga, volumes persistentes, etc.).

Nós de trabalho:

  • kubelet: Agente que corre em cada nó. Gere os contêineres nos pods, interagindo com o ambiente de execução de contêineres (por exemplo, Docker, containerd).
    # Exemplo de comando que o kubelet pode executar (simplificado)
    docker run nginx
    
  • kube-proxy: Mantém as regras de rede nos nós, garantindo a comunicação entre pods, a rede do cluster e o mundo exterior.
  • Container Runtime: Software responsável por executar contêineres (Docker, containerd, CRI-O).