시작하기 전에
- 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
- 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
- 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.
Create a Kubernetes cluster
/ 20
Configure and Install Jenkins
/ 20
Create the production and canary deployments
/ 30
Build for the 'new-feature' branch
/ 10
Deploying a canary release
/ 10
Deploying to production
/ 10
Create a Kubernetes cluster
/ 20
Configure and Install Jenkins
/ 20
Create the production and canary deployments
/ 30
Build for the 'new-feature' branch
/ 10
Deploying a canary release
/ 10
Deploying to production
/ 10
Kubernetes 클러스터를 만들고 Jenkins가 Google Cloud 서비스 및 Google Artifact Registry에 액세스할 수 있도록 설정합니다.
이 단계를 완료하는 데 몇 분 정도 걸릴 수 있습니다. 추가 범위를 통해 Jenkins가 Google Cloud 서비스 및 Google Artifact Registry에 액세스할 수 있습니다.
이 단계는 완료하는 데 최대 몇 분이 걸릴 수 있습니다. 추가된 scopes 파라미터는 Jenkins가 Google Cloud 서비스 및 Google Artifact Registry에 액세스할 수 있도록 합니다.
내 진행 상황 확인하기를 클릭하여 수행한 작업을 확인합니다. Kubernetes 클러스터가 생성되면 평가 점수가 표시됩니다.
Helm은 Kubernetes 애플리케이션을 쉽게 구성하고 배포할 수 있게 해주는 패키지 관리자입니다. Jenkins를 설치하면 CI/CD 파이프라인을 설정할 수 있습니다.
이 작업에서는 Helm을 사용하여 차트 저장소에서 Jenkins를 설치합니다.
Jenkins 설치 시 values 파일을 템플릿으로 사용하여 설정에 필요한
값을 제공할 수 있습니다.
커스텀 values 파일을 사용하면 Kubernetes 클라우드를 자동으로
구성하고 다음 필수 플러그인을 추가할 수 있습니다.
그러면 Jenkins가 클러스터 및 Google Cloud 프로젝트에 연결할 수 있게 됩니다.
이 명령어를 완료하는 데 몇 분 정도 걸릴 수 있습니다.
내 진행 상황 확인하기를 클릭하여 수행한 작업을 확인합니다. Jenkins 차트가 구성되면 평가 점수가 표시됩니다.
Running 상태이고 컨테이너가
READY 상태인지 확인합니다.
출력 예시:
다음과 같은 출력이 표시됩니다.
출력 예시:
Jenkins 마스터가 요청할 경우 필요에 따라 빌더 노드가 자동으로 시작되도록 Kubernetes 플러그인을 사용하고 있습니다. 작업이 완료되면 빌더 노드가 자동으로 중단되고 리소스가 클러스터 리소스 풀에 다시 추가됩니다.
이 서비스에서는 selector와 일치하는 모든 포드가 액세스할 수
있도록 포트 8080 및 50000을 노출합니다. 그러면
Kubernetes 클러스터 내의 Jenkins 웹 UI 및 빌더/에이전트 등록 포트가
노출됩니다. 또한 jenkins-ui 서비스는 클러스터 외부에서 액세스할
수 없도록 ClusterIP를 통해 노출됩니다.
관리자 비밀번호를 가져와 Jenkins 인터페이스에 로그인합니다.
Jenkins 사용자 인터페이스로 이동하려면 Cloud Shell 작업 모음에서
웹 미리보기() > 포트 8080에서 미리보기를 클릭합니다.
메시지가 표시되면 사용자 이름 admin과 자동 생성된 비밀번호로
로그인합니다.
이제 Kubernetes 클러스터에 Jenkins가 설정되었습니다. 다음 섹션에서는 Jenkins를 활용하여 자동화된 CI/CD 파이프라인을 운용합니다.
이 작업에서는 지속적 배포 파이프라인에 샘플 애플리케이션인
gceme를 배포합니다. 이 애플리케이션은 Go 언어로 작성되었으며
저장소의 sample-app 디렉터리에 있습니다. Compute Engine 인스턴스에서 gceme
바이너리를 실행하면, 앱이 정보 카드에 인스턴스의 메타데이터를 표시합니다.
이 애플리케이션은 마이크로서비스를 모방하여 두 가지 작동 모드를 지원합니다.
애플리케이션을 2개의 다른 환경에 배포합니다.
kubectl apply 명령어를
사용하여 서비스를 생성합니다.
내 진행 상황 확인하기를 클릭하여 수행한 작업을 확인합니다. 배포가 생성되면 평가 점수가 표시됩니다.
기본적으로 하나의 프런트엔드 복제본만 배포됩니다.
kubectl scale 명령어를 사용하여 최소 4개의 복제본이 항상
실행되도록 합니다.
출력 예시:
외부 IP를 브라우저에 붙여넣어 카드에 표시된 정보 카드를 확인합니다. 다음과 유사한 페이지가 나타납니다.
브라우저에서 프런트엔드 외부 IP 주소를 열어 두 서비스가 정상 작동하는지 확인합니다.
다음 명령어를 실행하여 서비스의 버전을 확인합니다(1.0.0으로 표시되어야 함).
샘플 애플리케이션을 배포했습니다. 지금부터는 변경사항을 지속적이고 안정적으로 배포할 수 있도록 파이프라인을 설정합니다.
이 작업에서는 전용 Git 서버에 Git 저장소를 설정하고 Jenkins 파이프라인을 만듭니다.
sample-app 디렉터리를 Git 저장소로 초기화합니다.master 브랜치로 푸시합니다.Jenkins가 클러스터에 액세스하고 리소스를 배포할 수 있도록 사용자 인증 정보를 구성합니다.
Jenkins 사용자 인터페이스의 왼쪽 패널에서 Manage Jenkins를 클릭한 다음 Security 아래의 Credentials를 클릭합니다.
Stores scoped to Jenkins 아래에서 System을 클릭합니다.
Global credentials (unrestricted)를 클릭합니다.
Add Credentials를 클릭합니다.
Kind에서 Google Service Account from metadata를 선택하고 Next를 클릭합니다.
ID 필드에 프로젝트 ID(
전역 사용자 인증 정보가 추가되었습니다.
http://cd-jenkins:8080을
입력합니다.
cd-jenkins-agent:50000을
입력합니다.
Jenkins 사용자 인터페이스로 이동하여 다음 단계에 따라 다중 브랜치 파이프라인 작업을 구성합니다.
왼쪽 패널에서 Jenkins > New Item을 클릭합니다.
항목 이름에 sample-app을 입력하고 Multibranch Pipeline 옵션을 선택한 후 OK를 클릭합니다.
다음 페이지의 Branch Sources 섹션에서 Add source 드롭다운의 Git을 선택합니다.
Project Repository 필드에 저장소의 클론 URL을 입력합니다.
[GIT_SERVER_IP]를 Git 서버 IP로 대체하여 http://[GIT_SERVER_IP]:3000/giteaadmin/sample-app.git을 입력할 수 있습니다.
Credentials는 - none -으로 유지합니다.
Scan Multibranch Pipeline Triggers 섹션에서 Periodically if not otherwise run 확인란을 선택하고 Interval 값을 1 minute로 설정합니다.
다른 모든 옵션은 기본값으로 유지하고 Save를 클릭합니다.
이 단계를 완료하면 Branch indexing이라는 작업이 실행됩니다. 이
메타 작업은 저장소의 브랜치를 식별하고 기존 브랜치에 변경사항이 발생하지
않았는지 확인합니다. 탐색 메뉴에서 sample-app을 클릭하면
master 작업이 표시됩니다.
Jenkins 파이프라인을 만들었습니다. 다음으로 지속적 통합을 위한 개발 환경을 만듭니다.
개발 브랜치는 개발자가 코드 변경사항을 제출하여 라이브 사이트에 통합하기 전에 테스트하는 데 사용하는 일련의 환경입니다. 이러한 환경은 애플리케이션의 축소 버전이지만 실제 환경과 동일한 메커니즘으로 배포되어야 합니다.
기능 브랜치로부터 개발 환경을 만들려면 브랜치를 Git 서버에 푸시하고 Jenkins를 통해 환경을 배포합니다.
해당 파이프라인을 정의하는 Jenkinsfile은
Jenkins 파이프라인 Groovy 문법을 사용하여 작성됩니다. Jenkinsfile을 사용하면 전체 빌드
파이프라인을 소스 코드가 포함된 단일 파일로 표현할 수 있습니다.
파이프라인에서는 동시 로드와 같은 강력한 기능을 지원하며 사용자의 수동 승인이
필요합니다.
파이프라인이 정상적으로 작동하려면 Jenkinsfile을 수정하여
프로젝트 ID를 설정해야 합니다.
vi)에서 Jenkinsfile을 엽니다.
REPLACE_WITH_YOUR_PROJECT_ID 값에 PROJECT_ID를
추가합니다. PROJECT_ID는 학습자의 프로젝트 ID로 실습의
CONNECTION DETAILS(연결 세부정보) 섹션에 있습니다.
gcloud config get-value project를 실행해서 찾을 수도
있습니다.
CLUSTER_ZONE의 값을
gcloud config get compute/zone을 실행하면
이 값을 가져올 수 있습니다.
Jenkinsfile 파일을 저장합니다. vi 사용자의 경우
Esc 키를 누르고 다음 명령어를 입력합니다.
애플리케이션이 변경되었음을 보여주기 위해 gceme 카드를 파란색에서 주황색으로 변경합니다.
html.go를 엽니다.<div class="card blue">의 두 인스턴스를
변경합니다.
html.go 파일을 저장합니다. 이를 위해 Esc 키를 누르고 다음
명령어를 입력합니다.
main.go를 엽니다.다음으로 업데이트합니다.
이 작업에서는 개발 환경을 배포합니다.
이렇게 하면 개발 환경 빌드가 시작됩니다.
변경사항이 Git 저장소에 푸시되고 나면 Jenkins 사용자 인터페이스로 이동하여
new-feature 브랜치의 빌드가 시작되었는지 확인합니다. 변경사항이
적용되기까지는 최대 1분이 소요될 수 있습니다.
kubectl --namespace=new-feature apply... 메시지가 시작되는지
확인합니다. 이제 new-feature 브랜치가 클러스터에 배포되었습니다.
Build Executor에 아무것도 보이지 않아도 걱정하지 마세요. Jenkins
홈페이지에서 샘플 앱으로 이동하여 new-feature 파이프라인이
만들어졌는지 확인하면 됩니다.
localhost에 요청을
보내고 kubectl 프록시에서 이를 서비스에 전달하도록 하여
애플리케이션에 액세스할 수 있는지 확인합니다.
현재 실행 중인 버전인 2.0.0으로 응답해야 합니다.
다음과 비슷한 오류가 표시될 수 있습니다.
curl 명령어를 다시 시도합니다. 다음과 같은 출력이
표시되면 계속 진행합니다.
개발 환경을 설정했습니다. 이제 이전 모듈에서 학습한 내용을 바탕으로 카나리아 릴리스를 배포하여 새로운 기능을 테스트하겠습니다.
내 진행 상황 확인하기를 클릭하여 수행한 작업을 확인합니다. new-feature 브랜치의 빌드가 시작되면 평가 점수가 표시됩니다.
new-feature 브랜치용으로 빌드
앱이 개발 환경에서 최신 코드를 실행 중임을 확인했으므로 이제 해당 코드를 카나리아 환경에 배포해 보겠습니다.
2.0.0을 반환해야 합니다.
작업이 끝났습니다. 카나리아 릴리스를 배포했습니다. 이제 새 버전을 프로덕션에 배포하겠습니다.
내 진행 상황 확인하기를 클릭하여 수행한 작업을 확인합니다. 카나리아 릴리스가 배포되면 평가 점수가 표시됩니다.
카나리아 릴리스가 성공적이었으며 어떤 고객의 불만도 없었으므로 이를 이제 나머지 프로덕션 Fleet에 배포해 보겠습니다.
Jenkins에서 마스터 파이프라인이 시작되었음을 알 수 있습니다.
내 진행 상황 확인하기를 클릭하여 수행한 작업을 확인합니다. 마스터 파이프라인이 시작되면 평가 점수가 표시됩니다.
1.0.0 버전의 인스턴스가 표시되면 위의 명령어를 다시 실행해
보세요. 이 명령어를 중지하려면 Ctrl+C를 누릅니다.
출력 예시:
gceme 애플리케이션이 정보 카드를 표시하는 사이트로 이동할 수도 있습니다. 카드 색상이 파란색에서 주황색으로 변경되었습니다.
출력 예시:
아래는 이 실습에서 배운 내용을 복습하기 위한 객관식 테스트입니다. 최선을 다해 풀어보세요.
모두 마쳤습니다.
잘하셨습니다. 애플리케이션을 프로덕션에 배포했습니다.
이것으로 Kubernetes Engine에서 Jenkins를 배포하고 활용하여 지속적 배포 파이프라인을 사용 설정하는 실무형 실습을 마칩니다. Kubernetes Engine에서 중요한 DevOps 도구를 배포하고 프로덕션 적용을 위해 구성해볼 수 있는 기회였습니다. kubectl 명령줄 도구와 YAML 파일 내의 배포 구성을 사용해 작업하였으며, 개발/배포 프로세스를 위한 Jenkins 파이프라인 설정에 관해서도 어느 정도 배웠습니다. 이 실습 경험을 기반으로 이제 DevOps 숍에서 이러한 도구를 편안하게 활용할 수 있을 것입니다.
Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.
설명서 최종 업데이트: 2026년 5월 20일
실습 최종 테스트: 2026년 2월 26일
Copyright 2026 Google LLC. All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.
현재 이 콘텐츠를 이용할 수 없습니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
감사합니다
이용할 수 있게 되면 이메일로 연락드리겠습니다.
한 번에 실습 1개만 가능
모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.