首页 > 解决方案 > 将 Gitlab 与 Kubernetes 连接起来

问题描述

嗨,我使用 Gitlab 我想将我制作的应用程序容器化并自动部署,所以我正在尝试在 GKE 上使用 Kubernetes。

我正在关注Gitlab 关于链接集群的文档

我试图通过 K8S Dashboard 创建秘密(创建,粘贴 yaml)

apiVersion: v1
kind: Secret
metadata:
  name: gitlab
  annotations:
    kubernetes.io/service-account.name: gitlab
type: kubernetes.io/service-account-token

按下Upload它,它就吞下了它,没有错误没有新的秘密。

然后我尝试通过 kubectl添加它:

kubectl create -f /tmp/gitlab.yaml它打印secret "gitlab" created 但它没有

我究竟做错了什么?

标签: kubernetesgitlabgoogle-kubernetes-engine

解决方案


kind: Secret

type: kubernetes.io/service-account-token

我看到这里发生了什么:您正在尝试手动创建一个ServiceAccount令牌,而这些令牌被设计为由 kubernetes 管理,而不是您,因为该令牌包含一个格式正确且经过加密签名的 JWT。

除此之外,创建一个不包含秘密数据的服务帐户令牌是愚蠢的Secret(总是包含 3 位数据:ca.crtnamespacetoken)。然后,即使您确实Secret使用实际的 JWT 填充了它——这会很奇怪——您还需要包含kubernetes.io/service-account.uid:包含 UUID 的注释gitlab``ServiceAccount(您可以通过 找到kubectl get -o json sa gitlab | jq -r .metadata.uid

理性的人可能会对这是一个错误还是一个不会伤害任何东西的疯狂边缘情况有所不同。我认为这相当于INSERT INTO users;报告OK;当然,它没有插入任何东西,但是这个命令无论如何都是胡说八道,所以很难真正对事情感到兴奋。


推荐阅读