将 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
相关文章
|
3月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
422 2
|
3月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
493 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
9月前
|
存储 Kubernetes 开发工具
使用ArgoCD管理Kubernetes部署指南
ArgoCD 是一款基于 Kubernetes 的声明式 GitOps 持续交付工具,通过自动同步 Git 存储库中的配置与 Kubernetes 集群状态,确保一致性与可靠性。它支持实时同步、声明式设置、自动修复和丰富的用户界面,极大简化了复杂应用的部署管理。结合 Helm Charts,ArgoCD 提供模块化、可重用的部署流程,显著减少人工开销和配置错误。对于云原生企业,ArgoCD 能优化部署策略,提升效率与安全性,是实现自动化与一致性的理想选择。
604 0
|
5月前
|
存储 监控 Shell
SkyWalking微服务监控部署与优化全攻略
综上所述,虽然SkyWalking的初始部署流程相对复杂,但通过一步步的准备和配置,可以充分发挥其作为可观测平台的强大功能,实现对微服务架构的高效监控和治理。尽管未亲临,心已向往。将一件事做到极致,便是天分的展现。
|
8月前
|
存储 Kubernetes 异构计算
Qwen3 大模型在阿里云容器服务上的极简部署教程
通义千问 Qwen3 是 Qwen 系列最新推出的首个混合推理模型,其在代码、数学、通用能力等基准测试中,与 DeepSeek-R1、o1、o3-mini、Grok-3 和 Gemini-2.5-Pro 等顶级模型相比,表现出极具竞争力的结果。
|
9月前
|
存储 Kubernetes 监控
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
896 33
|
9月前
|
Kubernetes 开发者 Docker
集群部署:使用Rancher部署Kubernetes集群。
以上就是使用 Rancher 部署 Kubernetes 集群的流程。使用 Rancher 和 Kubernetes,开发者可以受益于灵活性和可扩展性,允许他们在多种环境中运行多种应用,同时利用自动化工具使工作负载更加高效。
521 19
|
9月前
|
存储 测试技术 对象存储
使用容器服务ACK快速部署QwQ-32B模型并实现推理智能路由
阿里云最新发布的QwQ-32B模型,通过强化学习大幅度提升了模型推理能力。QwQ-32B模型拥有320亿参数,其性能可以与DeepSeek-R1 671B媲美。
|
9月前
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
342 0
课时5:阿里云容器服务:最原生的集成Docker和云服务
|
10月前
|
弹性计算 监控 持续交付
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
250 0

热门文章

最新文章

推荐镜像

更多