Jenkins は、継続的インテグレーションと継続的デプロイメント (CI/CD) を実装するために使用されます。Container Service for Kubernetes (ACK) クラスターに Jenkins をデプロイして、サービスの可用性を高め、O&M コストを削減できます。このトピックでは、ACK クラスターに Jenkins をデプロイし、簡単なアプリケーションを作成してデプロイする方法について説明します。
前提条件
注意事項
Jenkins のテクニカルサポートは提供されていません。Jenkins を使用する開発者は、Jenkins を維持する必要があります。
Jenkins の Helm チャートとイメージは中国国外のソースからのものです。そのため、プル操作が失敗する可能性があります。次のソリューションを使用できます。
ステップ 1: Jenkins のデプロイ
次のコマンドを実行して、Jenkins Helm Repo を設定します。
helm repo add jenkins https://charts.jenkins.io helm repo update予想される出力:
Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "jenkins" chart repository Update Complete. ⎈Happy Helming!⎈Jenkins をインストールします。
次のコマンドを実行して、
cicdという名前の名前空間を作成します。kubectl create ns cicd次のコマンドを実行して、Jenkins を
cicd名前空間にデプロイします。helm -n cicd install jenkins jenkins/jenkins \ --set persistence.storageClass="alicloud-disk-essd" \ --set persistence.size="20Gi" \ --set controller.serviceType="LoadBalancer" \ --set controller.admin.password="admin"persistence.storageClass="alicloud-disk-available": 利用可能なクラウドディスクタイプを自動的に選択し、ディスクボリュームを作成して jenkins_home ディレクトリ内のファイルを永続化します。このパラメーターは必須です。
persistence.size="20Gi": Elastic Compute Service (ECS) クラウドディスクの最小容量を 20 GiB に設定します。このパラメーターは必須です。
controller.serviceType="LoadBalancer": デフォルト値は ClusterIP です。このパラメーターはオプションです。
controller.admin.password="admin": 管理者パスワードを指定します。このパラメーターはオプションです。デフォルトでは、ランダムなパスワードが生成されます。
他のパラメーターの詳細については、「helm-charts」をご参照ください。
次のコマンドを実行して Jenkins Pod のステータスをクエリし、Jenkins Pod が正常に実行されるまで待ちます。
kubectl -n cicd get po予想される出力:
NAME READY STATUS RESTARTS AGE jenkins-0 2/2 Running 0 3m3s
デフォルトでは、Jenkins サービスのタイプは ClusterIP です。ブラウザから Jenkins にアクセスするには、次のコマンドを実行してサービスタイプを変更します。
kubectl -n cicd patch svc jenkins -p '{"spec": {"type": "LoadBalancer"}}'次に、次のコマンドを実行して、サービスの外部 IP アドレスを表示します。
kubectl get -n cicd service予想される出力:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE jenkins LoadBalancer 192.168.***.*** 8.222.***.*** 8080:30949/TCP 2d17h jenkins-agent ClusterIP 192.168.***.* <none> 50000/TCP 2d17hブラウザで、前のステップで取得した IP アドレスとポートを入力して Jenkins サービスにアクセスします。次に、ユーザー名とパスワードを入力してログインします。
説明Jenkins をデプロイするときにパスワードを指定しない場合は、次のコマンドを実行して、Jenkins によってランダムに生成されるデフォルトのパスワードを取得します。
kubectl -n cicd exec -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo
(オプション) パイプラインタスクの作成
このセクションでは、first-pipeline パイプラインビルドを例として、パイプラインビルドを作成する方法を説明します。パイプラインビルドを作成すると、Jenkins は ACK クラスターでスレーブ Pod を動的に起動し、デフォルトでビルドを実行します。Jenkins がビルドの実行を完了すると、すぐにスレーブ Pod を解放します。Jenkins の設定の詳細については、「Jenkins」をご参照ください。
Jenkins にログインします。左側のナビゲーションウィンドウで、[New Item] をクリックします。
[Enter An Item Name] セクションで、first-pipeline と入力し、[Pipeline] を選択して、[OK] をクリックします。
ページの上部にある [Pipeline] タブをクリックし、[Hello World] テンプレートを選択して、[Save] をクリックします。

左側のナビゲーションウィンドウで、[Build Now] をクリックしてビルドを実行します。
左側のナビゲーションウィンドウで、[Build History] をクリックします。[1#] をクリックしてパイプラインの詳細ページに移動し、[Console Output] をクリックしてビルド結果を表示します。