我一个写Java的,怎么就开始玩K8s和Jenkins了?! - 努力的小雨

💡 原文中文,约8900字,阅读约需22分钟。
📝

内容提要

最近我负责将私有服务器上的项目迁移到云端,并实现Jenkins一键部署。过程中涉及Docker镜像仓库和Kubernetes管理,需注意环境配置和网络通畅。虽然起初不熟悉,但逐步摸索后发现逻辑并不复杂,希望能帮助其他开发者。

🎯

关键要点

  • 任务是将私有服务器上的项目迁移到云端,并实现Jenkins一键部署。
  • 之前的发布流程简单,主要通过文件传输替换服务器上的文件。
  • 老板希望上线流程自动化,减少人工操作。
  • 每家公司的基础架构环境和要求不同,内容仅供新手参考。
  • ACR是私有Docker镜像仓库,用于存储公司的Docker镜像。
  • ACK是阿里云的Kubernetes托管服务,简化了集群管理。
  • 命名空间用于管理Docker镜像和服务,类似于文件夹。
  • 无状态节点不保存数据,有状态节点支持数据持久化。
  • 容器组是多个相同容器的集合,便于管理和监控。
  • 服务有多种类型,包括ClusterIP、NodePort和LoadBalancer。
  • Ingress用于根据域名/路径将流量分配到不同的后端服务。
  • 配置项用于管理Java项目的application配置文件。
  • 保密字典用于存储敏感信息,如数据库密码和镜像仓库认证信息。
  • 存储资源在云环境中需申请并绑定到服务,不能直接使用本地目录。
  • 环境配置由甲方负责,提供相关的登录信息和连接信息。
  • 跳板机用于操作云上的ACR和ACK,需申请防火墙规则确保网络通畅。
  • 跳板机需要预置docker和kubectl环境,确保可以正常操作。
  • Jenkins部署使用docker容器,需配置账密信息以操作git、acr、ack。
  • 项目结构中不包含dockerfile和k8s文件,需单独创建并配置。
  • 从私有服务器迁移到云端部署的过程逻辑不复杂,关键在于理清流程和配置。
➡️

继续阅读