Instalando os trabalhadores privados do Delivery Pipeline
DevOps Insights chegará ao fim de sua vida útil e será descontinuado em 31 de agosto de 2026. O serviço Continuous Delivery será descontinuado nas seguintes regiões em 12 de fevereiro de 2027: au-syd, ca-tor, us-east. O Code Risk Analyzer também será descontinuado em todas as regiões nessa data. Se uma região não apresentar uso ativo desses recursos, os recursos nessa região poderão ser descontinuados mais cedo e deixar de aceitar novas instâncias. Saiba mais
Instale e registre um trabalhador privado do Delivery Pipeline para que as equipes de desenvolvimento do IBM Cloud® Continuous Delivery possam usar o trabalhador privado em sua configuração da cadeia de ferramentas. Os desenvolvedores podem executar cargas de trabalho dentro do escopo de rede da instalação do trabalhador privado sem nenhuma conectividade de rede de entrada.
O Delivery Pipeline usa trabalhadores públicos e privados para executar tarefas de pipeline. Por padrão, as tarefas de pipeline são executadas usando trabalhadores públicos na infraestrutura compartilhada pública gerenciada pela IBM. As tarefas de pipeline podem acessar recursos apenas na rede pública (dentro e fora da IBM) e são limitadas a 60 minutos de tempo de execução por tarefa.
Em certos cenários, seu Delivery Pipeline pode requerer acesso a recursos internos ou no local. Nessas situações, é possível conectar e integrar um Delivery Pipeline Private Worker para executar em sua própria infraestrutura do Kubernetes.
Os agentes do trabalhador privado que são instalados em clusters privados solicitam dados somente do serviço de trabalhador privado hospedado pela IBM. O fluxo de dados é unidirecional e origina-se somente do agente.
Pré-requisitos
Antes de instalar um trabalhador privado, certifique-se de que tenha uma conta do IBM Cloud® para criar chaves de autenticação. É necessário possuir a versão de kubectl mais recente instalada no computador desktop do Administrador. Além disso, é necessário dispor de um cluster do Kubernetes (versão 1.15 ou superior) com acesso administrativo para instalar um worker privado.
-
Configurações de cluster Kubernetes sugeridas:
- IBM Cloud Kubernetes Service versão 1.21 ou superior para executar cargas de trabalho de forma isolada no IBM Cloud Public.
- Red Hat® OpenShift® on IBM Cloud® versão 4.9 ou posterior.
-
Acesso à rede:
-
Entrada: Não obrigatório.
-
O acesso à rede de saída utiliza
(TCP:443), em que a região corresponde à localização do pipeline de entrega e pode serau-syd(Sydney, Austrália),eu-de(Frankfurt, Alemanha),eu-gb(Londres, Reino Unido),jp-tok(Tóquio, Japão),us-south(Dallas, EUA),us-east(Washington, DC, EUA),br-sao(São Paulo) ouca-tor(Toronto, Canadá). Por exemplo, para a região de Frankfurt, especifiquehttps://private-worker-service.eu-de.devops.cloud.ibm.com (TCP:443). Para acesso à rede ao terminal global para validação da chave de API, usehttps://iam.cloud.ibm.com (TCP:443).
-
-
Permissões para extrair imagens do icr.io. Os trabalhadores privados requerem a infraestrutura de tekton-pipelines e devem ser capazes de extrair imagens de tekton-releases do icr.io para concluir a instalação do trabalhador privado.
Para extrair imagens do registro de contêineres
icr.io, talvez seja necessário definir um Kubernetes ClusterImagePolicy específico.
Como os trabalhadores privados não são compatíveis com os Pipelines d Red Hat OpenShift, recomenda-se que você não os instale em um cluster com pipelines d Red Hat OpenShift.
Instalando um trabalhador privado do Delivery Pipeline
Para instalar um trabalhador privado, é necessário ter acesso de nível de Administrador a um cluster. A instalação do trabalhador privado pode ser concluída apenas por meio da linha de comando, uma vez que nenhuma interface gráfica do usuário está disponível.
Instalando o Delivery Pipeline Private Worker usando a CLI
As etapas a seguir são destinadas a Administradores que estão preparando ambientes e trabalhadores privados para diversas pessoas ou equipes. Para instalar trabalhadores privados para seu próprio uso, consulte Configurando um trabalhador privado do Delivery Pipeline.
Instalação diretamente em um cluster
Para instalar o framework diretamente em um cluster, você deve ter acesso admin ao cluster. Na CLI do IBM Cloud, digite o comando a seguir:
kubectl apply --filename "https://private-worker-service.{REGION}.devops.cloud.ibm.com/install"
Em que {REGION} é o local do pipeline da cadeia de ferramentas. Você pode especificar qualquer um dos seguintes valores para o parâmetro “ {REGION} ”:
au-syd(Sydney, Austrália)eu-de(Frankfurt, Alemanha)eu-gb(Londres, Reino Unido)jp-tok(Tóquio, Japão)us-south(Dallas, EUA)us-east(Washington, D.C., EUA)ca-tor(Toronto, Canadá)br-sao(São Paulo, Brasil)
Instalação direta em um cluster com firewall
Para instalar o framework diretamente em um cluster, você deve ter acesso admin ao cluster. Na CLI do IBM Cloud, digite o comando a seguir:
kubectl apply --filename "https://private-worker-service.{REGION}.devops.cloud.ibm.com/install?private=true"
Em que {REGION} é o local do pipeline da cadeia de ferramentas. Você pode especificar qualquer um dos seguintes valores para o parâmetro “ {REGION} ”:
au-syd(Sydney, Austrália)eu-de(Frankfurt, Alemanha)eu-gb(Londres, Reino Unido)jp-tok(Tóquio, Japão)us-south(Dallas, EUA)us-east(Washington, D.C., EUA)ca-tor(Toronto, Canadá)br-sao(São Paulo, Brasil)
Deve-se ter uma conta IBM Cloud ativada para VRF para usar este recurso.
É possível configurar um pool de trabalhadores privados repetindo esse processo em clusters Kubernetes adicionais. A carga será compartilhada entre todos os trabalhadores do pool.
Registrando um trabalhador privado do Delivery Pipeline
Criando um ID de serviço
Um ID de serviço representa um conjunto de um ou mais trabalhadores privados que agem em conjunto. Inicialmente é possível registrar uma instalação de trabalhador privado e, em seguida, registrar incrementalmente mais trabalhadores privados no mesmo grupo reutilizando o mesmo ID de serviço. O registro de vários trabalhadores privados no mesmo grupo suporta maior disponibilidade e escala horizontal de sua capacidade de trabalhador privado. Para obter mais informações sobre os IDs de serviço, consulte Criando e trabalhando com IDs de serviço.
Criando um ID de serviço no console
- Efetue login na IBM Cloud.
- Acesse https://cloud.ibm.com/iam/serviceids.
- Clique em Criar.
- Insira um nome e uma descrição para o ID de serviço. Se estiver criando um ID de serviço para um conjunto de trabalhadores privados, especifique o nome do conjunto de trabalhadores privados, por exemplo: Trabalhadores privados do Pipeline para a Acme.
- Clique em Criar.
- Salve o ID de serviço para uso posterior. O ID de serviço é necessário no cluster Kubernetes destinado para a instalação do trabalhador privado do Delivery Pipeline.
Criando um ID de serviço usando a CLI
Na CLI do IBM Cloud, digite o comando a seguir:
$ ibmcloud iam service-id-create {worker-pool-name} -d "{worker-pool-description}"
Creating service ID {worker-pool-name} bound to current account as username@domain.com...OK
Service ID {worker-pool-name} is created successfully
Name {worker-pool-name}
Description {worker-pool-description}
CRN crn:v1:bluemix:public:iam-identity::a/8d63fb1cc5e99e86dd7229dddff75fef::serviceid:ServiceId-38ffff31-3ea3-4ecc-9732-190f7a993097
Bound To crn:v1:bluemix:public:::a/8d63fb1cc5e99e86dd7229dddff75fef:::
Version 1-6df15bde97b6e87f583a557f8731888f
Locked false
UUID ServiceId-38ffff31-3ea3-4ecc-9732-190f7a993097
Criando uma chave API
Uma chave de API é um código exclusivo passado para uma API para identificar o aplicativo ou o usuário que a está chamando. Para evitar o uso malicioso de uma API, é possível usar chaves de API para rastrear e controlar a forma de uso dessa API. Para obter mais informações sobre chaves de API, consulte Entendendo as chaves de API.
Criando uma chave de API no console
- Efetue login na IBM Cloud.
- Acesse https://cloud.ibm.com/iam/serviceids.
- Selecione o ID do serviço para o qual você deseja criar uma API.
- Na guia Chaves de API, clique em Criar.
- Insira um nome e uma descrição para a chave de API para especificar a instalação do trabalhador privado, como Trabalhador privado do Pipeline no IBM Cloud Private.
- Clique em Criar.
- Copie ou faça download de sua chave de API. Não é possível recuperar a chave de API novamente depois de criá-la.
Criando uma chave de API usando a CLI
Na CLI do IBM Cloud, digite o comando a seguir:
$ ibmcloud iam service-api-key-create {worker-api-key-name} (SERVICE\_ID\_NAME|SERVICE\_ID\_UUID) \[-d, --description DESCRIPTION\] \[--file OUT_FILE\]
Creating API key {worker-api-key-name} of service
SERVICE\_ID\_NAME as username@domain.com...
OK
Service API key {worker-api-key-name} is created
Successfully saved API key information to FILE
Please preserve the API key! It cannot be retrieved after it's created.
Name {worker-api-key-name}
Description Description
Bound To crn:v1:bluemix:public:iam-identity::a/2cac145ae78048679b129009cfe8c7f9::serviceid:ServiceId-9a6a14e5-5811-4c2c-9131-0e1d4bb7dfe1
Created At 2019-07-04T10:51+0000
API Key doJX9kORc4q5PRkH19H3lePDwYRAKNWk4XlIuEBrriOD
Locked false
UUID ApiKey-c1ee0fb5-90f2-476e-a260-a796e6d7f5f7
Registrando o trabalhador privado com o IBM Cloud
Antes de registrar o trabalhador privado em IBM Cloud, é necessário implantar a estrutura do trabalhador privado. Para usar os comandos de registro, deve-se estar conectado ao cluster Kubernetes (com kubectl) no qual você instalou anteriormente um trabalhador privado.
Deve-se registrar um trabalhador privado com a região específica do IBM Cloud que corresponde ao local dos pipelines de entrega que você deseja ativar.
- Especifique um nome significativo para o trabalhador privado. Esse nome deve iniciar e terminar com caracteres alfanuméricos minúsculos e também pode conter os caracteres
_ou.. - Execute o comando a seguir, com o ID de serviço e a chave de API criados anteriormente, o nome do trabalhador privado e o
{REGION}, que é o local do pipeline de cadeia de ferramentas.
$ kubectl create secret generic {WORKER_NAME}-auth -n default --from-literal=apikey={API_KEY} && kubectl apply --filename "https://private-worker-service.{REGION}.devops.cloud.ibm.com/install/worker?serviceId={SERVICE_ID}&name={WORKER_NAME}"
workeragent.devops.cloud.ibm.com/worker-name created
secret/worker-name-auth created
É possível especificar qualquer um dos valores a seguir para o {REGION}:
* `au-syd` (Sydney, Austrália)
* `eu-de` (Frankfurt, Alemanha)
* `eu-gb` (Londres, Reino Unido)
* `jp-tok` (Tóquio, Japão)
* `us-south` (Dallas, EUA)
* `us-east` (Washington, D.C., EUA)
* `ca-tor` (Toronto, Canadá)
* `br-sao` (São Paulo, Brasil)
- Para registrar um agente para usar endpoints privados, use o parâmetro de consulta opcional
privateda seguinte forma:
$ kubectl create secret generic {WORKER_NAME}-auth -n default --from-literal=apikey={API_KEY} && kubectl apply --filename "https://private-worker-service.{REGION}.devops.cloud.ibm.com/install/worker?serviceId={SERVICE_ID}&name={WORKER_NAME}&private=true"
É necessário especificar um dos seguintes valores para o parâmetro “ {REGION} ”:
* Frankfurt `eu-de`
* Londres `eu-gb`
* Dallas `us-south`
* Washington DC `us-east`
Observação: O uso do parâmetro de consulta private ao registrar um agente é obrigatório se o cluster de hosts estiver em um ambiente protegido por firewall
- Para verificar se o agente está registrado corretamente, digite o comando a seguir:
$ kubectl get workeragents
NAME SERVICEID AGENT REGISTERED VERSION AUTH CONSTRAINED PAUSED
<worker_name> <ServiceId> OK Succeeded OK OK false false
Os trabalhadores privados devem ser instalados no namespace default. Eles nunca devem ser instalados no namespace tekton-pipelines. Esse namespace é reservado para a estrutura Tekton e a implementação do agente. Instalar
o agente trabalhador em um namespace diferente do namespace default pode causar alguns efeitos colaterais inesperados.
Configurando o Delivery Pipeline Private Worker para usar terminais privados
Por padrão, os trabalhadores privados usam terminais públicos para comunicação. Um administrador de cluster pode atualizar a configuração do trabalhador privado para usar terminais privados para que a comunicação entre o trabalhador privado e o serviço IBM Cloud® Continuous Delivery não use a Internet pública.
- Obtenha o nome do agente que está instalado no cluster:
kubectl get workeragents -n default
- Mude o
apiUrlpara esse agente:
kubectl patch workeragent {WORKER_NAME} --type='merge' -p '{"spec": {"apiUrl":"https://private-worker-service.private.{REGION}.devops.cloud.ibm.com"}}'
Em que {REGION} é o local do pipeline da cadeia de ferramentas. Os terminais privados estão disponíveis nas regiões a seguir:
* Dallas `us-south`
* Washington `us-east`
* Frankfurt `eu-de`
* Londres `eu-gb`
Deve-se ter uma conta IBM Cloud ativada para VRF para usar este recurso.
- Opcional. Para retornar ao uso de terminais públicos para o agente, digite o comando a seguir:
kubectl patch workeragent {WORKER_NAME} -n default --type='merge' -p '{"spec": {"apiUrl":"https://private-worker-service.{REGION}.devops.cloud.ibm.com"}}'
Configurando o Delivery Pipeline Trabalhador Privado para usar os terminais de link Satellite
Por padrão, os trabalhadores privados usam terminais públicos para comunicação. Um administrador de cluster pode atualizar a configuração do trabalhador privado para usar os terminais de link Satellite para que a comunicação entre o trabalhador privado e o serviço Continuous Delivery vá através de terminais de link Satellite.
- Criar um terminal de link da nuvem Satellite para o serviço IBM Cloud® Continuous Delivery e configurar
FQDNeService indication namepara usar o seguinte valor:
private-worker-service.{REGION}.devops.cloud.ibm.com
Em que {REGION} é o local do pipeline da cadeia de ferramentas.
- Crie um configmap no espaço de nomes do trabalhador privado que mapeia os terminais públicos para os terminais de link Satellite:
apiVersion: v1
kind: ConfigMap
metadata:
name: pipelineworker-url-map
data:
iam.cloud.ibm.com: <default IAM satellite link endpoint for your satellite location>
private-worker-service.{REGION}.devops.cloud.ibm.com: <satellite link endpoint created in step 1)>
Você pode adicionar endpoints ao configmap, como esses endpoints padrão do link Satellite.
Atualizando a instalação do trabalhador privado do Delivery Pipeline
Caso o trabalhador privado seja relatado como inativo, deve-se atualizar a instalação.
Para verificar a versão do seu worker privado, digite um dos seguintes comandos:
- IBM Cloud Kubernetes Service:
kubectl -n tekton-pipelines describe deploy private-worker-agent | grep Image - Red Hat® OpenShift® on IBM Cloud®:
kubectl -n openshift-operators describe deploy private-worker-agent-controller-manager | grep Image
Para atualizar a instalação do trabalhador privado, conclua as etapas a seguir:
- Execute o comando de instalação novamente.
- Registre o trabalhador privado em seu cluster Kubernetes novamente.
Você pode reutilizar o apikey que você usou para o trabalhador privado existente.
Para obter mais informações sobre Delivery Pipeline Private Workers, consulte Solução de problemas para Delivery Pipeline Private Workers e FAQs para Pipeline Private Workers.