K8S原理剖析:云原生技术的前世今生

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: K8S原理剖析:云原生技术的前世今生

大纲

  • CNCF云原生介绍
  • 容器技术发展介绍
  • Kubernetes技术架构


CNCF云原生介绍

CNCF ToC: CNCF Cloud Native Definition v1.0

云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建

和运行可弹性扩展的应用。云原生的代表技术包括容器、 服务网格、 微服务、
不可变基础设施和声明式API。

这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的

自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大

变更。

云原生计算基金会( CNCF)致力于培育和维护一个厂商中立的开源生态系统

来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。


云计算的发展历程

“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。

云计算的发展历程


云计算伴随云原生技术步入新时代

云计算伴随云原生技术步入新时代


容器是云原生技术发展的第一波热潮

容器是云原生技术发展的第一波热潮


容器服务的目标就是打造Cloud Native应用的运行环境

容器服务的目标就是打造Cloud Native应用的运行环境


CNCF当前项目介绍

CNCF当前项目介绍

CNCF当前项目介绍

CNCF当前项目介绍


容器技术发展介绍

容器技术发展历史

容器虚拟化( LXC) :提供应用隔离运行的能力;

Docker:基于容器提供统一的应用分发平台

容器技术发展历史


容器的三大好处, 为应用而生

容器的三大好处, 为应用而生


Docker – Build, Ship, and Run Any App, Anywhere

Docker – Build, Ship, and Run Any App, Anywhere

 

容器底层关键技术 - Linux Cgroup

Docker使用Linux Cgroup技术来实现容器实例的资源管理

cgroup子系统 资源管理 对应的docker接口
memory 限制cgroup中的任务所能使用的内存上限 -m
--memory-swap
--memory-reservation
--kernal-memory
--oom-kill-disable
--memory-swappiniss
cpu 使用调度程序提供对CPU的cgoup任务访问 -c
--cpu-period
--cpu-quota
Cpuset 为cgroup中的任务分配独立CPU和内存节点 --cpuset-cpus
--cpuset-mems
Blkio 为块设备设定输入/输出限制 --blkio-weight
--blkio-weight-device
--device-read-bps
--device-write-bps
--device-read-iops
--device-write-iops


容器底层关键技术 - Linux Namespace

Docker使用linux namespace技术来实现容器实例间的资源隔离

Namespace 系统调用参数 隔离内容
PID namespace CLONE_NEWPID 隔离不同用户的进程,不同的namespace中可以有相同的pid。
允许嵌套,可以方便实现docker in docker
UTS namespace CLONE_NEWUTS 允许每个容器拥有独立的hostname和domain name,使其在网络上可
以被视为独立的节点。
IPC namespace CLONE_NEWIPC 保证容器间的进程交互,进行信号量、消息队列和共享内存的隔离。
Network namespace CLONE_NEWNET 实现网络隔离,每个net namespace有独立的network devices、 ip
addresses、 ip routing tables、 /proc/net目录。
Mount namespace CLONE_NEWNS 隔离不同namespace的进程看到的目录结构,每个namespace的容器在
/proc/mounts的信息只包含所在namespace的mount point。
User namespace CLONE_NEWUSER 允许每个容器可以有不同的user和group id


容器底层关键技术 – 联合文件系统

容器底层关键技术 – 联合文件系统

概念:一个基于文件的接口,通过把一组目录交错起来,形成一个单一视图。

优点:

1、多个容器可以共享image存储,节省存储空间;

2、部署多个容器时, base image可以避免多次拷贝,实现快速部署;

Docker目前支持的联合文件系统种类包括devicemapper、 overlay2、 aufs、 btrfs、 vfs和


新一代Kata容器实现多租户容器强隔离

新一代Kata容器实现多租户容器强隔离

  • 虚拟化层的存在,保障了容器在多租户场景下的安全性。
  • 高度裁剪和优化过的KVM, guest OS保证了VM启动时间极短,性能损耗极小。
  • 接口层支持对接docker引擎或crio,镜像完全兼容docker镜像,无需修改。完美融入K8S容器生态。


Kubernetes技术架构

什么是Kubernetes?

什么是Kubernetes?

Kubernetes系统组件

Kubernetes系统组件


Kubernetes架构

Kubernetes架构

Declarative (申明式API) vs Imperative (命令式API)

Declarative (申明式API) vs Imperative (命令式API)

 

Declarative (申明式API) vs Imperative (命令式API)


Kubernetes Controllers

Kubernetes Controllers


Kubernetes基于list-watch机制的控制器架构

 

Kubernetes基于list-watch机制的控制器架构


Kubernetes架构分层


K8S社区架构中对各层的详细定


Kubernetes生态系统范畴

• 容器内 – 多样化工作负载

• K8S南向 – 多样化的环境

– 容器、网络、存储插件

– 镜像仓库

– 多云插件

– 集群管理配置

– 认证系统

