Kubernetes API Aggregation - Kubernetes - Wiki.Shileizcc.com
O mecanismo de agregação de API é um recurso introduzido no Kubernetes versão 1.7. Ele pode registrar APIs estendidas pelo usuário no kube-apiserver e ainda acessar e operar novas APIs por meio da URL HTTP do API Server. Para realizar esse mecanismo, o Kubernetes introduz uma camada de agregação de API (API Aggregation Layer) no serviço kube-apiserver, que é usada para encaminhar a solicitação de acesso da API estendida ao serviço do usuário.
Os principais objetivos de projetar o mecanismo de agregação da API são os seguintes.
- Aumente a escalabilidade da API: os desenvolvedores podem escrever seu próprio servidor de API para publicar sua API sem nenhuma modificação no código principal do Kubernetes.
- Não há necessidade de esperar por uma revisão complexa pela equipe principal do Kubernetes: os desenvolvedores podem liberar sua API como um servidor de API separado, para que os administradores do cluster possam usar novas APIs sem modificar o código principal do Kubernetes, e não há necessidade de esperar por análises complexas comentários da comunidade.
- Apoiar o desenvolvimento da API de novos recursos experimentais: Novas APIs podem ser desenvolvidas em um serviço de agregação de API independente sem afetar as funções existentes do sistema.
- Certifique-se de que as novas APIs sigam as especificações do Kubernetes: sem um mecanismo de agregação de API, os desenvolvedores podem ser forçados a criar seus próprios designs, que podem não seguir as especificações do Kubernetes.
Em geral, o objetivo do mecanismo de agregação de API é fornecer um mecanismo de descoberta de API centralizado e uma função de proxy segura para registrar de forma dinâmica e contínua as novas APIs dos desenvolvedores com o Kubernetes API Server para teste e uso.
Ativar agregação de API no servidor de API do mestre
Para poder registrar a API definida pelo usuário no servidor de API do mestre, primeiro você precisa configurar os seguintes parâmetros de inicialização do serviço kube-apiserver para habilitar a função de agregação de API.
-
--proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.pem: Verifique o certificado CA do cliente do Aggregator durante as solicitações.
-
--proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client-key.pem : verifica a chave privada do cliente do agregador durante as solicitações.
-
--requestheader-allowed-names=front-proxy-client: A lista de nomes comuns de clientes com permissão de acesso, obtida por meio dos campos especificados pelo parâmetro --requestheader-username-headers no cabeçalho. O nome dos nomes comuns do cliente precisa ser definido no arquivo client-ca. Quando estiver vazio, significa que qualquer cliente pode acessá-lo.
-
--requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.pem: Certificado CA do cliente.
-
--requestheader-extra-headers-prefix=X-Remote-Extra-: O nome do prefixo que precisa ser verificado no cabeçalho da solicitação.
-
--requestheader-group-headers=X-Remote-Group: O nome do grupo a ser verificado no cabeçalho da solicitação.
-
--requestheader-username-headers=X-Remote-User: O nome de usuário a ser verificado no cabeçalho da solicitação.
Se o kube-proxy não estiver em execução no host em que o kube-apiserver está localizado e não puder ser acessado por meio do ClusterIP do serviço, você também precisará definir os parâmetros de inicialização:
--enable-aggregator-routing=true
Depois que a configuração estiver concluída, reinicie o serviço kube-apiserver para habilitar a função de agregação de API.