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

这篇具有很好参考价值的文章主要介绍了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权限
部署的报错:

Gitlab-第四天-CD到k8s集群的坑,云原生,gitlab,kubernetes,docker

helm的配置:
Gitlab-第四天-CD到k8s集群的坑,云原生,gitlab,kubernetes,docker

rbac要设置为true,他会自动创建一个根据你配置的 serviceAccountName,进行创建。
Gitlab-第四天-CD到k8s集群的坑,云原生,gitlab,kubernetes,docker 并且会根据你配置的rule配置的权限生成role-权限,
Gitlab-第四天-CD到k8s集群的坑,云原生,gitlab,kubernetes,docker

 上面这个配置是错的哈,不要看。看我下面的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名称:

 

Gitlab-第四天-CD到k8s集群的坑,云原生,gitlab,kubernetes,docker

这个sa你自己管理权限,就会覆盖你自己创建的sa。
注意权限问题,同时如果要用这个sa拉取仓库的配置,要配置secret:

Gitlab-第四天-CD到k8s集群的坑,云原生,gitlab,kubernetes,docker

 三、解决办法

 给权限撒~
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才能生效。文章来源地址https://www.toymoban.com/news/detail-657707.html

到了这里,关于Gitlab-第四天-CD到k8s集群的坑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k8s1.26.6 安装gitlab

    Gitlab官方提供了 Helm 的方式在 Kubernetes 集群中来快速安装,但是在使用的过程中发现 Helm 提供的 Chart 包中有很多其他额外的配置,所以我们这里使用自定义的方式来安装,也就是自己来定义一些资源清单文件。 Gitlab主要涉及到3个应用:Redis、Postgresql、Gitlab 核心程序,实际上

    2024年02月14日
    浏览(34)
  • gitlab 通过变量连接自建K8S

    KUBECONFIG: /etc/deploy/config 是一个变量定义,在gitlab的ci/cd 控制台配置 ,它指定了将要创建的文件路径。这个变量的目的是为了方便在后续的阶段中使用。 在 deploy 阶段的脚本中,可以看到以下命令: 这里的目的是将 $kube_config 的值进行 Base64 解码,并将解码后的内容写入到 /

    2024年02月08日
    浏览(30)
  • 纯 k8s 部署实现 gitlab CICD 保姆级教程

    ​ GitLab 具有三个需要进行持久化的目录,它们分别是 /etc/gitlab、/var/log/gitlab、/var/opt/gitlab,它们分别为 Gitlab 的运行提供配置、日志、数据的持久化。我们使用 nfs 来作为 GitLab 的持久化方式(当然,你也可以选择其他方式),为此,我们需要先安装 NFS,并且在 NFS 的配置文

    2024年02月06日
    浏览(36)
  • K8S + GitLab + Jenkins自动化发布项目实践(二)

    前置工作:已部署5节点k8s集群,并搭建了代码仓库和镜像仓库(GitLab + Harbor)。 主机名 IP 角色 k8s-master1 192.168.124.a k8s控制平面 k8s-master2 192.168.124.b k8s控制平面 k8s-master3 192.168.124.c k8s控制平面 k8s-worker1 192.168.124.d k8s工作节点 k8s-worker2 192.168.124.e k8s工作节点 harborgit 192.168.124.f

    2024年02月03日
    浏览(70)
  • 使用 Jenkins、Gitlab、Harbor、Helm、k8s 来实现流水线作业

    使用 Jenkins、Gitlab、Harbor、Helm、Kubernetes 来实现一个完整的持续集成和持续部署的流水线作业 开发人员提交代码到 Gitlab 代码仓库 通过 Gitlab 配置的 Jenkins Webhook 触发 Pipeline 自动构建 Jenkins 触发构建构建任务,根据 Pipeline 脚本定义分步骤构建 先进行代码静态分析,单元测试

    2024年04月27日
    浏览(31)
  • 【云原生】K8S集群

    Kubernetes 是通过 List-Watch 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。 (1)这里有三个 List-Watch,分别是 Controller Manager(运行在 Master),Scheduler(运行在 Master),kubelet(运行在 Node)。 他们在进程已启动就会监听(Watch)APIServer 发出来的

    2024年02月13日
    浏览(30)
  • 【云原生】k8s的集群调度

    Kubernetes 是通过 List-Watch 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。 用户是通过 kubectl 根据配置文件,向 APIServer 发送命令,在 Node 节点上面建立 Pod 和 Container。 APIServer 经过 API 调用,权限控制,调用资源和存储资源的过程,实际上还没

    2024年02月12日
    浏览(31)
  • 微服务 & 云原生:搭建 K8S 集群

    为节约时间和成本,仅供学习使用,直接在两台虚拟机上模拟 K8S 集群搭建 踩坑之旅 系统环境:CentOS-7-x86_64-Minimal-2009 镜像,为方便起见,直接在 root 账户下操作,现实情况最好不要这样做。 关闭防火墙 关闭 selinux 禁用 Swap 设置存储库 安装配置 Docker 安装 Docker Compose 最好使

    2024年02月16日
    浏览(40)
  • 【云原生】Kubeadmin安装k8s集群

    目录 前言: 一 环境部署 1.1 服务器部署功能 1.2 环境准备(所有节点) 二 安装docker(所有节点) 三 所有节点安装kubeadm,kubelet和kubectl 3.1 定义kubernetes源 3.2 开机自启kubelet 四 部署K8S集群 4.1 查看初始化需要的镜像 4.2 master节点上传压缩包 4.3 复制镜像和脚本到 node 节点

    2024年02月09日
    浏览(33)
  • 【云原生K8s】二进制部署单master K8s+etcd集群

                                                    mater节点 master01 192.168.190.10 kube-apiserver kube-controller-manager kube-scheduler etcd                                                 node节点 node01 192.168.190.20 kubelet kube-proxy docker (容器引擎) node02 192.168.190.30 kubelet kube-proxy do

    2024年02月14日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包