用于 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入门和安装