■Jenkins Pipeline構築
0. New view 作成
- 0-1. 2121ジョブに対して、[New view]を作成する。



- 0-2. 221の[New View] 作成

* 次は追加作業なしで[保存]
1. Jenkins Pipelineの基本構成を作成する(Step 1)- 2211

- 1-2. item name 入力 および Pipeline 選択
2211-jenkins_pipeline-step1

- 1-3. Script コピー

▶Pipeline script
- DOCKERHUB_USERNAMEおよび GITHUB_USERNAMEに自分のUsernameを入力する。
pipeline {
agent any
tools {
gradle 'gradle-7.6.1'
jdk 'jdk-17'
}
environment {
// ご自身のusernameを入力してください。
DOCKERHUB_USERNAME = "suhwanyoo"
GITHUB_USERNAME = "lioncubKR"
// 以下の部分は変更しないでください
GITHUB_URL = "https://github.com/${GITHUB_USERNAME}/kubernetes-anotherclass-sprint2.git"
CLASS_NUM = '2211'
}
stages {
stage('Source Build') {
steps {
// ソースファイルをチェックアウト(Source Repoは変更せずそのまま使用)
git branch: 'main', url: 'https://github.com/k8s-1pro/kubernetes-anotherclass-api-tester.git'
// ソースビルド
// 755権限が必要(WindowsでGitにアップロードした場合、権限は644)
sh "chmod +x ./gradlew"
sh "gradle clean build"
}
}
stage('Container Build') {
steps {
// リリースファイルをチェックアウト
checkout scmGit(branches: [[name: '*/main']],
extensions: [[$class: 'SparseCheckoutPaths',
sparseCheckoutPaths: [[path: "/${CLASS_NUM}"]]]],
userRemoteConfigs: [[url: "${GITHUB_URL}"]])
// jarファイルをコピー
sh "cp ./build/libs/app-0.0.1-SNAPSHOT.jar ./${CLASS_NUM}/build/docker/app-0.0.1-SNAPSHOT.jar"
// コンテナのビルドおよびアップロード
sh "docker build -t ${DOCKERHUB_USERNAME}/api-tester:v1.0.0 ./${CLASS_NUM}/build/docker"
// 動画と異なり、if文は削除され、常に自身のDocker Hubにビルドされるように修正されています
sh "docker push ${DOCKERHUB_USERNAME}/api-tester:v1.0.0"
}
}
stage('K8S Deploy') {
steps {
// Kubernetesへデプロイ
sh "kubectl apply -f ./${CLASS_NUM}/deploy/k8s/namespace.yaml"
sh "kubectl apply -f ./${CLASS_NUM}/deploy/k8s/configmap.yaml"
sh "kubectl apply -f ./${CLASS_NUM}/deploy/k8s/secret.yaml"
sh "kubectl apply -f ./${CLASS_NUM}/deploy/k8s/service.yaml"
sh "kubectl apply -f ./${CLASS_NUM}/deploy/k8s/deployment.yaml"
}
}
}
}
- 1-4. [Build]実行および Stage View結果確認


Jenkins Pipeline Agent 設定ガイド
Agent
パイプライン、または特定のステージが実行される環境を定義する。
- agent any
- 説明: 利用可能な任意(Available)のエージェントでステージを実行する。マスター、またはスレーブのどちらでも実行される可能性がある。
- 意味: 特定の実行環境を指定せず、空いているリソースを自動的に割り当てる設定。
- agent { label 'labelName' }
- 説明: 指定されたラベルを持つノード(エージェント)でステージを実行する。
- 意味: OS(Linux/Windows)や用途(ビルド用/テスト用)に応じて、実行するサーバーを固定する場合に使用する。
- agent { docker 'imageName' }
- 説明: 指定されたDockerイメージのコンテナ環境内でステージを実行する。
- 意味: エージェントサーバー自体にビルドツールをインストールせず、コンテナ内の環境を利用してビルドを行う。
- agent { dockerfile true }
- 説明: リポジトリ内の Dockerfile を利用して実行用コンテナをビルドし、その中でステージを実行する。
- 意味: ソースコードに含まれる Dockerfile の定義通りに、動的にビルド環境を構築する場合に使用する。
Jenkins Docs : https://www.jenkins.io/doc/book/pipeline/syntax/
2. GitHub 連携およびパイプラインの細分化 (Step 2) - 2212
- 2-1. item name 入力およびPipeline選択
2212-jenkins_pipeline-step2

- 2-2. Configure > General > GitHub projectに Project url 入力
Project url : https://github.com/lioncubKR/kubernetes-anotherclass-sprint2/

- 2-2. Configure > Advanced Project Options > Pipeline 構成 (1/2)
Repository URL : https://github.com/lioncubKR/kubernetes-anotherclass-sprint2.git

- 2-2. Configure > Advanced Project Options > Pipeline (2/2)
Branch Specifier : */main
Path : 2212
Script Path : 2212/Jenkinsfile

- 2-3. [保存] 、 [Build] を実行 → ビルドできない
- 2-4. 「パラメータ付きビルド」を選択し、自身の DockerHub および GitHub の Username を入力後、「ビルド(ビルド実行)」をクリック。

3. Blue/Green 配布 (Step 3) - 2213
- 3-1. item name入力およびPipeline選択。
Enter an item name : 2213-jenkins_pipeline-step3
Copy from : 2212-jenkins_pipeline-step2

- 3-2. Configure > Additional Behaviours および Script Path 修正後保存。
Path : 2213
Script Path : 2213/Jenkinsfile

- 3-3. Master Nodeで version 照会を開始。
# while true; do curl http://192.168.1.71:32213/version; sleep 1; echo ''; done;
- 3-4. [ビルド] 実行。
- 3-5. [手動配布] yes クリック - Greenが配布される。


- 3-6. V2 Service 呼び出し可能
# curl http://192.168.71.1:32223/version
- 3-7. [Green 切り替え] yesクリックおよび v2にバージョン変更確認。


- 3-8. ロールバックの可否を選択。

- done:Blueデプロイ削除
- rollback:Blueへ再切り替え
- 3-9. Blue/Greenに必要な要素

- Blue-Greenデプロイを考慮したDeploymentの命名が必要
- Blue-Greenデプロイのための追加ラベルおよびセレクターが必要
4. Blue/Green自動デプロイスクリプトの作成(Step 4)- 2214
- 4-1. item name入力およびPipeline選択
Enter an item name : 2214-jenkins_pipeline-step4
Copy from : 2213-jenkins_pipeline-step3

- 4-2. Configure > Additional Behaviours およびScript Path 修正後保存
Path : 2214
Script Path : 2214/Jenkinsfile

- 4-3. Master Node에서 version 照会開始
# while true; do curl http://192.168.1.71:32214/version; sleep 1; echo ''; done;
- 4-4. [ビルド] 実行
- 4-5. [自動配布開始] yesクリック

- [Greenに配布確認] v2.0.0に変更されている。

'k8s > archive_2' 카테고리의 다른 글
| HelmとKustomize (0) | 2026.04.24 |
|---|---|
| デプロイの前に必ず確認すべきこと (0) | 2026.04.20 |
| CICD-SERVER構築/検証 (0) | 2026.04.19 |
| Probe,Service,Secret,HPA (0) | 2026.04.18 |
| PV/PVC、Deployment、Service (0) | 2026.04.16 |