用于 kubernetes 服务的 gitlab 管道中的证书和服务令牌

Certicate and Service token in gitlab pipeline for kubernetes service

我是新手,我正在尝试在 gitlab 上配置我的项目,以便能够将其与 kubernetes 集群基础设施管道集成。 在配置 gitlab 时,我要求提供证书和令牌。由于 kuberntes 部署在 azure 上,我如何 create/retrieve 证书和所需的令牌? 它可能指的是 kuberntes 服务中的哪个用户/秘密?

您可以使用以下步骤获取 CA 证书 的默认值:

CA证书:

CA 证书 只不过是我们在配置文件中用于对集群进行身份验证的 Kubernetes 证书。

  1. 连接到 AKS 群集,az aks get-credentials — resource-group <RG> — name <KubeName>
  2. 运行 kubectl get secrets ,在你 运行 命令输出后你会 获取一个默认的代币名称,你可以复制这个名称。
  3. 运行 kubectl get secret <secret name> -o jsonpath="{['data']['ca\.crt']}" | base64 --decode 得到 certificate ,您可以复制证书并将其用于设置 运行纳尔.

输出:

令牌:

令牌将属于具有集群管理员权限的服务帐户Gitlab将使用它来访问 AKS cluster ,因此您可以创建一个 新的管理服务帐户 如果之前没有使用以下步骤创建:

  1. 创建包含以下内容的 Yaml 文件:

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: gitlab-admin
      namespace: kube-system
    ---
    apiVersion: rbac.authorization.k8s.io/v1beta1
    kind: ClusterRoleBinding
    metadata:
      name: gitlab-admin
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
      - kind: ServiceAccount
        name: gitlab-admin
        namespace: kube-system
    
  2. 运行 kubectl apply -f <filename>.yaml申请绑定服务 帐户到群集。

  3. 运行 kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep gitlab-admin | awk '{print }')获取token 对于我们在文件中创建的 Gitlab Admin 并与 上一步中的聚类。您可以复制令牌值并将其用于 运行ner 设置 .

输出: