Kubernetes用GitLabエージェントへのマイグレーション

KubernetesクラスターとGitLabを接続するには、以下を使います:

証明書ベースのインテグレーションは 非推奨GitLab 14.5 では廃止予定です。廃止予定について説明します:

証明書ベースのインテグレーションを使用している場合は、できるだけ早く別のワークフローに移行してください。

原則として、GitLab CI/CDに依存しているクラスターをマイグレーションするには、CI/CDワークフローを使用できます。このワークフローはエージェントを使用してクラスターに接続します。エージェントは

  • インターネットに公開されていません。
  • GitLabへのフルアクセス(cluster-admin )を必要としません。
note
証明書ベースのインテグレーションは、GitLab Managed Apps、GitLab-managedクラスター、Auto DevOpsのようなGitLabの人気機能に使われていました。いくつかの機能は現在、証明書ベースのインテグレーションを使用した場合にのみ利用可能です。

クラスター・アプリケーションのデプロイのマイグレーション

GitLab が管理するクラスターからのマイグレーション

GitLab管理クラスタでは、GitLabはブランチごとに個別のサービスアカウントとネームスペースを作成し、これらのリソースを使用してデプロイを行います。

GitLabエージェントはなりすまし戦略を使って、アカウントアクセスを制限したクラスターにデプロイします。そのためには

  1. ニーズに合ったインパーソネーション戦略を選択します。
  2. KubernetesのRBACルールを使用して、Kubernetesのなりすましアカウントの権限を管理します。
  3. エージェント設定ファイルのaccess_as 属性を使用して、なりすましを定義します。

Auto DevOps からのマイグレーション

Auto DevOpsプロジェクトでは、GitLabエージェントを使用してKubernetesクラスターと接続することができます。

  1. クラスターにエージェントをインストールします。
  2. GitLabで、Auto DevOpsを使用するプロジェクトに移動します。
  3. 3つの変数を追加します。左サイドバーで、Settings > CI/CDを選択し、Variablesを展開します。
    • アプリケーションデプロイメントドメインを値として、KUBE_INGRESS_BASE_DOMAIN というキーを追加します。
    • path/to/agent/project:agent-nameのような値を持つKUBE_CONTEXT というキーを追加します。環境スコープを選択します。エージェントのコンテキストがわからない場合は、.gitlab-ci.yml ファイルを編集してジョブを追加し、利用可能なコンテキストを確認してください:

        deploy:
         image:
           name: bitnami/kubectl:latest
           entrypoint: [""]
         script:
         - kubectl config get-contexts
      
    • KUBE_NAMESPACE というキーに、デプロイの対象となるKubernetesネームスペースの値を追加します。同じ環境スコープを設定します。
  4. 変数の追加を選択します。
  5. 左サイドバーで、Operate > Kubernetes clustersを選択します。
  6. 証明書ベースのクラスターのセクションから、同じ環境スコープを提供するクラスターを開きます。
  7. Details]タブを選択し、クラスターを無効にします。
  8. .gitlab-ci.yml ファイルを編集し、Auto DevOps テンプレートが使用されていることを確認します。例えば

    include:
      template: Auto-DevOps.gitlab-ci.yml
       
    variables:
      KUBE_INGRESS_BASE_DOMAIN: 74.220.23.215.nip.io
      KUBE_CONTEXT: "gitlab-examples/ops/gitops-demo/k8s-agents:demo-agent"
      KUBE_NAMESPACE: "demo-agent"
    
  9. パイプラインをテストするには、左サイドバーで[Build] > [Pipelines]を選択し、[Run pipeline]を選択します。

例として、このプロジェクトをご覧ください。

汎用デプロイのマイグレーション

CI/CDワークフローのプロセスに従います。

GitLab Managedアプリケーションからのマイグレーション

GitLab Managed Apps(GMA) はGitLab 14.0で非推奨となり、GitLab 15.0で削除されました。Kubernetes用エージェントはこれらをサポートしていません。GMAからエージェントにマイグレーションするには、以下の手順に従ってください:

  1. GitLab Managed Appsからクラスター管理プロジェクトにマイグレーションします。
  2. エージェントを使用するようにクラスター管理プロジェクトをマイグレーションします。

クラスター管理プロジェクトのマイグレーション

GitLab エージェントでクラスター管理プロジェクトを使用する方法を参照してください。

クラスター監視機能のマイグレーション

クラスター監視機能は、Kubernetes用のGitLabエージェントではまだサポートされていません。