Pipeline Private Worker에 대한 FAQ

Pipeline Private Workers 사용에 대한 자주 묻는 질문의 답변을 확인하십시오.

다중 클러스터 작업자 풀을 설치하는 방법

단일 개인용 작업자 풀 내에서 함께 작동하는 다중 클러스터에 에이전트를 설치할 수 있습니다. 이 구성을 사용하여 개인용 작업자 풀은 더 많은 파이프라인 실행을 병렬로 관리할 수 있으며, 작업자 풀을 비활성화하지 않고 유지보수 순환에서 클러스터를 제거할 수 있습니다.

동일한 클러스터에 여러 에이전트가 있는 경우에도 여러 작업자 풀을 지원하지만 성능이나 처리량을 향상시키지는 않습니다.

다중 클러스터 작업자 풀을 구성하려면 작업자 풀에 참여하는 각 클러스터에 대해 클러스터에 직접 설치Delivery Pipeline 개인용 작업자 등록 에 대한 지시사항을 따르십시오. 작업자 이름을 업데이트하여 작업자가 상주하는 클러스터를 식별하는지 확인하십시오.

이제 개인용 작업자 통합 UI에 다중 작업자 에이전트가 나열되고 파이프라인 런타임 요청 시 클러스터 로드를 기반으로 해당 에이전트에서 작업이 스케줄됩니다.

CLI를 사용하여 여러 클러스터에서 개인용 작업자의 상태를 보는 방법은 무엇입니까?

개인용 작업자가 설치되는 모든 클러스터를 순회하는 스크립트 내에서 다음 명령을 사용할 수 있습니다.

kubectl get workeragent -ojson | jq '.items[] | .status.versionStatus.state'

OK가 아닌 결과를 리턴하는 개인용 작업자 업그레이드를 고려하십시오.

개인용 작업자 에이전트에 사용할 수 있는 속성은 무엇입니까?

개인 작업자 에이전트에 대해 다음 속성을 사용할 수 있습니다.

  • 이름: 에이전트가 등록될 때 지정된 이름입니다. 이 이름은 개인 작업자 통합 페이지에 표시됩니다.
  • 서비스 ID: 이 에이전트가 작업 요청을 처리하는 작업 큐 ID입니다.
  • 에이전트: OK 값은 에이전트가 작업 요청을 처리할 수 있음을 표시합니다.
  • 등록됨: Succeeded 값은 에이전트가 지역 개인 작업자 서비스에 등록되었음을 표시합니다.
  • 버전: OK 값은 에이전트의 버전이 현재 상태인지 여부를 표시합니다.
  • 인증: OK 값은 에이전트 apikey이(가) 유효한지 여부를 표시합니다.
  • 제한됨: false 값은 에이전트가 태스크를 실행하기에 충분한 클러스터 자원을 사용할 수 있음을 나타냅니다. True 값은 클러스터가 resource-constrained 임을 지정합니다.
  • 일시 중지: false 값은 에이전트가 작동 가능하고 태스크를 실행할 수 있음을 표시합니다. true 값은 에이전트가 일시정지되었으며 태스크를 실행할 수 없음을 지정합니다. 에이전트가 일시정지될 수 있는 한 가지 이유는 클러스터 유지보수를 위한 것입니다.

Tekton 이미지에 액세스할 수 있도록 ClusterImagePolicy 를 설정하는 방법은 무엇입니까?

Delivery Pipeline 개인용 작업자는 Tekton및 tekton-pipeline 인프라에 종속되므로 icr.io (icr.io/continuous-delivery/pipeline/) 에서 tekton-releases 이미지를 가져와야 합니다. 이러한 컨테이너 레지스트리에서 이미지를 가져오기 위해 특정 Kubernetes ClusterImagePolicy 를 정의해야 할 수 있습니다. Kubernetes 클러스터에 ClusterImagePolicy 유형을 추가하려면 여러 개의 Helm 차트를 설치해야 합니다.

Delivery Pipeline Private Worker에 대한 컨테이너 이미지를 자체 호스팅하는 방법은 무엇입니까?

