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のドキュメントでは何も見つかりません。
マッピング内で、ボリュームと追加の構成パラメーターを追加することができます。
# 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
構成を追加した後、ポッドを開始できない場合は、ログを確認します。追加アプローチをテストしましたが、「ディレクトリが見つかりません」などのエラーが発生しました。間違ったパスに追加していたためですが、それらを修正した後問題、ランナーは正常に動作します。