Gitlab runner with Kubernetes executor 本身是pod时如何创建pods?
How does Gitlab runner with Kubernetes executor create pods when it is a pod itself?
嘿,我是 gitlab CI/CD 的新手,我有点困惑。
我有一个 Kubernetes 集群连接到一个 Gitlab 实例到 运行 CI/CD 管道。
有一个带有 kubernetes 执行程序的 gitlab 运行ner,据我所知,这意味着有一个 pod 运行s 管道。
kubectl get pods -n gitlab-runner
的外观支持(现在还有一些其他问题,但通常是 1/1 running
):
NAMESPACE NAME READY STATUS RESTARTS AGE
gitlab-runner gitlab-runner-gitlab-runner-6b7bf4d766-9t4k6 0/1 Running 248 29d
CI/CD 管道调用 kubectl apply -f [...]
等命令来创建新部署和 pods。
但为什么会这样呢?
如果管道命令是 运行 pod,那么修改主机集群配置应该是不可能的,对吧?
我认为容器化的重点是客人不能修改主机。
我的逻辑错误在哪里?
I thought the whole point of containerization is that guests can't modify the host.
您忽略了 the serviceAccount
,它 可选地 注入到每个 Pod 中,那些 ServiceAccount
对象可以绑定到 Role
或 ClusterRole
反对选择性地 g运行t 他们对 kubernetes API 进行操作的特权,它在众所周知的 DNS 地址 https://kubernetes.default.svc.cluster.local
[=17= 上公开 in-cluster ]
所以,是的,他们大多无法修改 host 但 kubernetes 是一个编排引擎,因此 GitLab runner 可以 request一个新的 Pod 在集群中启动,只要 GitLab 运行器具有正确的 kubernetes 凭据,就会像用户从 kubectl 请求相同的操作一样认真对待
另一种看待这个问题的方法是,如果你 运行 在 kubernetes 的 gitlab-runner 之外 ,你会取得同样的成功,但提供它集群的凭据,然后您就会遇到 运行 现有集群基础架构之外的另一个 VM 的问题,随之而来的是
总是带来的所有维护负担
嘿,我是 gitlab CI/CD 的新手,我有点困惑。
我有一个 Kubernetes 集群连接到一个 Gitlab 实例到 运行 CI/CD 管道。 有一个带有 kubernetes 执行程序的 gitlab 运行ner,据我所知,这意味着有一个 pod 运行s 管道。
kubectl get pods -n gitlab-runner
的外观支持(现在还有一些其他问题,但通常是 1/1 running
):
NAMESPACE NAME READY STATUS RESTARTS AGE
gitlab-runner gitlab-runner-gitlab-runner-6b7bf4d766-9t4k6 0/1 Running 248 29d
CI/CD 管道调用 kubectl apply -f [...]
等命令来创建新部署和 pods。
但为什么会这样呢?
如果管道命令是 运行 pod,那么修改主机集群配置应该是不可能的,对吧?
我认为容器化的重点是客人不能修改主机。
我的逻辑错误在哪里?
I thought the whole point of containerization is that guests can't modify the host.
您忽略了 the serviceAccount
,它 可选地 注入到每个 Pod 中,那些 ServiceAccount
对象可以绑定到 Role
或 ClusterRole
反对选择性地 g运行t 他们对 kubernetes API 进行操作的特权,它在众所周知的 DNS 地址 https://kubernetes.default.svc.cluster.local
[=17= 上公开 in-cluster ]
所以,是的,他们大多无法修改 host 但 kubernetes 是一个编排引擎,因此 GitLab runner 可以 request一个新的 Pod 在集群中启动,只要 GitLab 运行器具有正确的 kubernetes 凭据,就会像用户从 kubectl 请求相同的操作一样认真对待
另一种看待这个问题的方法是,如果你 运行 在 kubernetes 的 gitlab-runner 之外 ,你会取得同样的成功,但提供它集群的凭据,然后您就会遇到 运行 现有集群基础架构之外的另一个 VM 的问题,随之而来的是
总是带来的所有维护负担