我是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
中看不到跑步者实例。我怀疑原因是我尚未注册跑步者。然后,我进入runner
窗格pod/gitlab-runner-69d894d7f8-pjrxn
并通过gitlab-runner register
手动注册运行程序,此后,我可以在http://my-gitlab.com/admin/runners
中看到运行程序实例。
那么我做错了什么吗?还是必须在吊舱内手动注册跑步者?
谢谢。
答案 0 :(得分:1)
实际上,您需要在GitLab服务器上明确注册运行器。
例如通过:
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
您可以将其大部分配置作为参数传递。
如果您没有创建config.toml
,它将为您生成它,包括注册时从服务器收到的运行器令牌。
但是,
使用Kubernetes时,有一种更简单的方法。
GitLab提供了与Kubernetes的出色集成,您要做的就是将集群一次附加到您的项目\ group:https://docs.gitlab.com/ee/user/project/clusters/#adding-an-existing-kubernetes-cluster
然后只需在用户界面中点击几次即可安装赛跑者,他们称之为“托管应用”:https://docs.gitlab.com/ee/user/clusters/applications.html#gitlab-runner
在最后一页上,您可以找到他们使用的Helm图表的链接。
因此,您甚至可以直接使用它。
您会看到专门调用注册的地方:
configmap.yaml#L65