Gitlab-第四天-CD到k8s集群的坑

一、.gitlab-ci.yml #CD到k8s集群的

stages:

  • deploy-test

build-image-deploy-test:

stage: deploy-test

image: bitnami/kubectl:latest # 使用一个包含 kubectl 工具的镜像

tags:

  • k8s

script:

  • ls -al

  • kubectl apply -f deployment.yaml # 根据实际情况替换为你的 Kubernetes 部署配置文件路径

二、部署时的RBAC权限

部署的报错:

helm的配置:

rbac要设置为true,他会自动创建一个根据你配置的 serviceAccountName,进行创建。
并且会根据你配置的rule配置的权限生成role-权限,

上面这个配置是错的哈,不要看。看我下面的role:

验证:

kubectl get sa -n gitlab-runer

kubectl get role -n gitlab-runer

kubectl get rolebinding -n gitlab-runer

他运行默认会用default,你可以再helm的values.yaml中定义runer使用的sa名称:

这个sa你自己管理权限,就会覆盖你自己创建的sa。

注意权限问题,同时如果要用这个sa拉取仓库的配置,要配置secret:

三、解决办法

给权限撒~

rules:

  • apiGroups:

  • ""

resources:

  • events

  • configmaps

  • pods

  • pods/attach

  • secrets

  • services

  • deployments

  • pods/exec

verbs:

  • apply

  • get

  • list

  • watch

  • create

  • patch

  • update

  • delete

  • apiGroups:

  • apps

resources:

  • deployments

verbs:

  • apply

  • create

  • patch

  • delete

  • list

  • watch

  • apiGroups:

  • apps

resources:

  • deployments

verbs:

  • get

  • list

kind: List

metadata:

resourceVersion: ""

上面是正确的role配置,特别是你要部署的工作负责是deployments,你需要list和get权限。

上面的role配置,你可以edit修改你的role的yaml进行覆盖即可,不用重启pod.
同时需要你修改了runer的配置,通过helm配置时要重启pod才能生效。

相关推荐
Alsn863 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
java_cj3 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
程序员老赵3 天前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops
杨浦老苏3 天前
轻量级Docker仪表板Servedash
运维·docker·监控·群晖·仪表板
正经教主3 天前
【docker基础】 第八周:容器监控与应用更新策略
运维·docker·容器
kiros_wang3 天前
Docker 使用完整指南
运维·docker·容器
正经教主3 天前
【docker基础】第九周:Docker安全与镜像优化
运维·docker·容器
qq_452396233 天前
第十三篇:《K8s 安全基础:RBAC、ServiceAccount、Pod Security》
java·安全·kubernetes
CodeStats3 天前
【虚拟机】 从 CPU 指令到虚拟机隔离:虚拟机就是一个“模拟了完整硬件的普通进程”
java·docker
ai产品老杨3 天前
突破安防碎片化:基于 Docker 与边缘计算的 AI 视频智能化中台,如何通过 GB28181/RTSP 统一接入与全套源码交付实现二次开发自由?
人工智能·docker·边缘计算