如何在Kubernetes上定制config.toml?

如何在Kubernetes上定制config.toml?,kubernetes,gitlab,gitlab-ci,gitlab-ci-runner,Kubernetes,Gitlab,Gitlab Ci,Gitlab Ci Runner,我有一个Gitlab云连接到运行在Google(GKE)上的k8s集群。 集群是通过Gitlab云创建的 我想定制config.toml,因为我想按照中的建议修复k8s上的缓存 我在runner gitlab runnerConfigMap中找到了config.toml配置。 我更新了ConfigMap以包含此config.toml设置: config.toml: | concurrent = 4 check_interval = 3 log_level = "inf

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

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

我在
runner gitlab runner
ConfigMap中找到了
config.toml
配置。 我更新了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"
为了应用这些更改,我删除了
运行程序gitlab runner xxxx xxx
pod,以便使用更新的
config.toml
创建一个新的pod

但是,当我查看新的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]
listen_address=“[::]:9252”
并发=4
检查间隔=3
log_level=“info”
[会话服务器]
会话超时=1800
[[跑步者]]
name=“”
url=“”
token=“”
执行人=“kubernetes”
cache_dir=“/tmp/gitlab/cache”
[跑步者,库伯内特斯]
host=“”
承载\u令牌\u覆盖\u允许=false
image=“”
namespace=“”
名称空间_overwrite_allowed=“”
特权=错误
内存限制=“1Gi”
服务\u帐户\u覆盖\u允许=“”
pod_注释_覆盖_允许=“”
[runners.kubernetes.node_选择器]
gitlab=“true”
[runners.kubernetes.卷]
[[runners.kubernetes.volumes.host_path]]
name=“gitlab缓存”
mount_path=“/tmp/gitlab/cache”
host_path=“/home/core/data/gitlab runner/data”
[[跑步者]]
name=“runner gitlab runner xxx xxx”
url=”https://gitlab.com/"
token=“”
执行人=“kubernetes”
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[跑步者,库伯内特斯]
host=“”
承载\u令牌\u覆盖\u允许=false
image=“ubuntu:16.04”
namespace=“gitlab托管应用程序”
名称空间_overwrite_allowed=“”
特权=真
服务\u帐户\u覆盖\u允许=“”
pod_注释_覆盖_允许=“”
[runners.kubernetes.卷]
文件
/scripts/config.toml
就是我在ConfigMap中创建的配置。 因此,我怀疑在向gitlab云注册gitlab runner时,
/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
#添加docker卷

cat>/home/gitlab runner/.gitlab runner/config.toml如果要修改
/home/gitlab runner/.gitlab runner
中的现有config.toml,则需要在部署中设置环境变量。例如,如果您通过按gitlab中的install按钮安装了gitlab runner,则这是默认的变量集

 Environment:
       CI_SERVER_URL:                                    http://git.example.com/
       CLONE_URL:                                        
       RUNNER_REQUEST_CONCURRENCY:                       1
       RUNNER_EXECUTOR:                                  kubernetes
       REGISTER_LOCKED:                                  true
       RUNNER_TAG_LIST:                                  
       RUNNER_OUTPUT_LIMIT:                              4096
       KUBERNETES_IMAGE:                                 ubuntu:16.04
       KUBERNETES_PRIVILEGED:                            true
       KUBERNETES_NAMESPACE:                             gitlab-managed-apps
       KUBERNETES_POLL_TIMEOUT:                          180
       KUBERNETES_CPU_LIMIT:                             
       KUBERNETES_CPU_LIMIT_OVERWRITE_MAX_ALLOWED:       
       KUBERNETES_MEMORY_LIMIT:                          
       KUBERNETES_MEMORY_LIMIT_OVERWRITE_MAX_ALLOWED:    
       KUBERNETES_CPU_REQUEST:                           
       KUBERNETES_CPU_REQUEST_OVERWRITE_MAX_ALLOWED:     
       KUBERNETES_MEMORY_REQUEST:                        
       KUBERNETES_MEMORY_REQUEST_OVERWRITE_MAX_ALLOWED:  
       KUBERNETES_SERVICE_ACCOUNT:                       
       KUBERNETES_SERVICE_CPU_LIMIT:                     
       KUBERNETES_SERVICE_MEMORY_LIMIT:                  
       KUBERNETES_SERVICE_CPU_REQUEST:                   
       KUBERNETES_SERVICE_MEMORY_REQUEST:                
       KUBERNETES_HELPER_CPU_LIMIT:                      
       KUBERNETES_HELPER_MEMORY_LIMIT:                   
       KUBERNETES_HELPER_CPU_REQUEST:                    
       KUBERNETES_HELPER_MEMORY_REQUEST:                 
       KUBERNETES_HELPER_IMAGE:

修改现有值或添加新值-它将出现在
config.toml
的正确部分。这对我很有吸引力。谢谢