すべてのプロダクト
Search
ドキュメントセンター

:JenkinsをACKクラスターにデプロイし、アプリケーションを作成してデプロイする

最終更新日:Oct 21, 2024

Jenkinsは、継続的インテグレーションと継続的デプロイメント (CI/CD) を実装するために使用されます。 Container Service for Kubernetes (ACK) クラスターにJenkinsをデプロイして、サービスの高可用性を確保し、O&Mコストを削減できます。 このトピックでは、ACKクラスターにJenkinsをデプロイし、簡単なアプリケーションを作成してデプロイする方法について説明します。

前提条件

  • ACKクラスターが作成されます。 詳細については、「マネージド Kubernetes クラスターの作成」をご参照ください。

  • kubectlクライアントがクラスターに接続されています。 詳細については、「kubectl を利用した Kubernetes クラスターへの接続」をご参照ください。

  • CoreDNSはkube-system名前空間で期待どおりに実行されています。

    [デプロイメント] ページで、kube-system名前空間を選択し、corednsを検索します。 CoreDNSポッドのステータスが正常であることを確認します。

注意事項

Jenkinsにはテクニカルサポートは提供されていません。 Jenkinsを使用する開発者は、Jenkinsを維持する必要があります。

ステップ1: Jenkinsのデプロイ

  1. 次のコマンドを実行して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!⎈
    説明

    上記のリポジトリは、中国本土の外部にデプロイされたHalmチャートリポジトリです。 したがって、中国本土にデプロイされたACKクラスターからリポジトリを設定すると、設定に時間がかかる場合があります。

  2. Jenkinsをインストールします。

    1. 次のコマンドを実行して、cicdという名前空間を作成します。

      kubectl create ns cicd
    2. 次のコマンドを実行して、cicd名前空間にJenkinsをデプロイします。

      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ディレクトリにファイルを保持するディスクボリュームを作成します。 This parameter is required.

      • persistence.size="20Gi": Elastic Compute Service (ECS) クラウドディスクの最小容量を20 GiBに設定します。 This parameter is required.

      • controller.serviceType="LoadBalancer": デフォルト値はClusterIPです。 このパラメーターはオプションです。

      • controller.adminPassword="admin": デフォルトのパスワードはランダムに生成されます。 このパラメーターはオプションです。 ランダムに生成されたデフォルトパスワードを取得する方法の詳細については、「ロードバランサーを使用してJenkins Serviceにアクセスし、ランダムに生成されたデフォルトパスワードを取得する」をご参照ください。

      その他のパラメーターの詳細については、「helm-charts」をご参照ください。

    3. 次のコマンドを実行してJenkinsポッドのステータスを照会し、Jenkinsポッドが正常に実行されるまで待ちます。

      kubectl -n cicd get po

      期待される出力:

      NAME        READY   STATUS    RESTARTS   AGE
      jenkins-0   2/2     Running   0          3m3s
  3. webブラウザを使用してJenkinsにアクセスし、ユーザー名とパスワードを入力します。

ステップ2: パイプラインビルドの作成

このセクションでは、最初のパイプラインのビルドを例として、パイプラインビルドの作成方法を示します。 パイプラインビルドを作成すると、JenkinsはACKクラスターでスレーブポッドを動的に起動し、デフォルトでビルドを実行します。 Jenkinsはビルドの実行を終了すると、すぐにスレーブポッドを解放します。 Jenkins設定の詳細については、「Jenkins」をご参照ください。

  1. Jenkinsにログインします。 左側のナビゲーションウィンドウで、[新しい項目] をクリックします。

  2. では、アイテム名を入力セクション、最初のパイプライン、選択パイプラインをクリックし、OK.

  3. ページの上部で、パイプラインタブを選択し、ハローワールドをクリックし、保存.

    pipeline

  4. 左側のナビゲーションウィンドウで、今すぐビルドビルドを実行します。

  5. 左側のナビゲーションウィンドウで、[ビルド履歴] をクリックします。 1# をクリックしてパイプラインの詳細ページに移動し、コンソール出力をクリックしてビルド結果を表示します。

ロードバランサーを使用してJenkins Serviceにアクセスし、ランダムに生成されたデフォルトパスワードを取得する

  • Jenkinsサービスの既定のタイプはClusterIPです。 ロードバランサーを使用してJenkins Serviceを公開する場合は、次のコマンドを実行します。

    kubectl -n cicd patch svc jenkins -p '{"spec": {"type": "LoadBalancer"}}'
  • Jenkinsのデプロイ時にパスワードを指定しない場合は、次のコマンドを実行して、Jenkinsによってランダムに生成されたデフォルトのパスワードを取得します。

    kubectl -n cicd exec  -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo