1

我是 gitlab ci/cd 的新手。我想在 kubernetes 上部署 gitlab-runner,我使用 kubernetes 创建了两个资源:

gitlab-runner-configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: gitlab-runner
  namespace: gitlab
data:
  config.toml: |
    concurrent = 4

    [[runners]]
      name = "Kubernetes Runner"
      url = "http:my-gitlab.com/ci"
      token = "token...."
      executor = "kubernetes"
      tag = "my-runner"
      [runners.kubernetes]
        namespace = "gitlab"
        image = "busybox"

gitlab-runner-deployment.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: gitlab-runner
  namespace: gitlab
spec:
  replicas: 1
  selector:
    matchLabels:
      name: gitlab-runner
  template:
    metadata:
      labels:
        name: gitlab-runner
    spec:
      containers:
      - args:
        - run
        image: gitlab/gitlab-runner:v11.11.3
        imagePullPolicy: Always
        name: gitlab-runner
        volumeMounts:
        - mountPath: /etc/gitlab-runner
          name: config
        - mountPath: /etc/ssl/certs
          name: cacerts
          readOnly: true
      restartPolicy: Always
      volumes:
      - configMap:
          name: gitlab-runner
        name: config
      - hostPath:
          path: /usr/share/ca-certificates/mozilla
        name: cacerts

问题是在使用创建两个资源之后kubectl apply。我在http://my-gitlab.com/admin/runners. 我怀疑原因是我没有注册跑步者。然后我进入runnerpodpod/gitlab-runner-69d894d7f8-pjrxn并通过手动注册跑步者gitlab-runner register,之后我可以看到跑步者实例http://my-gitlab.com/admin/runners

那我做错什么了吗?还是必须在 pod 内手动注册跑步者?

谢谢。

4

1 回答 1

1

实际上,您需要在 GitLab 服务器上显式注册runner。
例如通过:

gitlab-runner register --non-interactive \
    --name $RUNNER_NAME \
    --url $GITLAB_URL \
    --registration-token $GITLAB_REGISTRATION_TOKEN \
    --executor docker \
    --docker-image $DOCKER_IMAGE_BUILDER \
    --tag-list $GITLAB_RUNNER_TAG_LIST \
    --request-concurrency=$GITLAB_RUNNER_CONCURRENCY

您可以将其大部分配置作为参数传递。
如果您没有 create config.toml,它将为您生成它,包括在注册时从服务器收到的 runner 令牌。

但是
当您使用 Kubernetes 时,有一种更简单的方法。
GitLab 提供了与 Kubernetes 的完美集成,您只需将集群附加到您的项目\组:https ://docs.gitlab.com/ee/user/project/clusters/#adding-an-existing-kubernetes-簇

然后通过他们所谓的“托管应用程序”在 UI 中单击几下即可安装运行器:https ://docs.gitlab.com/ee/user/clusters/applications.html#gitlab-runner

在最后一页上,您可以找到指向他们使用的 Helm 图表的链接。
所以你甚至可以自己直接使用它。
你可以看到那里专门调用注册configmap.yaml#L65

于 2019-06-28T11:12:20.443 回答