보안 제약으로 인해 icr.io/continuous-delivery/pipeline 컨테이너 레지스트리에서 이미지를 가져오지 못할 수도 있습니다. 이러한 시나리오에서는 다음 단계를 완료하십시오.

  1. 지원되는 컨테이너 레지스트리에서 컨테이너 이미지를 프로비저닝합니다.

  2. deployment.yaml 파일을 설치하여 이 컨테이너 레지스트리의 컨테이너 이미지를 참조합니다.

  3. 일반 배치 yaml 파일에서 참조되는 각 컨테이너 이미지에 대해 다음 단계를 완료하십시오.

    • Docker 이미지를 로컬 도커파일로 가져옵니다.
    • Docker 지원되는 컨테이너 레지스트리의 새 참조로 이미지에 태그를 지정합니다.
    • Docker 이 새 이미지를 푸시합니다.

    https://private-worker-service.$region.devops.cloud.ibm.com/install에서 배치 yaml 파일을 얻을 수 있습니다.

  4. 설치 파일에 있는 각 이미지에 대한 참조를 새 이미지의 태그로 대체합니다.

  5. 특정 컨테이너 레지스트리를 사용하면 다음 명령을 실행하여 개인용 작업자를 설치할 수 있습니다. kubectl apply –filename updated_deployment.yaml

  6. 설치 를 계속하십시오.

IBM Cloud® Private의 개인용 작업자 설치 파일을 프로비저닝하고 업데이트하는 방법은 무엇입니까?

파이프라인 워커가 IBM Cloud Private에 설치되어 있는 경우 다음 스크립트를 사용하여 비공개 워커 설치 파일을 프로비저닝하고 업데이트할 수 있습니다.

\#\!/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"

이 스크립트에는 다음 요구사항이 포함됩니다.

  • ibmcomtekton-releases 네임스페이스는 현재 IBM Cloud® 비공개 대상에 존재합니다.
  • Docker 클라이언트는 IBM Cloud® Private의 비공개 컨테이너 레지스트리에 연결됩니다. Docker CLI의 인증에 대한 자세한 내용은 Docker CLI의 인증 구성을 참조하세요.

IBM Cloud® Private의 비공개 레지스트리에서 컨테이너 이미지를 프로비저닝한 후에는 이미지의 범위를 전역으로 업데이트하여 모든 네임스페이스에서 이미지에 액세스할 수 있도록 합니다. 이미지의 범위 업데이트에 대한 자세한 정보는 이미지 범위 변경을 참조하십시오.

파이프라인 사용자에게 글로벌 IBM Cloud Container Registry 에서 제공하는 파이프라인 작업을 실행하는 데 사용되는 기본 이미지(icr.io/continuous-delivery/pipeline/pipeline-base-image)에 대한 액세스 권한을 제공할 수 있습니다. 이 이미지를 사용하려면 Custom Dockerimage를 사용하여 파이프라인 작업을 구성해야 합니다. 또한 IBM Cloud® Private의 비공개 레지스트리에서 예상 이미지를 참조해야 합니다(예: mycluster.icp:8500/icr.io/continuous-delivery/pipeline/pipeline-base-image:latest).

Terraform 또는 API를 사용하여 개인용 작업자를 관리할 수 있습니까?

Terraform 또는 API를 사용하여 도구 체인에서 Delivery Pipeline 개인용 작업자 도구 통합을 추가, 업데이트 또는 제거할 수 있습니다. Delivery Pipeline 개인용 작업자 도구 통합 작업에 대한 자세한 정보는 도구 통합에 대한 작업Delivery Pipeline 개인용 작업자 구성 을 참조하십시오.

Terraform 또는 API를 사용하여 Delivery Pipeline 개인용 작업자를 관리할 수 없습니다. 대신 콘솔 또는 CLI를 사용하여 개인용 작업자를 설치, 등록, 구성 및 업데이트하십시오. 이러한 태스크에 대한 자세한 정보는 Delivery Pipeline Private Workers 설치 를 참조하십시오.