容器弹性云底层原理揭秘(上)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 容器弹性云底层原理揭秘(上)

Docker


容器概念

容器特性

1、不标准物品标准化(比如杂物、液体、应用)
2、上层工具提供标准化的操作方式 屏蔽细节

容器定义

构建、管理、保护应用程序

容器举例

  • 包装、运输
  • Add/Delete/Iterator
  • 应用管理和调度


容器技术演进


OS虚拟化->内核轻量级虚拟化->资源隔离机制(内存、CPU、网络、IO独占)

image.png


docker共享host内核;通过namespace和cgroup来做资源隔离的

Docker本质不是一个操作系统 其实就是一个进程 利用操作系统机制做隔离


现状与Docker方案对比


image.png

1、服务端负责构建、分发、运行容器
2、Client和Server可以运行在同一个Host上
  客户端也可以通过Socket或Rest API与远程的服务端通信
3、如果docker damond挂掉了即父进程挂了 对子进程不影响 
  但是不能启动新的进程了即不能在创建镜像和运行镜像等了
4、网络是共享的 文件句柄是单独的 可以让它共享也可以不让它共享


Docker命令

image.png

commit含义:新运行的docker进程上面重新生成一个新的镜像


Docker 镜像

image.png

1、dokcer镜像是一个静态只读模版
通过它创建docker容器 是一个进程、动态的
2、dokcerfile是从无到有 创建镜像
3、docker启动命令:ENTRYPOINT/CMD
4、设置环境变量:ENV key value
5、挂载路径 VOLUME ["dir1"]
6、docker容器是镜像的运行实例


image.png


Docker解决应用标准化的案例


image.png


差异化不要打包在镜像中


K8S简介


1、K8S 容器管理和编排
2、k8s治理功能 就是一个管理工具
3、k8s虚拟化是docker做的
4、机器平均利率用不超过20% 用k8s 弹性调度 提高资源利用率


Docker运行数量


40核CPU 192G内存的服务器配置 
一个docker 分配2个cpu 最多20个docker


云发展阶段


Iaas云

image.png

sdn(软件定义网络)

网络一旦进入机房交换机即二层网络
很难跨机房通讯 直接通讯很难
sdn网络层面虚拟化
在机房之间直接通讯
即二层网络变三层网络进行通讯

sds(软件定义存储)

共享存储 不用关注机器和存储
对应用无侵入 是面向资源的


用户不想关注硬件资源而是想只关注应用本身

需要面向应用系统降低服务开发部署和运维成本

1、安装包标准化即image镜像
2、应用进程标准化即container容器


容器化

一个dokcer应用运行即单进程
多个docker应用即多进程如何管理 使用k8s


FAAS

容器都不需要关注 只需要关注函数
无服务化架构 serverless


K8S架构(系统架构)


image.png


1、cAdvise:监控
2、kubelet:本地的agent
3、启动pod 通过cAdvise获取pod信量信息 进行通讯
4、每一个宿主机上有一个kubelet 负责pod启动终止扩容收集信量信息

谁来控制kubelet呢?

1、是k8s master 即上图的k8s架构本身(中心控制节点)
2、api server和kubelet通讯 告诉kubelet 去启动一个pod
3、kubelet心跳连接api server 也会告诉api server pod启动结果
4、api server一般部署3个 这三个都是无状态的 kebelet连接任何一个都是可以的
5、心跳信息存储在etcd中(k8s的所有存储都是放在etcd中)


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
6月前
|
分布式计算 Java Linux
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
Docker 是一套构建在 Linux 内核之上的高级工具,旨在帮助开发人员和运维人员更轻松地交付应用程序和依赖关系,实现跨系统和跨主机的部署。使用安全且轻量级的容器环境来实现这一目标。容器可以手动创建,也可以通过编写 Dockerfile 自动创建。开发人员和运维人员可以将应用程序及其依赖打包到容器中,实现应用程序的可移植性和环境一致性。
255 5
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
|
6月前
|
Cloud Native Linux 网络虚拟化
深入理解Linux veth虚拟网络设备:原理、应用与在容器化架构中的重要性
在Linux网络虚拟化领域,虚拟以太网设备(veth)扮演着至关重要的角色🌐。veth是一种特殊类型的网络设备,它在Linux内核中以成对的形式存在,允许两个网络命名空间之间的通信🔗。这篇文章将从多个维度深入分析veth的概念、作用、重要性,以及在容器和云原生环境中的应用📚。
深入理解Linux veth虚拟网络设备:原理、应用与在容器化架构中的重要性
|
1月前
|
存储 监控 Shell
docker的底层原理二:容器运行时环境
本文深入探讨了Docker容器运行时环境的关键技术,包括命名空间、控制组、联合文件系统、容器运行时以及分离的进程树,这些技术共同确保了容器的隔离性、资源控制和可移植性。
39 5
|
2月前
|
Kubernetes Linux 虚拟化
一文详解容器技术简介和基本原理
本文全面阐述了容器技术的发展历程、关键技术、架构和当前的行业生态,特别是容器技术在云环境中的应用和演进。
|
3月前
|
XML Java 数据格式
Spring5入门到实战------2、IOC容器底层原理
这篇文章深入探讨了Spring5框架中的IOC容器,包括IOC的概念、底层原理、以及BeanFactory接口和ApplicationContext接口的介绍。文章通过图解和实例代码,解释了IOC如何通过工厂模式和反射机制实现对象的创建和管理,以及如何降低代码耦合度,提高开发效率。
Spring5入门到实战------2、IOC容器底层原理
|
3月前
|
消息中间件 Kubernetes 数据库
在k8S中,初始化容器(init container)概念原理是什么?
在k8S中,初始化容器(init container)概念原理是什么?
|
4月前
|
存储 安全 算法
(九)深入并发编程之并发容器:阻塞队列、写时复制容器、锁分段容器原理详谈
相信大家在学习JavaSE时都曾接触过容器这一内容,一般Java中的容器可分为四类:Map、List、Queue以及Set容器,而在使用过程中,对于ArrayList、HashMap等这类容器都是经常使用的,但问题在于这些容器在并发环境下都会存在线程安全问题。
|
5月前
|
弹性计算 Serverless 调度
《阿里云产品四月刊》—享道出行:容器弹性技术驱动下的智慧出行稳定性实践(3)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
108 1
|
4月前
|
Java 应用服务中间件 持续交付
Java面试题:简述Docker等容器化技术的原理及其在Java应用部署中的作用。
Java面试题:简述Docker等容器化技术的原理及其在Java应用部署中的作用。
70 0
|
6月前
|
前端开发 JavaScript 虚拟化
第四章(原理篇) 前端容器技术
第四章(原理篇) 前端容器技术