• K8S北向 – 多样化的服务和工具

– 日志&监控

– 配置语言

– 编排部署

– 持续集成

– PaaS

– 工作流

– 函数服务

– 数据处理服务

– 对象事务服务 (数据库、存储)

– 互联网应用

 


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
9天前
|
运维 Cloud Native 云计算
探索云原生技术的未来之路
【9月更文挑战第33天】本文将深入探讨云原生技术及其未来发展方向。我们将从云原生的基本概念出发,逐步剖析其核心组件、架构优势以及在现代企业中的实际应用。文章还将通过代码示例,展示如何利用云原生技术构建高效、可扩展的应用程序。最后,我们将展望云原生技术的未来趋势,并讨论其对行业的潜在影响。
|
5天前
|
Cloud Native Devops 持续交付
云原生技术在现代软件开发中的应用与挑战
随着云计算技术的不断成熟,云原生(Cloud Native)技术正迅速成为现代软件开发的重要趋势。本文将深入探讨云原生的定义、核心技术(如容器化、微服务、DevOps等),并分析其在实际应用中的优势与面临的挑战。通过案例研究,展示云原生技术如何帮助企业实现高效开发、灵活部署和弹性扩展,从而在激烈的市场竞争中脱颖而出。 ##
|
6天前
|
Kubernetes Cloud Native 云计算
云原生之旅:Kubernetes 集群的搭建与实践
【8月更文挑战第67天】在云原生技术日益成为IT行业焦点的今天,掌握Kubernetes已成为每个软件工程师必备的技能。本文将通过浅显易懂的语言和实际代码示例,引导你从零开始搭建一个Kubernetes集群,并探索其核心概念。无论你是初学者还是希望巩固知识的开发者,这篇文章都将为你打开一扇通往云原生世界的大门。
59 17
|
8天前
|
Kubernetes Cloud Native 持续交付
云原生技术入门及应用实例
【9月更文挑战第34天】云原生,这个词汇在IT界已经越来越热。它代表的是一种构建和运行应用程序的方法,旨在充分利用云计算的优势。本文将从云原生的基本概念入手,深入探讨其核心技术和应用场景,最后通过一个简单的代码示例,带你走进云原生的世界。
|
1天前
|
Kubernetes Cloud Native Go
云原生技术在现代企业的应用与挑战
本文将深入探讨云原生技术如何在现代企业中被广泛应用,并分析其面临的主要挑战。我们将通过一个具体的代码示例,展示云原生应用的开发流程,以及如何利用Kubernetes进行容器编排。文章旨在为读者提供对云原生生态系统的全面了解,并鼓励企业探索这一前沿技术以保持竞争力。
11 3
|
2天前
|
Cloud Native 持续交付 开发者
探索云原生技术:构建现代应用的新范式
本文深入探讨了云原生技术的崛起,以及它如何改变我们构建、部署和运行应用程序的方式。我们将从云原生的定义开始,逐步解析其关键技术组件,如容器化、微服务、持续集成/持续部署(CI/CD)等,并通过案例研究展示云原生架构在实际应用中的优势。无论是开发者、系统管理员还是企业决策者,本文将为您提供宝贵的见解,助您把握云原生技术的精髓,推动业务创新与增长。
|
2天前
|
边缘计算 Cloud Native Devops
云原生技术:构建弹性、高效的现代应用架构
在当今数字化浪潮中,企业面临着日益复杂的业务需求和瞬息万变的市场环境。传统的IT架构已难以满足这种快速变化的需求,而云原生技术以其独特的优势,正成为推动企业数字化转型的新引擎。本文将深入探讨云原生技术的核心理念、关键技术及实践应用,揭示其在构建弹性、高效现代应用架构中的重要作用。
|
2天前
|
Cloud Native Devops 持续交付
云原生技术:引领数字化转型的新浪潮
本文深入探讨了云原生技术的概念、核心原则以及其在推动企业数字化转型中的重要作用。通过分析云原生技术的发展趋势和面临的挑战,为读者提供全面而深入的理解,旨在启发思考并指导实践。
|
2天前
|
运维 监控 Cloud Native
深入理解云原生技术:从概念到实践
在数字化转型的浪潮中,云原生技术如同星辰指引航船,引领企业驶向灵活、高效的未来。本文将深入浅出地探讨云原生的核心理念、关键技术及应用实例,旨在为读者揭开云原生的神秘面纱,展示其如何重塑软件开发与运维模式。通过理论与实践的结合,我们将一窥云原生技术的强大动力和无限可能。
|
4天前
|
人工智能 Kubernetes Cloud Native
探索云原生技术的未来之路
在数字化浪潮中,云原生技术如同一艘航向未来的巨轮,承载着企业转型的梦想与挑战。本文将深入探讨云原生技术的核心概念、应用实践以及面临的挑战和机遇,为读者揭示云原生技术如何引领企业走向更加灵活、高效、可靠的未来。