0

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

在此处输入图像描述

4

1 回答 1

2

您可以使用以下步骤获取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获取证书,您可以复制证书并在设置运行器时使用。

输出:

在此处输入图像描述

令牌:

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

  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 $1}')以获取我们在文件中创建的 Gitlab Admin 的令牌,并在上一步中与集群绑定。您可以复制令牌值并在运行器设置中使用它。

输出:

在此处输入图像描述

于 2021-12-14T05:44:24.950 回答