统信软件高级工程师:关于云原生技术在容器方面的应用介绍 | 龙蜥技术

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 一文了解云原生技术概述及其在容器方面的应用。

编者按:随着近几年来云原生生态的不断壮大,众多企业纷纷开展了用云上云的工作,学习云原生及容器技术对于现代工程师是必不可少的。本文整理自龙蜥大讲堂 54 期,统信高级研发工程师参与技术分享,为大家介绍了云原生的介绍及其在容器方面的应用。以下为此次分享内容:

1.png

一、关于云原生

1.1 什么是云原生

云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。


这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。

云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。


1.2 云原生的设计哲学

云原生系统的设计理念如下:

  • 面向分布式设计(Distribution):容器、微服务、API 驱动的开发。
  • 面向配置设计(Configuration):一个镜像,多个环境配置。
  • 面向韧性设计(Resistancy):故障容忍和自愈。
  • 面向弹性设计(Elasticity):弹性扩展和对环境变化(负载)做出响应。
  • 面向交付设计(Delivery):自动拉起,缩短交付时间。
  • 面向性能设计(Performance):响应式,并发和资源高效利用。
  • 面向自动化设计(Automation):自动化的 DevOps。
  • 面向诊断性设计(Diagnosability):集群级别的日志、metric 和追踪。
  • 面向安全性设计(Security):安全端点、API Gateway、端到端加密。


1.3 云原生应用程序

  • 微服务

作为单个实体进行管理和部署的应用程序通常称为单体应用。最初开发应用程序时,单体有很多好处。它们更易于理解,并允许您在不影响其他服务的情况下更改主要功能。

随着应用程序复杂性的增长,单体应用的益处逐渐减少。它们变得更难理解,而且失去了敏捷性,因为工程师很难推断和修改代码。

对付复杂性的最好方法之一是将明确定义的功能分成更小的服务,并让每个服务独立迭代。

  • 安全及扩展

遥测和度量标准用于解决以下问题:

  • 应用程序每分钟收到多少请求?
  • 有没有错误?
  • 什么是应用程序延迟?
  • 订购需要多长时间?
  • 弹性扩展

弹性是基础设施的责任,但云原生应用程序也需要承担部分工作,应用横纵向扩展。

  • 声明式

因为云原生应用程序被设计为在云环境中运行,所以它们与基础设施以及相关依赖应用程序的交互方式不同于传统应用程序。在云原生应用程序中,与任何事物的通信都需要通过网络来进行。很多时候,网络通信是通过 RESTful HTTP 调用完成的,简化应用程序并使其更健壮。

二、云原生应用程序

2.1 Kubernetes 与云原生的关系

2.png

3.png

2.2 Kubernetes 架构

4.png

Kubernetes 主要由以下几个核心组件组成:

  • etcd 保存了整个集群的状态。
  • apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制。
  • controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等。
  • scheduler 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上。
  • kubelet 负责维护容器的生命周期,同时也负责 Volume(CSI)和网络(CNI)的管理。
  • Container runtime 负责镜像管理以及 Pod 和容器的真正运行(CRI)。
  • kube-proxy 负责为 Service 提供 cluster 内部的服务发现和负载均衡。


2.3 容器设计模式

5.png

统信容器云管理平台-有雀(统信容器云平台解决方案)

以 CRI-O、Kubernetes、OKD 为基础,以应用为中心的企业级容器云 PaaS 平台,提供自动伸缩、配置管理、资源管理、自动运维等功能,实现对容器化应用的全生命周期管理。

6.png

三、领域应用

3.1 云原生 OS、运维管理、CI/CD、安全策略


运维管理问题主要包括如下几个方面:

监控:包括 kubernetes 本身组件和 Pod、应用的监控,普罗米修斯 grafana altermanager。

日志收集:包括 kubernetes 本身组件的日志,应用的日志 , fluentd logstash or filebeat 日志收集,elastic 弹性搜索引擎,kibana 界面展示。

审计:用户对集群操作的审计。

安全:用户权限的管理和镜像漏洞扫描,oauth存储管理:glusterfs、glusterd、ceph、rook、nfs、openebs 等。

分布式追踪:OpenTracing 是 CNCF 提出的分布式追踪的标准,它提供用厂商中立的 API,并提供常用的 GO、java、js、python 等九种语言的库  jaeger。


3.2 微服务应用、serverless

在单体架构时,因为服务不会经常和动态迁移,所有服务地址可以直接在配置文件中配置,所以也不会有服务发现的问题。但是对于微服务来说,应用的拆分,服务之间的解耦,和服务动态扩展带来的服务迁移,服务发现就成了微服务中的一个关键问题。


Serverless 不如 IaaS 和 PaaS 那么好理解,因为它通常包含了两个领域 BaaS(Backend as a Service)和 FaaS(Function as a Service)。

  • BaaS

BaaS(Backend as a Service)后端即服务,一般是一个个的 API 调用后端或别人已经实现好的程序逻辑,比如身份验证服务 Auth0,这些 BaaS 通常会用来管理数据,还有很多公有云上提供的我们常用的开源软件的商用服务,比如亚马逊的 RDS 可以替代我们自己部署的 MySQL,还有各种其它数据库和存储服务。

  • FaaS

