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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 快速学习将 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个在运行中,缩容完成。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
23小时前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
42 24
|
2天前
|
Kubernetes 算法 调度
阿里云 ACK FinOps成本优化最佳实践
本文源自2024云栖大会梁成昊演讲,讨论了成本优化策略的选择与实施。文章首先介绍了成本优化的基本思路,包括优化购买方式、调整资源配置等基础策略,以及使用弹性、资源混部等高级策略。接着,文章详细探讨了集群优化和应用优化的具体方法,如使用抢占式实例降低成本、通过资源画像识别并优化资源配置,以及利用智能应用弹性策略提高资源利用效率。
|
2天前
|
弹性计算 调度 数据中心
阿里云 ACK One 注册集群云上弹性:扩展业务新利器
随着企业数字化转型深入,传统IDC数据中心因物理容量限制,难以实现动态扩容,缺乏弹性能力。阿里云ACK One注册集群凭借其高度灵活性和丰富资源选择,成为解决此问题的最佳方案。通过与阿里云资源的整合,ACK One不仅实现了计算资源的按需扩展,提高了资源利用率,还通过按需付费模式降低了成本,使企业能够更高效地应对业务增长和高峰需求。
|
2天前
|
运维 Kubernetes Serverless
阿里云Argo X K8s玩转工作流引擎,实现大规模并行计算
本文基于2024云栖大会田双坤的演讲,介绍了Kubernetes作为云原生操作系统的角色及其在各类任务中的应用,重点探讨了Argo Workflows在Kubernetes上编排并行任务的能力。面对自建Argo Workflows的挑战,如稳定性、成本和安全性等问题,阿里巴巴云推出了全托管的Serverless Argo工作流,提供全托管、免运维、可观测和易集成的特点,显著提升了任务编排的效率和稳定性。适用于数据处理、科学计算、自动驾驶仿真等多个领域。
|
2天前
|
Kubernetes 容灾 调度
阿里云 ACK 高可用稳定性最佳实践
本文整理自2024云栖大会刘佳旭的演讲,主题为《ACK高可用稳定性最佳实践》。文章探讨了云原生高可用架构的重要性,通过Kubernetes的高可用案例分析,介绍了ACK在单集群高可用架构设计、产品能力和最佳实践方面的方法,包括控制面和数据面的高可用策略、工作负载高可用配置、企业版容器镜像服务高可用配置等内容,旨在帮助企业构建更加可靠和高效的应用运行环境。
|
2天前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
本文源自2024云栖大会苏雅诗的演讲,探讨了K8s集群业务为何需要灾备及其重要性。文中强调了集群与业务高可用配置对稳定性的重要性,并指出人为误操作等风险,建议实施周期性和特定情况下的灾备措施。针对容器化业务,提出了灾备的新特性与需求,包括工作负载为核心、云资源信息的备份,以及有状态应用的数据保护。介绍了ACK推出的备份中心解决方案,支持命名空间、标签、资源类型等维度的备份,并具备存储卷数据保护功能,能够满足GitOps流程企业的特定需求。此外,还详细描述了备份中心的使用流程、控制台展示、灾备难点及解决方案等内容,展示了备份中心如何有效应对K8s集群资源和存储卷数据的灾备挑战。
|
23天前
|
Kubernetes 监控 Cloud Native
Kubernetes集群的高可用性与伸缩性实践
Kubernetes集群的高可用性与伸缩性实践
58 1
|
2月前
|
JSON Kubernetes 容灾
ACK One应用分发上线:高效管理多集群应用
ACK One应用分发上线,主要介绍了新能力的使用场景
|
2月前
|
Kubernetes 持续交付 开发工具
ACK One GitOps:ApplicationSet UI简化多集群GitOps应用管理
ACK One GitOps新发布了多集群应用控制台,支持管理Argo CD ApplicationSet,提升大规模应用和集群的多集群GitOps应用分发管理体验。
|
2月前
|
Kubernetes Ubuntu Linux
Centos7 搭建 kubernetes集群
本文介绍了如何搭建一个三节点的Kubernetes集群,包括一个主节点和两个工作节点。各节点运行CentOS 7系统,最低配置为2核CPU、2GB内存和15GB硬盘。详细步骤包括环境配置、安装Docker、关闭防火墙和SELinux、禁用交换分区、安装kubeadm、kubelet、kubectl,以及初始化Kubernetes集群和安装网络插件Calico或Flannel。
194 4