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

Posted

技术标签:

【中文标题】用于 kubernetes 服务的 gitlab 管道中的证书和服务令牌【英文标题】:Certicate and Service token in gitlab pipeline for kubernetes service 【发布时间】:2022-01-16 21:43:34 【问题描述】:

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

【问题讨论】:

如果回答对您有帮助,请Accept it as an Answer,以便遇到相同问题的其他人可以找到此解决方案并解决他们的问题。 【参考方案1】:

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

CA 证书:

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

    连接到 AKS 群集,az aks get-credentials — resource-group <RG> — name <KubeName> 运行kubectl get secrets,在输出中运行命令后,您将 获取默认令牌名称,您可以复制名称。 运行kubectl get secret <secret name> -o jsonpath="['data']['ca\.crt']" | base64 --decode 获取 证书,您可以复制证书并将其用于设置 跑步者。

输出:

令牌:

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

    创建一个包含以下内容的 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
    

    运行kubectl apply -f <filename>.yaml 应用绑定服务 帐户到集群。

    运行kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep gitlab-admin | awk 'print $1') 获取令牌 对于我们在文件中创建并绑定的 Gitlab Admin 上一步中的集群。您可以复制令牌值并将其用于 跑步者设置。

输出:

【讨论】:

以上是关于用于 kubernetes 服务的 gitlab 管道中的证书和服务令牌的主要内容,如果未能解决你的问题,请参考以下文章

云原生(三十七) | Kubernetes篇之Gitlab入门和安装

Kubernetes中gitlab的一次迁移

GitLab 11.6发布,支持Serverless服务加速整合Kubernetes

Kubernetes中gitlab的一次迁移

Kubernetes中gitlab的一次迁移

kubernetes(k8s)Gitlab CI Runner 的安装