将 PetClinic 微服务部署到阿里云 K8s 环境|学习笔记

简介: 快速学习将 PetClinic 微服务部署到阿里云 K8s 环境

开发者学堂课程【阿里云 K8S 微服务部署案例将 PetClinic 微服务部署到阿里云 K8s 环境学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/668/detail/11576


将 PetClinic 微服务部署到阿里云 K8s 环境


内容介绍

一、将 Petclinic 微服务部署到阿里云 K8s 环境

二、微服务扩容和缩容演示


一、将Petclinic微服务部署到阿里云K8s环境

(一)图示为 Petclinic 阿里云 K8s 部署架构,然后会根据部署架构部署 Petclinic微服务到阿里云 K8s 环境

image.png

(二)部署演示

1、首先打开一个   进入到 Petclinic 微服务项目,里面有一个阿里云 K8s 部署文件。

输入 cd mydev/github/spring2go/spring-petclinic-msa

  1. 我们首先要部署 config,因为微服务中其他服务都依赖于这些配置,

输入 cd config 进入到 config 目录,里面有 Petclinic-config.yml 文件,首先看一下其内容。

image.png

这些为配置项,需要注意的是,我们要修改数据库连接字户串,应链接刚才创建的rds 数据库,由于已事先更新过,因此可以核对一遍。

在 rds 数据库控制管理台基本信息里可看到,经核对正确无误,数据库用户名为root,PASSWORD 为 Petclinic1234

image.png

  1. 接下来发布 Petclinic-config,首先核对本地 Kubectl 连接的哪个集群,

输入 Kubect l config current-context

得到

kubernetes-admin-c0d6a2a2dbc6d43838e7100550e54b8d9

config git:(master)x

可看出连接的是阿里云的集群,然后进行部署

输入 Kubect l apply-f .得到

configmap/petclinic-config created

config git:(master) x

输入 Kubect l  get cm 得到

此时 Petclinic-config 已部署

4、也可以通过阿里云的控制服务台,查看刚才的配置项,点进去后可看到相关配置项内容

image.png

5、输入 cd . . 退回到上级目录,里面有别的微服务发布文件

aliyun git:(master) X ls

config customers-svc.yml gateway-svc.yml vets-svc.yml visits-svc.yml  web-app·yml

aliyun git:(master) x

输入 Kubect l apply -f.,就可以将当前文件下所有的.yml 文件全部发布,可得到

输入 Kubect l get all

image.png

可看到 pod 目前处于创建状态,service 已创建,其中 gateway 的 TYRE 为LoadBalancer,

内部有 CLUSTER-IP,且在公网上绑定了一个 IP 106.15.172.146(阿里云分布给微服务的公网 IP)

image.png

然后是 deployment和replicaset,输入 get all 可以查看

6、其次还可用控制台查看应用集群概况,点到 default 空间

image.png

可看到都处于运行在状态,以 customers 为例点进去查看其日志

image.png

注意:

gateway 较为特殊,其类型为 LoadBalancer,所以在集群节点上内部暴露为8080,我们可通过外部端点,如公网 IP 和对外端口,可直接点击公网 IP 和外部端口对其访问

image.png

可以对 Petclinic 应用进行校验,OWNERS 可查询所有的数据,说明查询是没用问题的

image.png

点击进入后可随意添加一个宠物

image.png

添加完成后可重新进入进行查看,发现没有问题后,添加一个 visit,然后查看可发现仍没有问题。

image.png

7、可以再随意注册一个 Owner,完成后查看发现已注册成功

image.png

然后可通过 RDS 数据库进行校验,首先登录到数据库,用户名为 root,密码是Petclinic1234,登录成功后查看刚添加的 owner

image.png

可以看到刚添加的数据已经进入到 RDS 数据库,说明端口和端口是相通的

复习一遍整体架构:

通过浏览器已校验Petclinic应用是可以正常访问的,可以查询和添加数据,说明RDS数据库连接是正常的。我们是通过公网IP8080,说明ELB、gateway连接后台的微服务都是正常的。


二、微服务扩容和缩容演示

1.可以看到所有的容器组都是两个 POD,假如当两个 POD 不够,CPU 负载时,就可以对其进行扩容

2.扩容演示 (以 customers 为例)

首先回到 term,输入 get all,可看到每个服务都是两个 POD 且都在运行中,然后输入 code 并找到 customers service

可看到目前有两个 replicas,将其修改为5个,扩容添加一些 POD,修改后输入apply -f.发布,只针对 customers configured 做出了修改其他不变。

输入 get all 进行查看

image.png

可以看到5个 POD 已有3个在运行,还可以去阿里云控制台进行查看,此时5个POD 已经全部运行

image.png

  1. 缩容演示(当服务运行 CUP 资源利用率不高时,可进行缩容)操作与扩容演示相同

首先调整发布文件,将 replicas 从5改为3进行缩容,然后再输入 apply -f.发布,同样其他不会改变,然后输入 get all 进行查看,可以看到就剩3个 POD,也可以通过控制台进行查看容器组,也是剩3个在运行中,缩容完成。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
8月前
|
API 微服务
阿里云微服务引擎 MSE 及 API 网关 2025 年 9 月产品动态
阿里云微服务引擎 MSE 及 API 网关 2025 年 9 月产品动态。
877 70
|
9月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2025 年 9 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。
615 142
|
9月前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
2383 10
API 微服务
226 0
|
9月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
1044 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
9月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
934 3
|
10月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2025 年 8 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。
579 152
|
11月前
|
API
阿里云微服务引擎 MSE 及 API 网关 2025 年 7 月产品动态
阿里云微服务引擎 MSE 及 API 网关 2025 年 7 月产品动态
|
11月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2025 年 7 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。
|
11月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2025 年 6 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。

推荐镜像

更多