web-dev-qa-db-ja.com

Kubernetesでconfig.tomlをカスタマイズする方法は?

Google(GKE)で実行されているk8sクラスターにGitlabクラウドを接続しています。クラスターはGitlabクラウドを介して作成されました。

この問題 で提案されているように、k8sのキャッシュをfixしたいので、config.tomlをカスタマイズします。

config.toml ConfigMapでrunner-gitlab-runner構成を見つけました。このconfig.toml設定を含むようにConfigMapを更新しました:

  config.toml: |
    concurrent = 4
    check_interval = 3
    log_level = "info"
    listen_address = '[::]:9252'
    [[runners]]
      executor = "kubernetes"
      cache_dir = "/tmp/gitlab/cache"
      [runners.kubernetes]
        memory_limit = "1Gi"
        [runners.kubernetes.node_selector]
          gitlab = "true"
        [[runners.kubernetes.volumes.Host_path]]
          name = "gitlab-cache"
          mount_path = "/tmp/gitlab/cache"
          Host_path = "/home/core/data/gitlab-runner/data"

変更を適用するには、runner-gitlab-runner-xxxx-xxxポッドを削除して、更新されたconfig.tomlで新しいポッドを作成しました。

ただし、新しいポッドを調べると、/home/gitlab-runner/.gitlab-runner/config.tomlには2つの[[runners]]セクションが含まれています。

listen_address = "[::]:9252"
concurrent = 4
check_interval = 3
log_level = "info"

[session_server]
  session_timeout = 1800

[[runners]]
  name = ""
  url = ""
  token = ""
  executor = "kubernetes"
  cache_dir = "/tmp/gitlab/cache"
  [runners.kubernetes]
    Host = ""
    bearer_token_overwrite_allowed = false
    image = ""
    namespace = ""
    namespace_overwrite_allowed = ""
    privileged = false
    memory_limit = "1Gi"
    service_account_overwrite_allowed = ""
    pod_annotations_overwrite_allowed = ""
    [runners.kubernetes.node_selector]
      gitlab = "true"
    [runners.kubernetes.volumes]

      [[runners.kubernetes.volumes.Host_path]]
        name = "gitlab-cache"
        mount_path = "/tmp/gitlab/cache"
        Host_path = "/home/core/data/gitlab-runner/data"

[[runners]]
  name = "runner-gitlab-runner-xxx-xxx"
  url = "https://gitlab.com/"
  token = "<my-token>"
  executor = "kubernetes"
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
  [runners.kubernetes]
    Host = ""
    bearer_token_overwrite_allowed = false
    image = "ubuntu:16.04"
    namespace = "gitlab-managed-apps"
    namespace_overwrite_allowed = ""
    privileged = true
    service_account_overwrite_allowed = ""
    pod_annotations_overwrite_allowed = ""
    [runners.kubernetes.volumes]

ファイル/scripts/config.tomlは、ConfigMapで作成した構成です。したがって、Gitlab-RunnerをGitlabクラウドに登録すると、/home/gitlab-runner/.gitlab-runner/config.tomlが何らかの形で更新されると思います。

ConfigMapを介したconfig.tomlの変更が機能しない場合、どのように構成を変更する必要がありますか?これについては、GitlabまたはGitlabのドキュメントでは何も見つかりません。

10
Joost den Boer

マッピング内で、ボリュームと追加の構成パラメーターを追加することができます。

# Add docker volumes
cat >> /home/gitlab-runner/.gitlab-runner/config.toml << EOF

      [[runners.kubernetes.volumes.Host_path]]
        name = "var-run-docker-sock"
        mount_path = "/var/run/docker.sock"
EOF

ヘルムチャートを使用してランナーの展開を行いました。私はあなたが同じことをしたと思います、次のリンクで私が言及するアプローチに関する詳細情報を見つけるでしょう: https://gitlab.com/gitlab-org/gitlab-runner/issues/2578

構成を追加した後、ポッドを開始できない場合は、ログを確認します。追加アプローチをテストしましたが、「ディレクトリが見つかりません」などのエラーが発生しました。間違ったパスに追加していたためですが、それらを修正した後問題、ランナーは正常に動作します。

3
Ariskay