FaaS(Functions as a Service)函数即服务,FaaS 是无服务器计算的一种形式,当前使用最广泛的是 AWS 的 Lambada。


3.3 大数据、人工智能、边缘计算

边缘计算与云计算是相辅相成的,是在云计算发展到一定阶段的产物。它有以下优点:低延迟、低带宽运行、隐私保护。


大数据的 5V 特点(IBM 提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。


Kubeflow 项目致力于使机器学习(ML)工作流在 Kubernetes 上的部署简单,可移植且可扩展。

四、社区介绍及发展

4.1 CNCF

CNCF(云原生计算基金会)是 Linux 基金会旗下的一个基金会,加入 CNCF 等于同时加入 Linux 基金会,核心是解决技术问题:基金会的使命是创建并推动采用新的计算模式,该模式针对现代分布式系统环境进行了优化,能够扩展至数万个自愈式多租户节点。


4.2 龙蜥社区云原生 SIG

基于 Cloud Kernel 自动化在线/离线部署 Kubernetes。

龙蜥云原生 SIG 会集成 sealer,并在 Anolis OS 上支持 Kubernetes 及其应用一键部署,sealer 致力于将整个集群打成像 docker 镜像一样的镜像包, 实现分布式软件的Build&Share&Run。


4.3 认证及培训

CNCF 发布的 Kubernetes 五周年项目旅程报告 2014 年 6 月 6 日,Kubernetes 完成了第一次 commit。从 2016 年 3 月 10 日被捐给 CNCF 起,直至今日,Kubernetes 已经拥有超过:35000 名贡献者、148000 代码提交、8000 pull requests、110 万贡献、2000 家贡献企业。

企业想要加入 CNCF 基金会的 KCSP 计划(Kubernetes 认证服务提供商),至少需要 3 名工程师通过 CKA 认证考试。


关于直播课件及视频回放获取方式:


【PPT 课件获取】:关注微信公众号(OpenAnolis龙蜥),回复“龙蜥课件” 即可获取。有任何疑问请随时咨询龙蜥助手—小龙(微信:openanolis_assis)。


【视频回放】:视频回放可前往龙蜥官网https://openanolis.cn/video 查看。


—— 完 ——


加入龙蜥社群


加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。

640 (5).png

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
14天前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
|
14天前
|
运维 Cloud Native 安全
云原生技术在现代企业中的应用与挑战####
本文探讨了云原生技术在现代企业IT架构中的关键作用,分析了其带来的优势和面临的主要挑战。通过实际案例分析,揭示了如何有效应对这些挑战,以实现业务敏捷性和技术创新的平衡。 ####
|
12天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
11天前
|
Cloud Native 持续交付 开发者
云原生技术在现代企业中的应用与实践####
本文深入探讨了云原生技术的核心概念及其在现代企业IT架构转型中的关键作用,通过具体案例分析展示了云原生如何促进企业的敏捷开发、高效运维及成本优化。不同于传统摘要仅概述内容,本部分旨在激发读者对云原生领域的兴趣,强调其在加速数字化转型过程中的不可或缺性,为后续详细论述奠定基础。 ####
|
16天前
|
Kubernetes Cloud Native 物联网
云原生技术在现代软件开发中的应用与挑战####
本文探讨了云原生技术的兴起背景、核心理念及其在现代软件开发中的广泛应用。通过具体案例分析,揭示了云原生架构如何促进企业数字化转型,并指出了在实施过程中面临的主要挑战及应对策略。 ####
|
6天前
|
人工智能 缓存 异构计算
云原生AI加速生成式人工智能应用的部署构建
本文探讨了云原生技术背景下,尤其是Kubernetes和容器技术的发展,对模型推理服务带来的挑战与优化策略。文中详细介绍了Knative的弹性扩展机制,包括HPA和CronHPA,以及针对传统弹性扩展“滞后”问题提出的AHPA(高级弹性预测)。此外,文章重点介绍了Fluid项目,它通过分布式缓存优化了模型加载的I/O操作,显著缩短了推理服务的冷启动时间,特别是在处理大规模并发请求时表现出色。通过实际案例,展示了Fluid在vLLM和Qwen模型推理中的应用效果,证明了其在提高模型推理效率和响应速度方面的优势。
云原生AI加速生成式人工智能应用的部署构建
|
6天前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
7天前
|
人工智能 Kubernetes Cloud Native
阿里云容器服务,智算时代云原生操作系统
2024云栖大会,阿里巴巴研究员易立分享了阿里云容器服务的最新进展。容器技术已成为云原生操作系统的基石,支持多样化的应用场景,如自动驾驶、AI训练等。阿里云容器服务覆盖公共云、边缘云、IDC,提供统一的基础设施,助力客户实现数字化转型和技术创新。今年,阿里云在弹性计算、网络优化、存储解决方案等方面进行了多项重要升级,进一步提升了性能和可靠性。
|
11天前
|
Cloud Native JavaScript Docker
云原生技术:构建现代应用的基石
在数字化转型的浪潮中,云原生技术如同一艘承载梦想的航船,引领企业驶向创新与效率的新海域。本文将深入探索云原生技术的核心价值,揭示其如何重塑软件开发、部署和运维模式,同时通过一个简易代码示例,展现云原生应用的构建过程,让读者领略到云原生技术的魅力所在。
|
16天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
27 5