gitlab ci/cd+harbor+k8s实现一键部署(python项目)

这篇具有很好参考价值的文章主要介绍了gitlab ci/cd+harbor+k8s实现一键部署(python项目)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大致架构:

gitlab ci/cd+harbor+k8s实现一键部署(python项目),docker,gitlab,ci/cd,kubernetes

gitlab变量

gitlab ci/cd+harbor+k8s实现一键部署(python项目),docker,gitlab,ci/cd,kubernetes
gitlab ci/cd+harbor+k8s实现一键部署(python项目),docker,gitlab,ci/cd,kubernetes

使用 kaniko 构建 Docker 镜像
gitlab ci/cd+harbor+k8s实现一键部署(python项目),docker,gitlab,ci/cd,kubernetes

.gitlab-ci.yml

stages:
  - test
  - build
  - deploy

variables:
  DOCKERFILE: "Dockerfile2"
  CONTAINER_IMAGE: "archeros/workspace/platform"
  GIT_SSL_NO_VERIFY: "true"

before_script:
  - echo "Start building ..."

after_script:
  - echo "All job done"

test:
  stage: test
  script:
    - echo "Unit testing ..."

.build_template: &build_definition
  stage: build

  image:
    name: registry.harbor.com:441/mirror/gcr-io/kaniko-project/executor:debug
    entrypoint: [""]

  before_script:
    - echo "$CI_REGISTRY"
    - echo "$CI_REGISTRY_USER"
    - echo "$CI_REGISTRY_PASSWORD"
    - if [[ "$CI_REGISTRY_PORT" ]]; then REGISTRY_ADDRESS="$CI_REGISTRY:$CI_REGISTRY_PORT"; else REGISTRY_ADDRESS="$CI_REGISTRY"; fi
    - echo "$CI_REGISTRY_IP $CI_REGISTRY" >> /etc/hosts
    - echo "{\"auths\":{\"$REGISTRY_ADDRESS\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
    - echo "$CI_REGISTRY_CERTS" >> /kaniko/ssl/certs/ca-certificates.crt
    - echo "$(ls -l)"
    - echo "$(cat /etc/hosts)"



build_development:
  <<: *build_definition
  script:
    - echo "$CI_PROJECT_DIR"
    - echo "$CI_REGISTRY"
    - echo "$REGISTRY_ADDRESS"
    - echo "$CONTAINER_IMAGE"
    - echo "$CI_COMMIT_SHORT_SHA"
    - /kaniko/executor
      --context $CI_PROJECT_DIR
      --dockerfile $CI_PROJECT_DIR/$DOCKERFILE
      --destination $REGISTRY_ADDRESS/$CONTAINER_IMAGE:$CI_COMMIT_SHORT_SHA
      --destination $REGISTRY_ADDRESS/$CONTAINER_IMAGE:latest



  only:
    - test
  except:
    - tags

build_release:
  <<: *build_definition
  script:
    - /kaniko/executor
      --context $CI_PROJECT_DIR
      --dockerfile $CI_PROJECT_DIR/$DOCKERFILE
      --destination $REGISTRY_ADDRESS/$CONTAINER_IMAGE:$CI_COMMIT_TAG
      --destination $REGISTRY_ADDRESS/$CONTAINER_IMAGE:latest

  only:
    - tags

deploy_development:
  image:
    name: registry.harbor.com:441/mirror/docker-hub/bitnami/kubectl:latest
    entrypoint: [""]

  stage: deploy
  script:
    - echo "Deploy to development kubernetes"
    - if [[ "$CI_REGISTRY_PORT" ]]; then REGISTRY_ADDRESS="$CI_REGISTRY:$CI_REGISTRY_PORT"; else REGISTRY_ADDRESS="$CI_REGISTRY"; fi
    - echo "$REGISTRY_ADDRESS"
    - echo "$CONTAINER_IMAGE"
    - echo "$CI_COMMIT_SHORT_SHA"
    - kubectl set image deployment/workspace-platform workspace-platform=$REGISTRY_ADDRESS/$CONTAINER_IMAGE:$CI_COMMIT_SHORT_SHA
  environment:
    name: development
  only:
    - test
  except:
    - tags

如果仓库使用http

