课时2:Kubernetes 应用的自动水平扩容|学习笔记(一)

简介: 快速学习课时2:Kubernetes 应用的自动水平扩容

开发者学堂课程【Kubernetes 云原生管理实践课时2:Kubernetes 应用的自动水平扩容】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/293/detail/3439


课时2:Kubernetes 应用的自动水平扩容

 

内容介绍:

一、云原生架构的特点

二、Open Application Model

三、KEDA

 

Kubernetes HPA扩展应用,不是原生Kubernetes HPA也不是其它的技术是基于Kubernetes HPA的扩展,主要介绍的是关于oam开放应用模型。

 

一、云原生架构的特点

1、阿里云在上个月发表云原生架构的白皮书,里面特别提到云原生架构跟传统的应用架构的不同,作为传统的应用在云原生的眼光看有三部分的内容,一部分是核心的业务代码,这部分应用一直都有改变,比如以前是放在一起,单一应用慢慢变成分布式应用,又有微服务的架构,但是都针对于业务代码本身做的拆解,还有一部分是第三方软件的依赖性,比如用数据库,message q用日志或者用其它的应用,特点跟业务代码是强绑定,可以重复使用,有第三方的功能,还有一部分是运维的能力,比如很多时候要写高可用性,no balance部分代码,在云原生架构的环境下代码进行组合,业务代码变成云服务,第三方的软件变成云上的资源,比如云上的数据库,买message q,kafka等,运维能力慢慢的下沉到pass层,也是平台层,在云原生环境下整个的应用跟传统的架构比有很大的改变,改变造成在描述应用时,也会有产生相应的改变,采用云原生架构主要是为提升应用交付迭代的速度,当传统的架构越变越大时不得不想要把它拆解掉。拆解的过程中如果用云原声架构下的应用。

2、云原生应用的部署:理想情况

应用代码模块

第三方依赖模块

运维模块

应用代码叫做模块,第三方依赖模块,比如今天在某个云上买某个服务,运维模块包括像hpa,所有业务模块进行运维操作,能力都叫运维模块,描述的方式对云原生架构,很自然,很直接,也是很直观的一种映射。

3、云原生应用的部署:现实

configmap.yaml

data-pvc.yaml

deployment.yaml

etc-pvc.yaml

ingress.yaml

secrets.yaml

svc.yaml

在google怎么描述应用,有很多yaml文件,文件中都是混在一起,比如depolment很常用,depolment有业务逻辑的部分,docker image在哪,开哪个端口,名字叫http等,Protocols tcp,包括运维的操作,比如replicas是一个,rollingupdate发布的策略,混在一起非常难于管理,很容易造成错误,应用发布或者是应用交付平台,运用部署的方式是站在平台的角度或者是站在集群的角度,没有想站在应用的角度发布,当中有很多问题,混乱,职责不清,难于管理。

image.png


二、Open Application Model

1、在弊端的情况下提出开源项目叫做oam,Open Application Model是开放的应用模型,在云原生应用环境下对于应用的描述,特别是在平台管理层上对应用进行的描述,项目是阿里云和微软,Engineer,Kubernetes三方共同开发,目前已经进入工具的开发期,规范基本上比较成熟和稳定,把代码时间的部分做好。

2、oam第一部分是组件,业务组件组件一,组件二,frontend,引入概念workload加以提升,对应以把抽象程度变高,变好,workload包含Service等的产生,组件是作为workload的模板,把workload再往上升一下,可以看到用这种方式定义的应用本身的组件应该是非常直观和简洁的。

$ kubectl get components

NAME WORKLOAD TYPE

Frontend deployment.apps.k8s.io

$ kubectl get deployment

NAME REVISION AGE

frontend-c8bb659c5 1 2d15h

frontend-a8eb65xfe 2 10m

3、第二部分是traits特征,traits是对运维属性的描述,特别是在appconfig的描述,比如scaling,rollout,route,cert,traffic,运维操作是绑定在component上,对于应用的描述,比如application configuration,把应用完整的都放在一起,对于应用进行描述时把component放在那里,有组件,有容器,有模块,它有哪操作是直接把它套上去的,这种观念以平台为主角或者主视角的这种观点是截然不同的。applicationconfiguration是另外的例子,有哪些traits,用的hpa远程自带,hpa是kubernetes基本的运维操作,对deployment replicas进行操作,会看指标,根据指标进行扩容和缩容的操纵,原生的部分主要是对于容器,对于计算资源作为指标,比如cpu等,但是这些往往不够,在这种情况下需要对它进行扩展。

image.png

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
11月前
|
缓存 Kubernetes Docker
GitLab Runner 全面解析:Kubernetes 环境下的应用
GitLab Runner 是 GitLab CI/CD 的核心组件,负责执行由 `.gitlab-ci.yml` 定义的任务。它支持多种执行方式(如 Shell、Docker、Kubernetes),可在不同环境中运行作业。本文详细介绍了 GitLab Runner 的基本概念、功能特点及使用方法,重点探讨了流水线缓存(以 Python 项目为例)和构建镜像的应用,特别是在 Kubernetes 环境中的配置与优化。通过合理配置缓存和镜像构建,能够显著提升 CI/CD 流水线的效率和可靠性,助力开发团队实现持续集成与交付的目标。
|
11月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
663 267
|
存储 Kubernetes 持续交付
介绍一下Kubernetes的应用场景
【10月更文挑战第18天】介绍一下Kubernetes的应用场景。
1028 3
|
10月前
|
Kubernetes 持续交付 开发工具
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
411 2
|
9月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
285 0
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
10月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
218 1
|
10月前
|
Kubernetes 持续交付 开发工具
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
583 60
|
11月前
|
存储 监控 对象存储
ACK容器监控存储全面更新:让您的应用运行更稳定、更透明
介绍升级之后的ACK容器监控体系,包括各大盘界面展示和概要介绍。
|
10月前
|
运维 分布式计算 Kubernetes
ACK One多集群Service帮助大批量应用跨集群无缝迁移
ACK One多集群Service可以帮助您,在无需关注服务间的依赖,和最小化迁移风险的前提下,完成跨集群无缝迁移大批量应用。

热门文章

最新文章

推荐镜像

更多