云效发布不同租户 k8s 应用

简介: 开发环境是开发测试人员使用的应用环境,除了应用运行依赖的云产品,还需要购买开发人员使用的云产品和运维产品。

1. 需求

     开发环境是开发测试人员使用的应用环境,除了应用运行依赖的云产品,还需要购买开发人员使用的云产品和运维产品。

主要有:

  • 云效持续集成
  • maven  私有仓库
  • gitlib 代码仓库
  • Node模块仓库
  • 镜像仓库购买
  • 开发环境应用运行环境

2.云效与相关配置

    2.1 maven 代码仓库:

    私有仓库配置:

  1. maven 工具的 profiles 节点,增加私有仓库的 repository; 
  2. settings 文件加入代码库根目录或者根目录下 pom.xml 增加 repository节点,指向私有仓库。

上传私有仓库:

使用migrate-local-repo-tool.jar(来自开源工具) 上传:

$ java -jar migrate-local-repo-tool.jar -cd "/$HOME/.m2/repository/" -t "http://10.21.11.11/repository/releases/" -u admin -p admin123

 

踩坑与优化:

  • 避免使用上传单个文件方式,该方式上传 jar的话,不要使用默认的生成 pom.xml 方式,此方式容易覆盖原来已有 pom.xml 导致依赖问题。
  • 开发人员使用migrate-local-repo-tool.jar 批量上传的时候,可能会把开发人员本地的 老版本的 jar 包直接覆盖仓库的对应 jar,导致其它使用到该依赖 jar 包的系统打包时候,出现故障。

优化:

开发人员使用通用依赖 Jar 使用正式版本,避免使用 snapshot 版本;

优化改造migrate-local-repo-tool.jar 工具,其来自以下开源代码,可以通过修改代码,在运维平台开发对比上传模块,首先比对开发人员本地和线上私有仓库依赖包,经过用户在运维平台确认后发布。

      https://github.com/simpligility/maven-repository-tools/tree/master/maven-repository-provisioner

    2.2 gitlib 代码库:

本地弹内代码迁移:

  1. 从原弹内代码地址克隆一份裸版本库到本地;
    git clone --bare  http://gitlab.xxx-inc.com/****/****.git
  2. 云效上建立项目和应用,并建立git仓库;
  3. 将本地下载的裸版本库 push到新建的政务云 git仓库;
    1. 清理不需要保存到云效的原有分支,批量删除本地分支:
      git branch -a | grep  'release' | xargs git branch -D
      git tag | xargs -I {} git tag -d {}​
    2. 上传本地代码库
      git push --mirror https://xxx.code.aliyun.com/3333-zzzz/*****.git​
    3. 这时可以看到完整的原弹内代码已经迁移到了政务云仓库,并保留了弹内所有的变更提交记录。
  4. 下载政务云到本地开发机器:
git clone -b myTag https://ttt.code.aliyun.com/3333-zzzz/*****.git

    2.3 云效配置

        1. 【云效企业设置】-->【容器服务账号】-->【kubernetes 集群证书导入】-->【手动导入证书】

               从建立的 k8s 集群获取证书信息,导入,注意:k8s 集群的 apiserver 的 公网 slb 访问控制增加云效 IP 段。

       2.【云效企业设置】-->【容器服务账号】-->【docker 镜像账户管理】

              绑定经常仓库的账户与密码,云效通过 docker login 登录镜像仓库来拉取镜像。

       3. 应用 环境配置:

  • 部署方式为 kubernetes 部署,目标集群选择集群证书导入中显示的集群,设置相应命名空间等,配置发布环境
  • 建立流水线,发布应用到各租户的各个环境。

踩坑与优化:

     kubernetes 的命名空间和 Service 尽量使用容器服务控制台建立或者修改为规范命名和设置,如果使用云效生成是默认的模板配置,其设置与生产环境不怎么符合。

3.镜像仓库配置

       镜像仓库有条件的话,尽量采购企业版实例,企业版实例有完整的安全设置和访问控制。

      只要设置有:

          命名空间,设置为私有,授权给专属镜像仓库登录的阿里云子账号;

          设置访问凭证(密码)

          命名空间下的镜像子仓库,云效在 docker push 时会自动建立为私有的镜像仓库

          企业版实例有安全扫描,安全访问控制设置等功能,配置镜像访问控制到办公区域。

 

4.开发环境 Kubernetes

         根据需求建立1-多个 k8s 集群,k8s 集群会默认建立apiserver 的 SLB,默认名称为 K8sMasterSlbIntranet。

        如果需要云效直接发布到 kubernetes 集群,需要 kubernetes 集群必须建立公网 SLB 提供给云效访问,可以设立访问控制,只允许云效的 IP 访问。

 

 

相关实践学习
通过ACR快速部署网站应用
本次实验任务是在云上基于ECS部署Docker环境,制作网站镜像并上传至ACR镜像仓库,通过容器镜像运行网站应用,网站运行在Docker容器中、网站业务数据存储在Mariadb数据库中、网站文件数据存储在服务器ECS云盘中,通过公网地址进行访问。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
8月前
|
传感器 人工智能 监控
通义灵码智能体模式在企业级开发中的应用:以云效DevOps自动化流程为例
通义灵码智能体模式具备语义理解、任务闭环与环境感知能力,结合云效DevOps实现CI/CD异常修复、测试覆盖与配置合规检查,大幅提升研发效率与质量。
384 0
|
5月前
|
运维 Kubernetes 测试技术
应用多、交付快,研发运维怎么管?看云效+SAE 如何一站式破局
通过在云效中创建 SAE 服务连接并关联集群,团队可将应用环境直接部署到 SAE,实现从代码提交、镜像构建到 SAE 部署的自动化流水线。该集成打通了研发与运维的壁垒,特别适用于应用数量多、团队规模大、交付节奏快的组织,助力企业实现敏捷、可靠的持续交付。
|
缓存 Kubernetes Docker
GitLab Runner 全面解析:Kubernetes 环境下的应用
GitLab Runner 是 GitLab CI/CD 的核心组件,负责执行由 `.gitlab-ci.yml` 定义的任务。它支持多种执行方式(如 Shell、Docker、Kubernetes),可在不同环境中运行作业。本文详细介绍了 GitLab Runner 的基本概念、功能特点及使用方法,重点探讨了流水线缓存(以 Python 项目为例)和构建镜像的应用,特别是在 Kubernetes 环境中的配置与优化。通过合理配置缓存和镜像构建,能够显著提升 CI/CD 流水线的效率和可靠性,助力开发团队实现持续集成与交付的目标。
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
702 265
|
12月前
|
Kubernetes 持续交付 开发工具
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
513 2
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
640 60
|
11月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
332 0
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
12月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
254 1
|
12月前
|
Kubernetes 持续交付 开发工具
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
|
存储 监控 对象存储
ACK容器监控存储全面更新:让您的应用运行更稳定、更透明
介绍升级之后的ACK容器监控体系,包括各大盘界面展示和概要介绍。

推荐镜像

更多