当前位置: 首页 > news >正文

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才能生效。

http://www.lryc.cn/news/126092.html

相关文章:

  • 【Java基础】Java对象的生命周期
  • 【每日一题】88. 合并两个有序数组
  • Navicat Premium连接sqlserve数据库失败?你需要注意这几点看看配置对了么?
  • 207、仿真-51单片机脉搏心率与血氧报警Proteus仿真设计(程序+Proteus仿真+配套资料等)
  • flutter 初识(开发体验,优缺点)
  • 校验vue prop的几种方式
  • vue+springboot 前后端分离 上传文件处理后再下载,并且传递参数
  • 【Linux操作系统】举例解释Linux系统编程中文件io常用的函数
  • Ubuntu和centos版本有哪些区别
  • Netty:ChannelHandler抛出异常,对应的channel被关闭
  • pytest结合 allure 打标记之的详细使用
  • 【linux】2 软件管理器yum和编辑器vim
  • Angular中的ActivatedRoute和Router
  • Layui精简版,快速入门
  • SSH远程Ubuntu教程
  • NPM与外部服务的集成(下)
  • Flask Web开发实战(狼书)| 笔记第1、2章
  • PHP利用PCRE回溯次数限制绕过某些安全限制实战案例
  • 读书笔记 |【项目思维与管理】➾ 顺势而动
  • 开发利器:接口代理和接口模拟工具
  • MAVEN利器:一文带你了解MAVEN以及如何配置
  • 解决 adb install 错误INSTALL_FAILED_UPDATE_INCOMPATIBLE
  • 学习Vue:Event Bus 与 Provide/Inject
  • Java 工具类之JSON key根据ASCII排序
  • 深兰科技提出新多模态谣言监测模型,刷新世界纪录
  • 【从零学习python 】33.装饰器的作用(二)
  • 【自动电压调节器】无功功率控制的终端电压控制研究(Simulink)
  • 比ChatGPT更强的星火大模型V2版本发布!
  • Character Animation With Direct3D 读书笔记
  • SpringBoot之HandlerInterceptor拦截器的使用