gitlab ci/cd+harbor+k8s实现一键部署(python项目),docker,gitlab,ci/cd,kubernetes文章来源地址https://www.toymoban.com/news/detail-545774.html

到了这里,关于gitlab ci/cd+harbor+k8s实现一键部署(python项目)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • gitlab+jenkins+harbor实现CI/CD(2)——初级

    git安装 jenkins主机上安装docker-ce 配置仓库证书 测试 创建项目 创建一个freestyle project 在jenkins主机获取密钥 在gitlab上传公钥 在jenkins上传私钥 输入测试命令后保存 点击立即构建 查看控制台输出 工作路径 构建触发器,定时触发 安装插件 gitlab和 Cloudbee docker 配置gitlab 在网络设

    2024年02月09日
    浏览(51)
  • 【CI/CD】Rancher & K8s

    Rancher 和 K8s 的关系是什么?K8s 全称为 Kubernetes,它是一个开源的,用于管理云平台中多个主机上的容器化的应用。而 Rancher 是一个完全开源的企业级多集群 Kubernetes 管理平台,实现了 Kubernetes 集群在混合云+本地数据中心的集中部署与管理,以确保集群的安全性,加速企业数

    2024年02月13日
    浏览(33)
  • Gitlab+Jenkins+Docker+Harbor+K8s集群搭建CICD平台(持续集成部署Hexo博客Demo)

    目录 涉及内容: 一、CICD服务器环境搭建 1、docker 环境安装 (1)、拉取镜像,启动并设置开机自启 (2)、配置docker加速器 2、安装并配置GitLab (1)、创建共享卷目录 (2)、创建 gitlab 容器 (3)、关闭容器修改配置文件 (4)、修改完配置文件之后。直接启动容器 (5)、相关

    2024年03月15日
    浏览(73)
  • kubeasz一键部署harbor、containerd运行时、高可用k8s(1.26.x)集群-Day 02

    如果自建机房,请把核心组件的机器分布到不同机柜中。 服务器可以是私有云的虚拟机或物理机,也可以是公有云环境的虚拟机环境,如果是公司托管的IDC环境,可以直 接将harbor和node节点部署在物理机环境,master节点、etcd、负载均衡等可以是虚拟机。 下面是我的学习环境

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

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

    2024年04月27日
    浏览(44)
  • k8s部署gin-vue-admin框架、gitlab-ci、jenkins pipeline 、CICD

    测试环境使用的jenkins 正式环境使用的gitlab-ci 创建yaml文件 启动服务 配置jenkins 配置nginx jenkins机器上的dockerfile yaml其它都一样除了svc,因为svc需要绑定slb地址 启动 配置dockerfile 配置nginx 结果图 原文

    2024年02月08日
    浏览(54)
  • 前端要了解的k8s、CI/CD、Devops概念

    简单的理解,k8s就是 docker容器集群的管理工具 。他将容器进行更多自动化的操作,自动创建、自动重启、自动扩容等,这个过程称为 容器编排 。 k8s 抽象了硬件资源 ,将N台物理机或云主机抽象成一个资源池,容器的调度交给K8S(例如CPU 不够用就调度到一台足够使用的机器

    2024年02月03日
    浏览(51)
  • Devops系列六(CI篇之jenkinsfile)jenkins将gitlab helm yaml和argocd 串联,自动部署到K8S

    上文我们说了pipeline,已为本文铺路不少,接下里就是将之串联起来。 先想说下,为什么是jenkinsfile, 因为jenkins job还支持pipeline方式。 这种方式,不建议实际使用,仅限于测试或调试groovy代码。 下面贴出来,我们的使用方式。好处是:采用分布式的思想,改动git上的jenkinsf

    2024年02月13日
    浏览(55)
  • Devops系列五(CI篇之pipeline libraray)jenkins将gitlab helm yaml和argocd 串联,自动部署到K8S

    本文是CI篇的上文,因为上一篇已经作了总体设计,就不再赘述,有需要的请看前文。 我们将演示,使用CI工具–jenkins,怎么和CD工具–argocd串联,重点是在Jenkins该怎么做。准备工作和argocd等相关事项,在前文已铺垫ok。 Jenkins,我们是使用k8s来部署的一个master-slave结构的集群

    2024年02月13日
    浏览(47)
  • 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权限 部署的报错:

    2024年02月12日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包