Perguntas mais frequentes para os trabalhadores privados do Pipeline
Obtenha respostas para as perguntas mais frequentes sobre o uso de trabalhadores privados do Pipeline.
Como instalar um conjunto de trabalhadores multi-cluster?
É possível instalar agentes em vários clusters que trabalham juntos dentro de uma única piscina do trabalhador privado. Ao utilizar essa configuração, o conjunto de trabalhadores privados pode gerenciar mais corridas de pipeline em paralelo, e você pode remover clusters da rotação de manutenção sem desativar o conjunto do trabalhador.
Apesar de ter vários agentes no mesmo cluster suporta várias piscinas operárias, ele não melhora o desempenho ou o rendimento.
Para configurar um conjunto de trabalhadores com multi-cluster, siga as instruções para instalando-se diretamente em um cluster e registrando um Delivery Pipeline Private Worker para cada cluster que participa do conjunto do trabalhador. Certifique-se de atualizar o nome do trabalhador para identificar o cluster no qual o trabalhador reside.
Os múltiplos agentes do trabalhador agora estão listados na UI de integração do trabalhador privado e os empregos estão programados nesses agentes com base na carga do cluster em pipeline de solicitação de execução de tempo.
Como visualizar o status de trabalhadores privados em vários clusters usando a CLI?
É possível usar o comando a seguir em um script que atravessa todos os clusters nos quais os trabalhadores privados estão instalados.
kubectl get workeragent -ojson | jq '.items[] | .status.versionStatus.state'
Considere fazer upgrade de todos os trabalhadores privados que retornarem resultados não OK.
Quais atributos posso usar para agentes do trabalhador privado?
Os seguintes atributos estão disponíveis para agentes do trabalhador privado:
- NAME: o nome especificado quando o agente foi registrado. Este nome aparece na página de integração do Trabalhador privado.
- SERVICEID: o ID da fila de trabalhos a partir da qual o agente processa as solicitações de trabalho.
- AGENT: um valor de
OKindica que o agente pode processar solicitações de trabalho. - REGISTERED: um valor de
Succeededindica que o agente foi registrado com êxito no serviço do trabalhador privado regional. - VERSION: um valor de
OKindica se a versão do agente é atual. - AUTH: um valor de
OKindica se o agente é válidoapikey. - CONSTRAINED: um valor de
falseindica que os recursos de cluster disponíveis são suficientes para a execução de tarefas pelo agente. Um valor deTrueespecifica que o cluster éresource-constrained. - PAUSED: um valor de
falseindica que o agente está operacional e pode executar tarefas. Um valor detrueespecifica que o agente está pausado e não pode executar nenhuma tarefa. Um motivo pelo qual um agente pode ser pausado é a manutenção do cluster.
Como configuro meu ClusterImagePolicy para que eu possa acessar imagens Tekton?
Como Delivery Pipeline trabalhadores privados dependem da infraestrutura de Tekton e tekton-pipelines, eles devem puxar tekton-releases imagens de icr.io (icr.io/continuous-delivery/pipeline/). Você pode
precisar definir um Kubernetes específico ClusterImagePolicy para retirar imagens desses registros de contêineres. Para adicionar o tipo ClusterImagePolicy ao seu cluster Kubernetes, você deve instalar vários gráficos Helm.
Como eu auto-hospedar imagens de container para Delivery Pipeline Private Worker?
As restrições de segurança podem impedi-lo de extrair imagens do registro de contêineres icr.io/continuous-delivery/pipeline. Nesses cenários, conclua as etapas a seguir:
-
Provisione as imagens do contêiner em um registro de contêiner suportado.
-
Instale o arquivo
deployment.yamlpara referenciar as imagens de contêiner nesse registro de contêiner. -
Para cada imagem de contêiner referenciada no arquivo yaml de implementação regular, conclua as etapas a seguir:
- Docker puxe a imagem para um Dockerfile local.
- Docker marque a imagem com a nova referência no registro de contêiner suportado.
- Docker empurre essa nova imagem.
É possível obter o arquivo yaml de implementação de
https://private-worker-service.$region.devops.cloud.ibm.com/install. -
Substitua a referência a cada imagem no arquivo de instalação pela tag da nova imagem.
-
Execute o comando a seguir para instalar o trabalhador privado usando o registro de contêiner específico:
kubectl apply –filename updated_deployment.yaml. -
Continue a instalação.
Como eu provo e atualizo o arquivo de instalação do trabalhador privado para IBM Cloud® Privado?
Se o seu pipeline worker estiver instalado em IBM Cloud Private, você poderá usar o script a seguir para provisionar e atualizar o arquivo de instalação do private worker.
\#\!/bin/bash
region=${region:-"us-south"}
target_cr="mycluster.icp:8500"
install_filename="updated-private-worker-install.yaml"
curl -o $install_filename
https://private-worker-service.$region.devops.cloud.ibm.com/install
cat $install_filename | grep -e
'ghcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd' -e 'image:' \\
| sed 's/- ghcr.io/ghcr.io/g' \\
| sed 's/- image: ghcr.io/ghcr.io/g' \\
| sed 's/image: ghcr.io/ghcr.io/g' \\
| sed 's/image://g' \\
| awk '{$1=$1;print}' \\
| while read -r image ; do
echo "Processing $image"
docker pull $image
new_image_tag=$image
# if $image only have a single slash it is coming from dockerhub
number_of_slashes=$(echo $image | tr -cd '/' | wc -c)
if [ "$number_of_slashes" == "1" ]; then
new_image_tag="$target_cr/$image"
fi
# replace the sha id reference in the tag if any
new_image_tag="${new_image_tag@sha256}"
# replace ghcr.io to the target cr domain
new_image_tag="${new_image_tag/ghcr.io/$target_cr}"
docker tag $image $new_image_tag
docker push $new_image_tag
# replace the image reference in the installation.yaml file
sed -i "s~$image~$new_image_tag~g" $install_filename
done
echo "*****"
echo "Provisioning of docker images to $target_cr done."
echo "Update of the install file $install_filename done"
echo "Change the scope of the images to global before"
echo "running 'kubectl apply --filename $install_filename'
echo "to install the delivery pipeline private worker"
Esse script contém os requisitos a seguir:
- Os namespaces
ibmcometekton-releasesexistem atualmente no alvo IBM Cloud® Private. - O cliente Docker está conectado ao registro de contêiner privado do IBM Cloud® Private. Para obter mais informações sobre autenticação para a CLI Docker, consulte Configuração da autenticação para a CLI Docker.
Depois de provisionar as imagens de contêiner no registro privado do IBM Cloud® Private, atualize o escopo da imagem para global para garantir que as imagens possam ser acessadas de qualquer namespace. Para obter mais informações sobre como atualizar o escopo de uma imagem, consulte Mudando o escopo de uma imagem
Você pode fornecer aos usuários do pipeline acesso às imagens de base (icr.io/continuous-delivery/pipeline/pipeline-base-image) que são usadas para executar trabalhos de pipeline, que são fornecidos pelo IBM Cloud Container Registry
global. Para usar essas imagens, deve-se configurar suas tarefas de pipeline usando a Custom Dockerimage. Você também deve fazer referência à imagem esperada no registro privado do IBM Cloud® Private, por exemplo: mycluster.icp:8500/icr.io/continuous-delivery/pipeline/pipeline-base-image:latest.
Eu posso gerenciar trabalhadores privados usando Terraform ou APIs?
Você pode usar Terraform ou APIs para adicionar, atualizar ou remover Delivery Pipeline integrações de ferramentas do trabalhador privado em uma cadeia de ferramentas. Para obter mais informações sobre como trabalhar com a integração da ferramenta Delivery Pipeline privada, veja Trabalhando com integrações de ferramentas e Configurando Delivery Pipeline Private Worker.
Não é possível usar Terraform ou APIs para gerenciar Delivery Pipeline trabalhadores privados. Em vez disso, use o console ou a CLI para instalar, registrar, configurar e atualizar os trabalhadores privados. Para obter mais informações sobre essas tarefas, consulte Instalando Delivery Pipeline Trabalhadores Privados.