- 계획된 변경의 예상 시간 프레임
- 워크플로우가 손상되지 않도록 러너 등록 워크플로우 방지
- GitLab 17.0 이후 등록 토큰 사용
- 기존 러너에 미치는 영향
gitlab-runner register
명령 구문의 변경- 오토스케일링에 미치는 영향
- 프로그래밍 방식으로 러너 생성
- Helm 차트를 사용한 GitLab Runner 설치
- 알려진 문제
새로운 러너 등록 워크플로우로의 이관
GitLab 16.0에서 러너 등록 워크플로우를 사용하여 러너를 등록하는 데 러너 인증 토큰을 사용하는 새로운 워크플로우를 소개했습니다. 등록 토큰을 사용하는 레거시 워크플로우는 폐기되며 GitLab 18.0에서 제거될 예정입니다.
새 워크플로우의 현재 개발 상태에 대한 정보는 epic 7663를 참조하십시오.
새 아키텍처의 기술적 설계와 이유에 대한 정보는 Next GitLab Runner Token Architecture를 참조하십시오.
새로운 러너 등록 워크플로우에서는:
- GitLab UI에서 직접 러너를 생성합니다.
- 러너 인증 토큰을 수신합니다.
- 이 구성으로 러너를 등록할 때 등록 토큰 대신 러너 인증 토큰을 사용합니다. 여러 호스트에 등록된 러너 관리자는 GitLab UI에서 동일한 러너로 표시되지만 식별 시스템 ID가 있습니다.
새로운 러너 등록 워크플로우에는 다음과 같은 이점이 있습니다:
- 러너의 소유권 기록 유지 및 사용자에 미치는 영향 최소화
- 고유한 시스템 ID의 추가로 동일한 인증 토큰을 여러 러너에서 재사용할 수 있습니다. 자세한 정보는 GitLab 러너 구성 재사용을 참조하십시오.
계획된 변경의 예상 시간 프레임
- GitLab 15.10 이후에는 새 러너 등록 워크플로우를 사용할 수 있습니다.
- GitLab 17.0에서 러너 등록 토큰을 비활성화할 계획입니다.
- GitLab 18.0에서는 러너 등록 토큰의 지원을 완전히 제거할 예정입니다.
워크플로우가 손상되지 않도록 러너 등록 워크플로우 방지
GitLab 17.0까지 이는 여전히 레거시 러너 등록 워크플로우를 사용할 수 있습니다.
GitLab 17.0에서는 레거시 러너 등록 워크플로우가 자동으로 비활성화됩니다. 일정 기간 동안 수동으로 레거시 러너 등록 워크플로우를 다시 활성화할 수 있습니다. 자세한 정보는 GitLab 17.0 이후 등록 토큰 사용을 참조하십시오.
GitLab 인스턴스가 GitLab 17.0으로 업그레이드되기 전에 조치를 취하지 않으면 러너 등록 워크플로우가 손상됩니다.
러너 워크플로우가 손상되지 않도록하려면 다음을 수행해야합니다:
- 인스턴스 러너 생성 및 인증 토큰 획들르어야 합니다.
- 러너 등록 워크플로우의 등록 토큰을 인증 토큰으로 바꿉니다.
GitLab 17.0 이후 등록 토큰 사용
GitLab 17.0 이후 계속해서 등록 토큰을 사용하려면:
- GitLab.com에서 GitLab 18.0까지 최상위 그룹 설정에서 레거시 러너 등록 프로세스를 수동으로 다시 활성화할 수 있습니다.
- GitLab self-managed에서 GitLab 18.0까지 관리자 영역 설정에서 레거시 러너 등록 프로세스를 수동으로 다시 활성화할 수 있습니다.
등록 토큰을 다시 활성화하는 UI 설정을 구현하는 계획은 issue 411923에 제안되었습니다
기존 러너에 미치는 영향
기존 러너는 18.0 이후에도 계속해서 정상적으로 작동합니다. 이 변경은 새 러너의 등록에만 영향을 미칩니다.
gitlab-runner register
명령 구문의 변경
gitlab-runner register
명령은 등록 토큰을 더 이상 수용하지 않고 대신 GitLab 러너 관리 페이지에서 생성된 새 러너 인증 토큰을 수신합니다.
러너 인증 토큰은 glrt-
접두사로 식별할 수 있습니다.
GitLab UI에서 러너를 생성할 때 이전에 gitlab-runner register
명령에 의해 프롬프트된 명령행 옵션 값을 지정합니다.
이러한 명령행 옵션은 폐기되었습니다.
러너 인증 토큰을 다음과 함께 지정하는 경우:
-
--token
명령 행 옵션,gitlab-runner register
명령은 구성 값을 허용하지 않습니다. -
--registration-token
명령 행 옵션,gitlab-runner register
명령은 구성 값을 무시합니다.
토큰 | 등록 명령 |
---|---|
러너 인증 토큰 | gitlab-runner register --token $RUNNER_AUTHENTICATION_TOKEN
|
러너 등록 토큰 (폐기됨) | gitlab-runner register --registration-token $RUNNER_REGISTRATION_TOKEN <runner configuration arguments>
|
인증 토큰은 glrt-
접두사로 식별할 수 있습니다.
자동화 워크플로우에 최소한의 중단을 보장하려면 이전과 호환되는 레거시 등록 처리가 활성화됩니다
러너 인증 토큰이 레거시 매개변수 --registration-token
에 지정된 경우.
GitLab 15.9의 예시 명령:
gitlab-runner register \
--non-interactive \
--executor "shell" \
--url "https://gitlab.com/" \
--tag-list "shell,mac,gdk,test" \
--run-untagged "false" \
--locked "false" \
--access-level "not_protected" \
--registration-token "GR1348941C6YcZVddc8kjtdU-yWYD"
GitLab 15.10 이후에는 UI에서 러너를 생성하고 태그 목록, 잠긴 상태 및 액세스 수준과 같은 일부 속성을 지정합니다.
GitLab 15.11 이후에는 이러한 속성은 러너 인증 토큰 및 glrt-
접두사와 함께 register
에 인수로 더 이상 허용되지 않습니다.
다음 예시는 새로운 명령을 보여줍니다:
gitlab-runner register \
--non-interactive \
--executor "shell" \
--url "https://gitlab.com/" \
--token "glrt-2CR8_eVxiioB1QmzPZwa"
오토스케일링에 미치는 영향
GitLab Runner Operator나 GitLab Runner Helm Chart와 같은 오토스케일링 시나리오에서는 등록 토큰이 UI에서 생성된 러너 인증 토큰으로 대체됩니다. 이는 각 작업에 대해 러너를 생성하는 대신 동일한 러너 구성이 작업 간에 재사용되는 것을 의미합니다. 특정 러너는 러너 프로세스가 시작될 때 생성되는 고유한 시스템 ID로 식별할 수 있습니다.
프로그래밍 방식으로 러너 생성
GitLab 15.11 이상에서는 인증된 사용자로 POST /user/runners REST API를 사용하여 러너를 생성할 수 있습니다. 이는 러너 구성이 동적이거나 재사용되지 않을 때에만 사용해야 합니다. 러너 구성이 정적인 경우 기존 러너의 러너 인증 토큰을 재사용해야 합니다.
러너 생성 및 등록을 자동화하는 방법은 러너 생성 및 등록 자동화 튜토리얼을 참조하십시오.
Helm 차트를 사용한 GitLab Runner 설치
러너 등록 중에 설정할 수 없는 여러 러너 구성 옵션이 있습니다. 이러한 옵션은 다음과 같이 구성할 수 있습니다.
- UI에서 러너를 생성할 때.
- user/runners
REST API 엔드포인트로.
다음 구성 옵션들은 더 이상 values.yaml
에서 지원되지 않습니다:
## 이러한 모든 필드는 더 이상 지원되지 않으며 GitLab Runner 18.0 이후로 이러한 값을 지정하면 러너 시작에 실패합니다.
## runnerRegistrationToken에 러너 인증 토큰이 지정된 경우 등록은 성공하지만 다른 값들은 무시됩니다.
runnerRegistrationToken: ""
locked: true
tags: ""
maximumTimeout: ""
runUntagged: true
protected: true
러너 인증 토큰을 secrets
에 저장하는 경우 해당 토큰을 수정해야 합니다.
레거시 러너 등록 워크플로에서는 다음과 같이 필드가 지정되었습니다:
apiVersion: v1
kind: Secret
metadata:
name: gitlab-runner-secret
type: Opaque
data:
runner-registration-token: "REDACTED" # 사용되지 않음, ""로 설정
runner-token: ""
새로운 러너 등록 워크플로에서는 다음과 같이 runner-token
을 사용해야 합니다:
apiVersion: v1
kind: Secret
metadata:
name: gitlab-runner-secret
type: Opaque
data:
runner-registration-token: "" # 호환성을 위해 빈 문자열로 유지해야 함
runner-token: "REDACTED"
참고:
시크릿 관리 솔루션이 runner-registration-token
에 빈 문자열을 설정하는 것을 허용하지 않는 경우 아무 문자열이라도 설정할 수 있습니다. runner-token
이 있는 경우에는 무시될 것입니다.
알려진 문제
Pod 이름이 러너 상세 페이지에 표시되지 않음
Helm 차트로 러너를 등록할 때 새로운 등록 워크플로를 사용하는 경우, 러너 상세 페이지에는 pod 이름이 표시되지 않습니다. 자세한 내용은 이슈 423523를 참조하십시오.
러너 인증 토큰이 로테이션될 때 업데이트되지 않음
GitLab Operator를 사용하여 러너를 등록할 때 새로운 등록 워크플로를 사용하는 경우, 사용자 정의 리소스 정의에서 참조하는 러너 인증 토큰은 토큰이 로테이션될 때 업데이트되지 않습니다.
이는 다음과 같은 경우 발생합니다:
- 사용자 정의 리소스 정의에서 시크릿을 참조하는 러너 인증 토큰(glrt-
로 시작)을 사용하는 경우
참조 문서에 설명된대로
- 러너 인증 토큰이 만료될 예정인 경우
러너 인증 토큰 만료에 대한 자세한 내용은 러너 인증 토큰 보안을 참조하십시오.
자세한 내용은 이슈 186를 참조하십시오.