gpt4 book ai didi

kubernetes - 如何在 Kubernetes 上自定义 config.toml?

转载 作者:行者123 更新时间:2023-12-04 04:28:27 25 4
gpt4 key购买 nike

我有一个 Gitlab 云连接到在 Google (GKE) 上运行的 k8s 集群。
集群是通过 Gitlab 云创建的。

我要定制config.toml因为我想按照 this issue 中的建议修复 k8s 上的缓存.

我找到了 config.toml runner-gitlab-runner中的配置配置图。
我更新了 ConfigMap 以包含此 config.toml设置:

  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 pod 以便使用更新的 config.toml 创建一个新的.

但是,当我查看新 pod 时, /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 中创建的配置。
所以我怀疑 /home/gitlab-runner/.gitlab-runner/config.toml在 Gitlab 云中注册 Gitlab-Runner 时会以某种方式更新。

如果如果更改 config.toml通过 ConfigMap 不起作用,我应该如何更改配置?我在 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
我使用 helm chart 进行了 runner 部署;我猜你也做了同样的事情,在下面的链接中你会找到更多关于我提到的方法的信息: https://gitlab.com/gitlab-org/gitlab-runner/issues/2578
如果在附加配置后您的 pod 无法启动,请检查日志,我确实测试了附加方法并出现了一些错误,例如“找不到目录”,这是因为我附加在错误的路径中,但是在修复这些之后问题,运行者工作正常。

关于kubernetes - 如何在 Kubernetes 上自定义 config.toml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54707598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com