O kube-apiserver é o gateway de API do seu cluster ACK. Ele expõe a API Kubernetes a todos os componentes internos e externos do cluster — kubelet, kube-proxy e clientes externos se comunicam com o cluster por meio do kube-apiserver.
Visão geral
O kube-apiserver valida e configura dados para objetos de API, incluindo pods, Services e ReplicationControllers. Ele serve operações REST e fornece uma visão única e consistente do estado do cluster a todos os outros componentes.
No ACK, o kube-apiserver é gerenciado e instalado automaticamente. Nenhuma configuração adicional é necessária.
Notas de versão
O kube-apiserver é atualizado junto com a versão do Kubernetes. Para detalhes sobre suporte de versão, consulte Visão geral das versões do Kubernetes suportadas pelo ACK.
Como os nós se conectam ao API server
O ACK deixou progressivamente de usar endereços IP fixos do Classic Load Balancer (CLB) para a comunicação entre nós e API server. A tabela abaixo mapeia a data de criação do cluster ao comportamento atual e ao requisito de grupo de segurança.
| Data de criação do cluster | Versão do Kubernetes | Como os nós alcançam o API server | Requisito de grupo de segurança |
|---|---|---|---|
| Após fevereiro de 2023 | 1.20 ou posterior | A interface de rede elástica (ENI) expõe Services no namespace padrão, substituindo as instâncias CLB | Se o grupo de segurança do cluster for diferente do grupo de segurança do nó/contêiner, a porta 6443 deve permitir tráfego de entrada no grupo de segurança do cluster |
| Após novembro de 2024 | 1.20 ou posterior | O endereço IP fornecido pela ENI, resolvido a partir do nome de domínio do API server (apiserver.{Cluster ID}.{Region ID}.cs.aliyuncs.com), substitui o IP fixo do CLB para kubelet e kube-proxy |
A porta 6443 deve permitir tráfego de entrada |
Clusters criados após fevereiro de 2023 — Exposição de serviços baseada em ENI
Para clusters que executam o Kubernetes 1.20 ou posterior e foram criados após fevereiro de 2023, o ACK usa interfaces de rede elásticas (ENIs) em vez de instâncias CLB para expor Services no namespace padrão. Isso reduz a sobrecarga de desempenho dos links de encaminhamento do CLB.
Se o grupo de segurança do seu cluster bloquear o tráfego de entrada na porta 6443, e o grupo de segurança dos seus nós e contêineres do cluster for diferente do grupo de segurança do cluster, os componentes do cluster podem falhar ao alcançar o kube-apiserver. Certifique-se de que a porta 6443 permite tráfego de entrada no grupo de segurança do cluster.
Clusters criados após novembro de 2024 — Acesso ao API server baseado em nome de domínio
Para melhorar a alta disponibilidade (HA) do cluster e eliminar a dependência de IPs fixos do CLB, o ACK usa o nome de domínio do API server (apiserver.{Cluster ID}.{Region ID}.cs.aliyuncs.com) para a comunicação entre nós e API server. O kubelet e o kube-proxy resolvem esse nome de domínio para obter o endereço IP da ENI e usá-lo para alcançar o API server, em vez de usar um IP estático do CLB.
Isso se aplica a clusters que executam o Kubernetes 1.20 ou posterior e foram criados após novembro de 2024.
O ACK cria e gerencia esse nome de domínio usando o Private DNS. Visualize-o na seção Cloud Service Defined Zones do console do Alibaba Cloud DNS.
Se o grupo de segurança do seu cluster bloquear o tráfego de entrada na porta 6443, os nós podem falhar ao alcançar o API server. Certifique-se de que a porta 6443 permite tráfego de entrada.
A resolução do nome de domínio depende dos endereços DNS internos padrão 100.100.2.136 e 100.100.2.138 configurados na VPC do Alibaba Cloud. Se você tiver configurado um servidor DNS personalizado nos seus nós, certifique-se de que o nome de domínio do API server seja resolvido pelo Private DNS na VPC upstream. Caso contrário, os nós podem falhar ao alcançar o API server.