- 在 Red Hat OpenShift 上安装
- 在 Kubernetes 上安装
- 在离线环境的 Kubernetes 集群上安装极狐GitLab Runner Operator
- 卸载 Operator
安装极狐GitLab Runner Operator
在 Red Hat OpenShift 上安装
您可以使用嵌入在 OpenShift Web 控制台中的 OperatorHub 稳定渠道提供的极狐GitLab Runner Operator 在 Red Hat OpenShift v4 及更高版本上安装极狐GitLab Runner。安装完成后,您可以使用新部署的极狐GitLab Runner 实例运行 CI/CD 作业。每个 CI/CD 作业将在单独的 Pod 中运行。
先决条件
- 拥有管理员权限的 OpenShift 4.x 集群
- 极狐GitLab Runner 注册令牌
安装 OpenShift Operator
首先,您需要安装 OpenShift Operator。
- 打开 OpenShift UI 并以管理员身份登录。
- 在左侧面板上,单击 Operators,然后单击 OperatorHub。
-
在主面板上的 All Items 下面,搜索关键词
GitLab Runner
。 - 安装并点击极狐GitLab Runner Operator。
- 在极狐GitLab Runner Operator 摘要页面,单击 Install。
- 在安装 Operator 页面:
- 在 Update Channel 下,选择 stable。
- 在 Installed Namespace 下,选择想要的命名空间并单击 Install。
在安装的 Operator 页面上,当极狐GitLab Operator 准备好之后,状态变更为 Succeeded。
在 Kubernetes 上安装
引入于极狐GitLab 14.10。
您可以使用 OperatorHub.io 的稳定渠道中可用的极狐GitLab Runner Operator 在 Kubernetes v1.21 及更高版本上安装极狐GitLab Runner。安装后,您可以使用新部署的极狐GitLab Runner 实例运行 CI/CD 作业。每个 CI/CD 作业将在单独的 Pod 中运行。
先决条件
- Kubernetes v1.21 及更高版本
- Cert manager v1.7.1
安装 Kubernetes Operator
按照 OperatorHub.io 中的指南进行操作。
- 安装先决条件中的内容。
- 在右上角,选择 Install 并根据指南安装 OLM 和 Operator。
安装极狐GitLab Runner
-
获取用于注册 Runner 的令牌,您可以:
-
使用您的极狐GitLab 项目的 Runner 令牌创建 Secret 文件:
cat > gitlab-runner-secret.yml << EOF apiVersion: v1 kind: Secret metadata: name: gitlab-runner-secret type: Opaque # Only one of the following fields can be set. The Operator fails to register the runner if both are provided. # NOTE: runner-registration-token is deprecated and will be removed in GitLab 18.0. You should use runner-token instead. stringData: runner-token: REPLACE_ME # your project runner token # runner-registration-token: "" # your project runner secret EOF
-
运行以下命令,在您的集群中创建
secret
:kubectl apply -f gitlab-runner-secret.yml
-
创建自定义资源定义(CRD)文件并包含以下配置。
cat > gitlab-runner.yml << EOF apiVersion: apps.gitlab.com/v1beta2 kind: Runner metadata: name: gitlab-runner spec: gitlabUrl: https://gitlab.example.com buildImage: alpine token: gitlab-runner-secret EOF
-
运行以下命令以应用
CRD
文件:kubectl apply -f gitlab-runner.yml
-
运行以下命令确认极狐GitLab Runner 已安装:
kubectl get runner NAME AGE gitlab-runner 5m
-
Runner Pod 也应该可见:
kubectl get pods NAME READY STATUS RESTARTS AGE gitlab-runner-bf9894bdb-wplxn 1/1 Running 0 5m
为 OpenShift 安装其他版本的极狐GitLab Runner Operator
如果您不想使用 Red Hat OperatorHub 中提供的极狐GitLab Runner Operator 版本,您可以安装其他版本。
要安装特定版本,请创建此 catalogsource.yaml
文件并将 <VERSION>
替换为标签或特定提交:
v0.0.1-<COMMIT>
。例如:registry.gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/gitlab-runner-operator-catalog-source:v0.0.1-f5a798af
。apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
name: gitlab-runner-catalog
namespace: openshift-marketplace
spec:
sourceType: grpc
image: registry.gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/gitlab-runner-operator-catalog-source:<VERSION>
displayName: GitLab Runner Operators
publisher: GitLab Community
使用以下命令创建 CatalogSource
:
oc apply -f catalogsource.yaml
很快新的 Runner 应该就会在 OpenShift 集群的 OperatorHub 部分中出现。
在离线环境的 Kubernetes 集群上安装极狐GitLab Runner Operator
先决条件:
- 安装进程所需的镜像要可访问。
为了在安装期间拉取镜像,极狐GitLab Runner Operator 需要连接到公共互联网上的外部网络。如果您有 Kubernetes 集群安装在离线环境中,您可以使用本地镜像仓库或本地软件包仓库来拉取镜像或软件包。本地仓库必须提供以下镜像:
Image | Default value |
---|---|
GitLab Runner Operator image | registry.gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/gitlab-runner-operator:vGITLAB_RUNNER_OPERATOR_VERSION |
GitLab Runner and GitLab Runner Helper images | 这些镜像下载自极狐GitLab Runner UBI 镜像仓库并在安装 Runner 自定义资源时使用。版本取决于您的需求。 |
RBAC Proxy image | registry.gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/openshift4/ose-kube-rbac-proxy:v4.13.0 |
-
在离线环境中设置本地仓库或镜像仓库以托管下载的软件包和容器镜像,您可以使用:
- 一个 Docker 仓库用于容器镜像。
- 一个本地软件包仓库用于 Kubernetes 二进制文件和依赖项。
-
针对极狐GitLab Runner Operator v1.23.2 及以后版本,下载最新的
operator.k8s.yaml
文件:curl -O "https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner- operator/-/releases/vGITLAB_RUNNER_OPERATOR_VERSION/downloads/operator.k8s.yaml"
-
在
operator.k8s.yaml
文件中,更新一下 URLS:GitLab Runner Operator image
RBAC Proxy image
-
安装更新后的
operator.k8s.yaml
文件:kubectl apply -f PATH_TO_UPDATED_OPERATOR_K8S_YAML GITLAB_RUNNER_OPERATOR_VERSION = 1.23.2+
卸载 Operator
在 Red Hat OpenShift 上卸载
-
删除 Runner
CRD
:kubectl delete -f gitlab-runner.yml
-
删除
secret
:kubectl delete -f gitlab-runner-secret.yml
-
按照 Red Hat 文档中关于使用 Web 控制台从集群中删除 Operator的指南进行操作。
在 Kubernetes 上卸载:
-
删除 Runner
CRD
:kubectl delete -f gitlab-runner.yml
-
删除
secret
:kubectl delete -f gitlab-runner-secret.yml
-
删除 Operator 订阅:
kubectl delete subscription my-gitlab-runner-operator -n operators
-
查看安装的
CSV
的版本:kubectl get clusterserviceversion -n operators NAME DISPLAY VERSION REPLACES PHASE gitlab-runner-operator.v1.7.0 GitLab Runner 1.7.0 Succeeded
-
删除
CSV
:kubectl delete clusterserviceversion gitlab-runner-operator.v1.7.0 -n operators
配置
如果您想在 OpenShift 中配置极狐GitLab Runner,请参见在 OpenShift 上配置极狐GitLab Runner页面。