云效发布不同租户 k8s 应用

本文涉及的产品
云效 DevOps 流水线,基础版人数 不受限
云效 DevOps 代码管理,基础版人数 不受限
访问控制,不限时长
简介: 开发环境是开发测试人员使用的应用环境,除了应用运行依赖的云产品,还需要购买开发人员使用的云产品和运维产品。

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 访问。

 

 

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
1天前
|
Kubernetes 持续交付 开发工具
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
|
29天前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
117 21
|
1月前
|
存储 监控 对象存储
ACK容器监控存储全面更新:让您的应用运行更稳定、更透明
介绍升级之后的ACK容器监控体系,包括各大盘界面展示和概要介绍。
|
1月前
|
缓存 Kubernetes Docker
GitLab Runner 全面解析:Kubernetes 环境下的应用
GitLab Runner 是 GitLab CI/CD 的核心组件,负责执行由 `.gitlab-ci.yml` 定义的任务。它支持多种执行方式(如 Shell、Docker、Kubernetes),可在不同环境中运行作业。本文详细介绍了 GitLab Runner 的基本概念、功能特点及使用方法,重点探讨了流水线缓存(以 Python 项目为例)和构建镜像的应用,特别是在 Kubernetes 环境中的配置与优化。通过合理配置缓存和镜像构建,能够显著提升 CI/CD 流水线的效率和可靠性,助力开发团队实现持续集成与交付的目标。
|
2月前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
本文源自2024云栖大会苏雅诗的演讲,探讨了K8s集群业务为何需要灾备及其重要性。文中强调了集群与业务高可用配置对稳定性的重要性,并指出人为误操作等风险,建议实施周期性和特定情况下的灾备措施。针对容器化业务,提出了灾备的新特性与需求,包括工作负载为核心、云资源信息的备份,以及有状态应用的数据保护。介绍了ACK推出的备份中心解决方案,支持命名空间、标签、资源类型等维度的备份,并具备存储卷数据保护功能,能够满足GitOps流程企业的特定需求。此外,还详细描述了备份中心的使用流程、控制台展示、灾备难点及解决方案等内容,展示了备份中心如何有效应对K8s集群资源和存储卷数据的灾备挑战。
|
2月前
|
人工智能 Kubernetes 安全
赋能加速AI应用交付,F5 BIG-IP Next for Kubernetes方案解读
赋能加速AI应用交付,F5 BIG-IP Next for Kubernetes方案解读
82 13
|
3月前
|
Kubernetes 监控 安全
容器化技术:Docker与Kubernetes的实战应用
容器化技术:Docker与Kubernetes的实战应用
|
3月前
|
Java Docker 微服务
利用Docker容器化部署Spring Boot应用
利用Docker容器化部署Spring Boot应用
72 0
|
3月前
|
存储 运维 Kubernetes
K8s业务迁移最佳实践: 灵活管理资源备份与调整策略,实现高效简便的应用恢复
在当今快速变化的云原生领域,Kubernetes(K8s)集群的运维面临着诸多挑战,其中灾备与业务迁移尤为关键。ACK备份中心支持丰富的资源调整策略,在数据恢复阶段即可自动适配目标集群环境,确保业务无缝重启。
|
3月前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?

热门文章

最新文章