Como configurar o Jenkins para o Kubernetes Engine

Nesta página, apresentamos como configurar o Jenkins para uso com o Google Kubernetes Engine. As tarefas estão relacionadas às práticas recomendadas descritas em Jenkins e Kubernetes Engine, incluindo a configuração dos dois plug-ins recomendados: o Kubernetes e o Google Authenticated Source.

Como adicionar credenciais

Adicione os dois conjuntos de credenciais que são usados com o Kubernetes Engine.

Como adicionar credenciais da conta de serviço do Google

Essas credenciais permitem ao Jenkins aproveitar a conta de serviço do cluster do Kubernetes Engine para criar, ver e excluir recursos de nuvem.

  1. No Jenkins, clique em Credentials e depois em System, na navegação à esquerda.

  2. Clique em Global credentials (unrestricted).

  3. Clique em Add Credentials, na navegação à esquerda.

  4. Selecione Google Service Account from metadata na lista suspensa Kind.

  5. Clique no botão OK.

Adicionar credenciais do Kubernetes

Essas credenciais permitem que o plug-in Kubernetes use a conta do serviço Kubernetes para criar, ver e excluir recursos no contexto do Kubernetes.

Há duas maneiras de adicionar as credenciais do Kubernetes.

  • Se você já configurou o Jenkins para execução dentro de um cluster do Kubernetes Engine ou do Kubernetes usando etapas de tutorial, poderá configurar uma conta de serviço.

  • Se você não configurou o Jenkins para ser executado dentro de um cluster do Kubernetes Engine ou do Kubernetes, precisará adicionar credenciais de autenticação HTTP básica para se autenticar na Kubernetes HTTP API.

Como usar uma conta de serviço

  1. No Jenkins, clique em Credentials e depois em System, na navegação à esquerda.

  2. Clique em Global credentials (unrestricted).

  3. Clique em Add Credentials, na navegação à esquerda.

  4. Selecione Kubernetes Service Account na lista suspensa Kind. Essa opção só aparece quando o Jenkins está em execução dentro de um cluster do Kubernetes Engine ou do Kubernetes.

  5. Adicione uma descrição ao campo Description como jenkins.

  6. Clique no botão OK.

Usar credenciais HTTP

Receba as credenciais do Kubernetes de uma destas duas maneiras:

  • Na linha de comando, digite o comando a seguir, substituindo [CLUSTER_NAME] pelo nome do cluster e [ZONE] pela zona.

    gcloud container clusters describe [CLUSTER_NAME] --zone [ZONE] | grep password
    
  • No Console do Google Cloud Platform, clique em Kubernetes Engine no menu e selecione o nome do cluster. Você pode copiar as credenciais clicando em Show credentials.

Em seguida, configure as credenciais HTTP seguindo estas etapas.

  1. No Jenkins, clique em Credentials e depois em System, na navegação à esquerda.

  2. Clique em Global credentials (unrestricted).

  3. Clique em Add Credentials, na navegação à esquerda.

  4. Selecione Username with password na lista suspensa Kind.

  5. Digite o nome de usuário e a senha.

  6. Clique no botão OK.

Configurar os executores de compilação

O executor de compilação do Jenkins define o ambiente em que as etapas de compilação são executadas. Quando o Jenkins é executado no Kubernetes Engine, executores leves são criados e excluídos pelo plug-in Kubernetes com base em uma imagem existente do Docker para cada compilação. O Jenkins fornece uma imagem genérica de executor, porém, refinar os executores pode tornar as compilações mais eficientes.

  1. No Jenkins, clique em Manage Jenkins na navegação à esquerda. Depois, clique em Configure System.

  2. Insira 0 em # of executors. Definir esse valor como 0 garante que todas as compilações sejam executadas em contêineres recentemente provisionados, e não no mestre do Jenkins.

  3. Role até o fim da tela, clique na lista suspensa Add a new cloud e selecione Kubernetes.

  4. Insira kubernetes no campo Name.

  5. Para o campo Kubernetes URL:

    • Se você já configurou o Jenkins para execução dentro de um cluster do Kubernetes Engine ou do Kubernetes, insira o seguinte valor:

      https://kubernetes.default
      
    • Se você provisionou o mestre do Jenkins fora de um cluster do Kubernetes, use uma das duas seguintes opções para receber o URL do Kubernetes:

      1. Execute o seguinte comando:

        kubectl cluster-info
        

        Use o URL completo exibido ao lado de Kubernetes master.

      2. No Console do Google Cloud Platform, clique em Kubernetes Engine no menu e selecione o nome do cluster. Use a string a seguir como o URL do Kubernetes, em que [ENDPOINT] é substituído pelo valor de Endpoint.

        https://[ENDPOINT]
        
  6. Na lista suspensa Credentials, selecione a credencial que configurou anteriormente neste tópico.

  7. Para o campo Jenkins URL:

    • Se você tiver configurado o Jenkins para execução dentro de um cluster do Kubernetes Engine ou do Kubernetes, insira o seguinte valor:

      http://jenkins-ui.jenkins.svc.cluster.local:8080
      
    • Caso contrário, insira o URL no seguinte formato, substituindo [JENKINS_HOST] pelo endereço IP ou nome do host do Jenkins:

      http://[JENKINS_HOST]:8080
      
  8. Para o campo Jenkins tunnel:

    • Se você configurou o Jenkins para execução dentro de um cluster do Kubernetes Engine ou do Kubernetes, insira o seguinte valor:

      jenkins-discovery.jenkins.svc.cluster.local:50000
      
    • Caso contrário, insira o URL no seguinte formato, substituindo [JENKINS_HOST] pelo endereço IP ou nome do host do Jenkins:

      [JENKINS_HOST]:50000
      

      Configuração do Kubernetes

  9. Clique na lista suspensa Add Pod Template e clique em Kubernetes Pod Template. Um modelo de pod define uma classe de executores que executam as compilações.

  10. Insira uma nome no campo Name.

  11. Insira valores opcionais no campo Labels. O formato é uma lista de strings separadas por espaços. Com a adição de rótulos, os jobs do Jenkins podem usar os executores mais adequados ao caso de uso. Por exemplo, você pode inserir os seguintes valores:

    debian-9 docker-enabled gcloud-installed
    
  12. Insira um caminho de imagem do Docker para o campo Docker image. A imagem do Docker define o ambiente em que os scripts de compilação são executados. É possível usar um caminho de imagem próprio ou inserir o seguinte caminho para usar uma imagem pré-compilada que inclui o SDK do Cloud.

    gcr.io/cloud-solutions-images/jenkins-k8s-slave
    

    Configuração de pod do Kubernetes

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…