-
《直播回看》栏目会将“华为云开发者者联盟”移动端课程平台的精品音视频直播课,定期进行展播,支持各位伙伴进行回看学习本期推荐: 容器-容器进阶之Istio流量治理与全景监控实践【主讲人介绍】主讲人:Aaron Chen华为云Istio服务工程师,对Istio本身具有深入研究,参与并推动多个Istio服务特性设计与研发。【课程大纲】课程围绕流量治理,及全景监控能力为中心进行讲解。介绍了负载均衡算法与会话保持的基础知识以及故障注入的应用场景和实现机制。对华为云istio服务流量治理中的故障注入,负载均衡配置等功能及应用性能监控,拓扑图,调用链等使用进行展示。学习完本课后,用户应当具备在华为云上独立动手进行流量治理功能的使用以及通过全景监控来验证配置生效的能力。【课程链接】可扫描下方二维码进入“华为云开发者联盟“移动端直播间收听课程
-
终于等到你,请收下这份丰厚的见面礼!【初识容器】华为云容器服务产品页>>点击初识 云容器引擎CCE >>点击初识 云容器实例CCI【技术入门】云原生系列技术直播课>>深入剖析Kubernetes系列直播课(视频+资料)>>Istio入门实训课(视频+资料)>>CKA认证培训课(视频+资料)【课程进阶】云容器系统学习全掌握>>21天转型容器实战营(完整pdf资料)【云端实践】应用容器化部署初体验1. 云容器引擎CCE - Flappybird 容器化小游戏部署指南(内含源码)2. 云容器引擎CCE - FC经典坦克大战 容器化小游戏部署指南(内含源码)3. 云容器实例CCI – 经典2048数字合成游戏部署指南(内含镜像文件)4. 云容器实例CCI - 使用Tensorflow训练神经网络(内含详细PDF教程)希望以上内容真的能帮助到你,有任何疑问欢迎留言哦,期待你的反馈~
-
喜大普奔,华为云《21天转型容器实战营》课程资料大放送啦!本课程是由华为云DevCloud&云容器服务联合重磅出品,依托华为云云容器服务,带领开发者学习和体验Docker, kubernetes, Istio等大热技术!汇聚华为云顶级容器技术专家,结合CKA认证精编21天课程,零门槛带你打通容器技术任督二脉,攻下K8s,拿下CKA,那都不是事儿!干的不能再干的课程资料,已妥妥的备好,拿走不谢哦~Day 1 了解容器的基础知识Day 2 手把手教您制作镜像Day 3 手把手教您运行一个镜像Day 4 容器进阶之kubernetes基础知识介绍Day 5 容器进阶之Kubernetes pod调度原理分析Day 7 容器进阶之Kubernetes 应用生命周期原理分析Day 9 容器进阶之Kubernetes 网络管理原理分析Day 11 容器进阶之Kubernetes 存储管理原理分析Day 13 容器进阶之Kubernetes 安全原理分析Day 15 Istio服务网格技术与实践Day 16 Istio灰度发布任务的介绍与实践加图版Day 17 Istio流量治理与全景监控Day 18 ContainerOps介绍Day 19 基于containerOps进行容器化交付Day 20 容器应用编排介绍Day 21-通过AOS完成电商网站系统创建惊不惊喜,意不意外?话不多说,赶紧下载学习吧!Ps:以上为全部的理论资料,如果想看含讲师视频讲解版的,可以去华为云学院学习,传送门再Ps:云学院的课程里有理论+实践的部分,实践部分需要用到资源,大家视自身情况选择哦~
-
准备工作1. 建议先 点击此处 下载.rar格式的压缩文件,只需经过一次解压即可得到 .tar 格式的镜像打包文件“docker-2048”哦。2. 建议先 点击此处 购买CCI 9元超值体验套餐包,游戏部署体验更佳哦!~下面来是完整操作步骤步骤一:创建命名空间命名空间(namespace)是kubernetes 的一个典型概念,是一种在多个用户之间划分资源的方法,适用于用户中存在多个团队或项目的情况。当前CCI服务提供两种类型的资源:“通用计算型”和“GPU型”。创建命名空间时需要选择资源类型,后续创建的负载中容器就运行在此类型的集群上。1. 登录云容器实例管理控制台,左侧导航栏中选择“命名空间”。2. 选择创建“通用计算型“命名空间。点击“一键创建”即可获得一个全新的命名空间(cci-auto-1548297057827),用于对即将部署的游戏应用进行管理。 步骤二 部署工作负载工作负载是对Pod的服务化封装,当前CCI服务中主要支持无状态负载、短任务负载、定时任务负载等。本例中游戏应用以无状态负载的方式作为一个长稳应用部署在CCI服务中。1. 在左侧导航栏中选择“工作负载”,在右侧选择上一个步骤创建的命名空间,单击“创建负载”。2. 配置无状态负载基本信息 a. 填写负载名称; b. 选择POD数量;当配置多个Pod时,云容器实例会自动在Pod间做负载均衡。此处建议POD数量不小于2,否则无法保证应用的HA能力。c. 填写负载描述信息。3. 容器设置a. 选择镜像。点击“上传镜像”、在容器镜像服务中选择“页面上传”,选择组织,选择镜像文件,上传已下载至本地的镜像文件“docker-2048”即可。上传完毕后,返回创建无状态工作负载页面刷新, 即可看到刚刚上传的镜像,点击“使用该镜像”b. 根据需要配置容器规格及高级设置(存储、环境变量、健康检查、生命周期、启动命令和ConfigMap)。本示例请保持默认值不变,然后单击“下一步”。4. 访问设置关于负载的访问设置,有如下3种选项:不启用:负载不提供外部访问方式,适合一些计算类场景,只需计算完存储结果即可,无需与外部通信。内网访问:负载之间通过“负载域名:负载端口”互相访问。公网访问:通过弹性负载均衡,从外部访问访问负载。本示例中我们的小游戏应用需要能够通过公网进行访问,此处选择公网访问。a. 参考界面提示在弹性负载均衡的界面购买增强型ELB。购买后点击界面的刷新即可选择对应的ELB实例使用。b. 选择“ELB协议”:TCP/UDP本例中,数字游戏应用的流量只需要做四层负载均衡,在TCP层进行流量转发到容器中的指定端口(80)即可。c. 选择“负载端口协议”:TCPd. 选择负载端口配置,此处ELB端口系统会根据当前选择的ELB实例的端口占用情况,自动推荐可用端口。容器端口和具体部署的应用开放端口有关,本例中该容器实例开放端口80。e. 点击下一步。5. 规格确认后,点击提交,单击“返回负载列表”。在负载列表中,待负载状态为“运行中”,负载创建成功,本游戏应用即部署完成。步骤三 获取游戏应用访问地址1. 单击负载名称,进入负载详情页面2. 选择“访问配置 > 公网访问”Tab页,拷贝公网访问地址(即“ELB IP地址:端口”),即可在浏览器中访问本游戏应用。
-
第一步:点击https://console.huaweicloud.com/cce2.0/?region=cn-north-1#/app/guidance/list,在领取免费集群弹窗中,勾选“我已阅读并同意上述条款”,点击“立即领取”,即可获得3天免费集群,并进入云容器引擎管理控制台。 第二步:在点击“资源管理”-“节点管理”,如图所示,获取弹性IP地址。第三步:点击 https://www.huaweicloud.com/product/aos.html 进入应用编排服务AOS产品首页,点击“立即使用”。第四步:在“模板市场”-“公共模板”-“行业场景模板”处,点击坦克大战模板的“创建堆栈”按钮。第五步:填写必填的信息,ip参数值处填写第三步获取到的弹性IP地址,点击“下一步”。 第六步:点击“创建堆栈”,即可完成操作。第七步:回到云容器引擎管理控制台,点击“工作负载”-“无状态”,然后点击“外部访问地址”,即可开始坦克大战游戏啦!
-
第一步:点击https://console.huaweicloud.com/cce2.0/?region=cn-north-1#/app/guidance/list,在领取免费集群弹窗中,勾选“我已阅读并同意上述条款”,点击“立即领取”,即可获得3天免费集群,并进入云容器引擎管理控制台。 第二步:在云容器引擎管理控制台,点击“工作负载”-“无状态”- “创建无状态工作负载”如图所示。 第三步:如图所示,配置基本信息,实例数量1个,然后点击“下一步”。第四步:点击“添加容器”,如图所示。第五步:点选“第三方镜像”,镜像名称处 输入下面的镜像地址:swr.cn-north-1.myhuaweicloud.com/hc_cce/flappybird:latest第六步:如图所示,基本信息保持默认值不变,点击“下一步”。 第七步:点击“添加服务”,然后如图所示,填写服务名称,选择公网访问,弹性IP,注意容器端口处填 80 。配置完毕后 点击“确定”-“下一步”。 第八步:点击“创建”,即可完成无状态工作负载创建环节。可查看负载详情、返回负载列表。第九步:在工作负载列表中,点击“外部访问地址”,即可开始享受这一虐心小游戏啦~
-
Istio,是一个由Google,Lyft,IBM联合开发的开源项目,是服务网格(Service Mesh)技术的一个标准化的开源实现,致力于解决应用的微服务化组件之间的连接控制与安全、流量管理与可观测性。Istio是云原生领域在Kubernetes之后最受关注的项目,帮助容器技术实践者从基础设施层的“容器编排“进阶到应用层的“服务治理”。Istio先天与Kubernetes无缝衔接,了解并使用Istio可以极大地提升研发和运维的工作效率。Cloud Native Lives之Istio入门实训课课程主题直播介绍观看回放资料下载Istio架构与技术点此了解点击观看下载Istio Pilot与服务发现点此了解点击观看下载Istio Gateway设计与技术点此了解点击观看下载Istio灰度发布与技术实现点此了解点击观看下载Istio xDS协议解析点此了解点击观看下载Istio Mixer架构设计与应用点此了解点击观看下载讲师介绍Idouba.Zhang华为云Istio服务架构师,Istio开源项目贡献者现负责华为云容器服务Istio产品化工作,参与华为PaaS平台产品设计研发,在Kubernetes容器服务、微服务架构、云服务目录、大数据、APM、DevOps工具等多个领域有深入研究与实践。Star.Zhang华为云Istio服务高级工程师,Istio开源项目贡献者现负责华为云容器服务Istio产品化的设计和开发工作。参与华为PaaS平台产品设计研发,在Kubernetes容器服务、微服务、PaaS平台的运维管理等多个领域有深入研究与实践。Fisher.XuIstio开源项目Approver,华为云高级工程师,华为云容器核心开发者,Istio 社区核心贡献者负责华为云容器服务的设计与核心组件开发,对Istio有深入理解。 HzxuzhongIstio开源项目Approver,华为云容器服务核心开发者Istio/Kubernetes社区核心贡献者, 主要负责Istio稳定性与可扩展性以及社区代码检视。对容器、微服务有深入认识。目前主要在istio社区从事性能优化及NetworkScope的实现以支持大规模可扩展性。
-
kubernetes管理员实训培训介绍本系列课程参考CKA (Certificted Kubernetes Administrator)* 知识体系进行课程设计,并结合华为在kubernetes项目推广过程中的实践经验,理论+实践让用户快速掌握kubernetes的使用和维护技能。课程主题直播介绍观看回放材料下载CKA考纲与K8S基础概念解读点此了解点击观看点此下载K8S调度管理实训点此了解点击观看点此下载K8S日志、监控与应用管理实训点此了解点击观看点此下载K8S网络管理实训点此了解点击观看点此下载K8S存储管理实训点此了解点此观看点此下载K8S安全管理实训点此了解点此观看点此下载K8S集群运维与安装配置实训点此了解点此观看点此下载K8S问题排查实训点此了解点此观看点此下载注:CKA (Certificted Kubernetes Administrator) 由 Linux 基金会和 CNCF 联合推出的一项认证计划。详见官网: https://www.cncf.io/certification/cka。主讲大咖介绍王泽锋华为云 Kubernetes 开源负责人,Kubernetes Maintainer华为云PaaS 服务团队核心成员,专注于PaaS产品和容器开源社区。曾主导社区NodeAffinity,PodAffinity,Taints-Tolerations,Forgiveness等多个关键特性的设计开发,对K8S有深入的见解。目前负责华为云K8S开源团队在社区贡献的整体工作。杜军华为云高级工程师,Kubernetes MaintainerKubernetes核心维护者,主导了Network SIG多个核心特性设计、开发,同时是Scheduling, Cluster-lifecycle SIG的子项目owner王波华为云容器服务高级工程师华为云容器服务核心开发者,K8S社区贡献者,负责华为云容器服务多个核心组件设计与开发,对Kubernetes有深入理解。Gloria.Zhao华为云高级工程师华为云容器核心开发者,负责华为云容器服务的设计与核心组件开发,对kubernetes有深入理解。
-
Cloud Native Lives之深入剖析Kubernetes系列课:课程主题直播介绍观看回放资料下载云原生技术的前世今生点此了解观看回放下载K8s初体验-快速部署第一个容器应用 点此了解观看回放下载K8s工作负载原理剖析和体验 点此了解观看回放下载K8s调度器原理剖析和实践点此了解观看回放下载K8S网络原理剖析和实践 点此了解观看回放下载K8S服务发现与负载均衡原理剖析与实践点此了解观看回放下载K8S存储原理剖析与实践 点此了解观看回放下载K8S安全原理剖析和实践点此了解观看回放下载优质品牌课程介绍:Cloud Native,云原生是云计算必然的发展方向。自从Cloud2.0时代来临,许多公司都希望完成传统应用到云端的迁移,但是这个过程中会遇到一些技术难题。云原生包含了一组应用的模式,用于帮助企业快速,持续,可靠,规模化地交付业务软件。云原生的出现,可以改进应用开发的效率,改变企业的组织结构,甚至会在文化层面上直接影响一个公司的决策。Cloud Native Lives,系列直播将带你走进云原生技术的核心,深入浅出的为您讲解云原生技术的方方面面:容器化、微服务、动态管理。结合CNCF(Cloud Native Computing Foundation)社区的成功项目,为您剖析它们的原理及核心技术架构,并在课程中进行实践操作,帮助您快速理解掌握云原生的内涵。讲师团队主要由华为云容器服务团队的核心架构师组成,包括多名CNCF社区的maintainer、committer,负责、参与了多个CNCF社区项目的设计和开发,将带给您最原汁原味云原生讲解。
-
1. 性能优化面对的挑战以下是整个PaaS平台的架构其中主要包括这些子系统:微服务治理框架:为应用提供自动注册、发现、治理、隔离、调用分析等一系列分布式/微服务治理能力,屏蔽分布式系统的复杂度。应用调度与资源管理框架:打通从应用建模、编排部署到资源调度、弹性伸缩、监控自愈的生命周期管理自动化。应用开发流水线框架:打通从编写代码提交到自动编译打包、持续集成、自动部署上线的一系列CI/CD全流程自动化。云中间件服务:应用云化所需的数据库、大数据、通信和应用中间件服务;通过服务集成管控可集成传统非云化的中间件能力。面对一个如此复杂的系统,性能优化工作是一个非常艰巨的挑战,这里有这么一些痛点:源代码及开发组件多,100+ git repo,整体构建超过1天运行架构复杂,全套安装完需要30+VM,200+进程软件栈深,网络平面复杂集群规模大,5k — 10k节点环境搭建非常困难系统操作会经过分布式的多个组件,无法通过单一组件诊断发现系统瓶颈无法追踪上千个处于不同层次的API的时延和吞吐大部分开发人员专注于功能开发,无法意识到自己的代码可能造成性能问题2. 优化分析那么,对于这么一个大的、复杂的系统,从方法论的角度来讲,应该怎么去优化呢?基本思路就是做拆分,把一个大的问题分解为多个互相不耦合的维度,进行各个击破。从大的维度来讲,一个PaaS容器集群,可以分为3个大的子系统。控制子系统:控制指令的下发和运行(k8s),例如创建pod业务流量子系统:容器网络(flannel)、负载均衡(ELB/kube-proxy)监控子系统:监控告警数据的采集(kafka, Hadoop)这个看起来仅仅是一个架构上的划分,那么如何和具体的业务场景对应起来呢?我们可以考虑如下一个场景,在PaaS平台上大批量的部署应用。看看在部署应用的过程中,会对各个子系统产生什么压力。应用软件包大小:400M应用模板大小:10M1000个节点,每个节点一个POD,一个实例10种类型的软件包,依赖长度为3,10GB 网络调度及资源管理 3VM这是一个典型的部署应用的一些规格,那么对于这样的一个输入,我们可以按照架构把压力分解到每个子系统上,这样得出的子系统需要支撑的指标是:控制子系统: kubernetes调度速度 > 50 pods/s,仓库支持300并发下载,>40M/s数据子系统:overlay容器网络TCP收发性能损耗 <5%监控子系统:在上面这个场景中不涉及,但可以从别的场景大致告警处理能力100条/秒这里的业务场景:架构分析:子系统指标,这三者是m:1:n的,也就是说在不同场景下对不同的组件的性能要求不同,最后每个组件需要取自己指标的最大值。指标决定了后续怎么进行实验测试,而测试是要花较大时间成本的,所以在指标的选取上要求少求精,尽量力图用2-3个指标衡量子系统。3. 优化测试 & 工具上面讲的还是偏纸上的推演和分析,接下来进入实战阶段对于服务器后端的程序来讲,推荐使用Promtheus这个工具来做指标的定义和采集。Promtheus的基本工作原理是:后端程序引入Promtheus的SDK,自定义所有需要的测量的指标,然后开启一个http的页面,定期刷新数据。Promtheus服务器会定期抓取这个页面上的数据,并存在内部的时间序列数据库内。这种抓而非推的方式减少了对被测试程序的压力,避免了被测程序要频繁往外发送大量数据,导致自身性能反而变差而导致测量不准确。Promtheus支持这几种数据类型:计数(对应收集器初始化方法NewCounter、NewCounterFunc、NewCounterVec,单一数值,数值一直递增,适合请求数量统计等)测量(对应收集器初始化方法NewGauge、NewGaugeFunc、NewGaugeVec,单一数值,数值增减变动,适合CPU、Mem等的统计)直方图测量(对应收集器初始化方法NewHistogram、NewHistogramVec,比较适合时长等的统计)概要测量(对应收集器初始化方法NewSummary、NewSummaryVec,比较适合请求时延等的统计)我们可以看看在kubernetes项目里面是怎么用的:var ( // TODO(a-robinson): Add unit tests for the handling of these metrics once // the upstream library supports it. requestCounter = prometheus.NewCounterVec( prometheus.CounterOpts{ Name: "apiserver_request_count", Help: "Counter of apiserver requests broken out for each verb, API resource, client, and HTTP response contentType and code.", }, []string{"verb", "resource", "client", "contentType", "code"}, ) requestLatencies = prometheus.NewHistogramVec( prometheus.HistogramOpts{ Name: "apiserver_request_latencies", Help: "Response latency distribution in microseconds for each verb, resource and client.", // Use buckets ranging from 125 ms to 8 seconds. Buckets: prometheus.ExponentialBuckets(125000, 2.0, 7), }, []string{"verb", "resource"}, ) requestLatenciesSummary = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Name: "apiserver_request_latencies_summary", Help: "Response latency summary in microseconds for each verb and resource.",// Make the sliding window of 1h. MaxAge: time.Hour, }, []string{"verb", "resource"}, ) )在这里,一个http请求被分为verb, resource, client, contentType, code这五个维度,那么后面在PromDash上就能图形化的画出这些请求的数量。 从而分析哪种类型的请求是最多,对系统造成最大压力的,如图除了Promtheus,还可以引入其他的测量手段,对系统进行分析。在kubernetes调度过程中,各个状态Pod的数量,看哪一步是最卡的go pprof分析,哪些函数是最耗CPU的4. 优化开发发现了瓶颈之后,下一步就是解决瓶颈,和具体业务逻辑有关,本文在这里就不做过多的阐释。需要对相关代码非常熟悉,在不改变功能的情况下增强性能,基本思路为并发/缓存/去除无用步骤等。5. 优化成果这是我们在kubernetes项目上控制面优化的成果控制面指标华为分支数据社区版数据Master节点数量5无明确数据Node节点(kubemark模拟)数量10000节点5000节点部署吞吐率>100 pod/s约为50 pod/sPod端到端延时<2s<5sAPI延时<79.321ms<1s这里仅仅显示了控制子系统的指标,其他子系统还没有支持那么大的集群,尤其在网络方面,不同用户的网络架构差别很大。所以数据仅供参考。6. 优化的优化在上面的优化过程当中,基本上工程师要做几百次优化的测试和开发。这里会产生一个循环:测试寻找瓶颈点修改代码突破这个瓶颈点重新测试验证这段代码是否有效,是否需要改优化思路这就是一个完整的优化的迭代过程,在这个过程当中,大部分时间被浪费在构建代码、搭建环境、输出报告上。开发人员真正思考和写代码的时间比较短。为了解决这个问题,就需要做很多自动化的工作。在kubernetes优化的过程中,有这么几项方法可以节省时间:kubemark模拟器 :社区项目,使用容器模拟虚拟机,在测试中模拟比达到1:20,也就是一台虚拟机可以模拟20台虚拟机对apiserver产生的压力。在测试过程当中,我们使用了500台虚拟机,模拟了10000节点的控制面行为。CI集成:提交PR后自动拉性能优化分支并开始快速构建CD集成:使用I层的快照机制,快速搭建集群并执行测试案例输出测试报告以上都是在实践过程中总结的一些点,对于不同的项目工程应该有很多点可以做进一步的优化,提升迭代效率。在搭建完这套系统后,我们发现这个系统可以从源头上预防降低系统性能的代码合入主线。如果一项特性代码造成了性能下降,在CI的过程当中,功能开发者就能收到性能报告,这样开发者就能自助式的去查找自己代码的性能问题所在,减少性能工程师的介入。
-
什么是“容器”和“虚拟机”容器和虚拟机它们的目的很相似:即将应用程序和它的依赖放到一个可以在任何环境运行的自足单元中。此外,容器和虚拟机消除了对物理硬件的需求,从而在能源消耗和成本效益方面能让我们更有效地使用计算资源,容器和虚拟机的主要区别在于它们的架构方式。让我们继续深入了解。虚拟机虚拟机在本质上是对现实中计算机的仿真,它会像真实的计算机一样执行程序。使用 “hypervisor” 可以将虚拟机运行于物理机上。hypervisor 可以在主机运行,也可以在“裸机”上运行。让我们来揭开这些术语的面纱:hypervisor(之后都以虚拟机管理程序称呼)是能让虚拟机在其上运行的软件,固件或者硬件。虚拟机管理程序本身会在物理计算机上运行,称为**“主机”**。主机为虚拟机提供资源,包括 RAM 和 CPU。这些资源在虚拟机之间被划分并且可以根据需要进行分配。所以如果一个虚拟机上运行了资源占用更大的应用程序,相较于其它运行在同一个主机的虚拟机你可以给其分配更多的资源。运行在主机上的虚拟机(再次说明,通过使用虚拟机管理程序)通常也被叫做“访客机”。访客机包含了应用以及运行这个应用所需要的全部依赖(比如:系统二进制文件和库)。它还带有一个自己的完整虚拟化硬件栈,包括虚拟化的网络适配器,储存和 CPU-这意味着它还拥有自己成熟的整个访客操作系统。从虚拟机内部来看,访客机的操作都认为其使用的都是自己的专用资源。从外部来看,我们知道它是一个虚拟机-和其它虚拟机一起共享主机提供的资源。就像前面所提到的,访客机既可以运行在托管的虚拟机管理程序上,也可以运行在裸机虚拟机管理程序上。它们之间存在一些重要的差别。首先,托管的虚拟化管理程序是在主机的操作系统上运行。比如说,可以在一台运行 OSX 操作系统的计算机的系统上安装虚拟机(例如:VirtualBox 或者 VMware Workstation 8)。虚拟机无法直接访问硬件,因此必须通过主机上运行的操作系统访问(在我们的例子中,也就是 Mac 的 OSX 操作系统)。托管虚拟机管理程序的好处是底层硬件并不那么重要。主机的操作系统会负责硬件的驱动而不需要管理程序参与。因此这种方式被认为具备更好的“硬件兼容性”。在另一方面,在硬件和管理程序之间这个额外的附加层会产生更多的资源开销,这会降低虚拟机的性能。裸机虚拟机管理程序通过直接在主机硬件上安装和运行来解决这个性能问题。因为它直接面对底层的硬件,所以并不需要运行在主机的操作系统之上。在这种情况下,安装在主机上第一个作为操作系统运行的就是这个裸机虚拟机管理程序。与托管虚拟机管理程序不同,它有自己的设备驱动直接与每个组件交互,以执行任何 I/O,处理或特定于操作系统的任务。这样可以获得更好的性能,可伸缩性和稳定性。这里的权衡在于其对硬件的兼容性有限,因为裸机虚拟机管理程序内置的设备驱动只有那么多。在讨论了虚拟机管理程序之后,你可能想知道为什么我们需要在虚拟机和主机之间这个额外的“虚拟机管理程序”层。好吧,虚拟机管理程序在其中确实发挥了重要的作用,由于虚拟机拥有自己的虚拟操作系统,管理程序为虚拟机管理和执行访客操作系统提供了一个平台。它允许主机与作为客户端运行的虚拟机之间共享其资源。虚拟机图示正如你可以在图示中所看到的,VMS 会为每个新的虚拟机打包虚拟硬件,一个内核(即操作系统)和用户空间。容器与提供硬件虚拟化的虚拟机不同,容器通过抽象“用户空间”来提供操作系统级别的虚拟化。当我们详解容器这个术语的时候你就会明白我的意思。从所有的意图和目的来看,容器看起来就像一个虚拟机。比如说,它们有执行进程的私有空间,可以使用 root 权限执行命令,具有专有的网络接口和 IP 地址,允许自定义路由和 iptable 规则,可以挂载文件系统等。容器和虚拟机之间的一个重要区别在于容器和其它容器共享主机系统的内核。容器图示这图表明容器只会打包用户空间,而不是像虚拟机那样打包内核或虚拟硬件。每个容器都有自己独立的用户空间从而可以让多个容器在单个主机上运行。我们可以看到所有操作系统级别的体系架构是所有容器共享的。要从头开始创建的部分只有 bins 和 libs 目录。这就是容器如此轻巧的原因。Docker 是从哪来的?Docker 是基于 Linux 容器技术的开源项目。它使用 Luinux 的内核功能(如命名空间和控制组)在操作系统上创建容器。容器已经远远不是一个新技术:Google 已经使用他们自己的容器技术好多年了。其它的容器技术包括 Solaris Zones、BSD jails 和 LXC 也已经存在好多年。那么为啥 Docker 会突然取得成功呢?使用简单:Docker 使得任何人(开发人员,运维,架构师和其他人)都可以更轻松的利用容器的优势来快速构建和测试可移植的应用程序。它可以让任何人在他们的笔记本电脑上打包应用程序,不需要任何修改就可以让应用运行在公有云,私有云甚至裸机上。Docker 的口头禅是:“一次构建,处处运行”。速度:Docker 容器非常轻量级和快速。因为容器只是运行在内核上的沙盒环境,因此它们占用的资源更少。与可能需要更多时间来创建的虚拟机相比,你可以在几秒钟内创建一个 Docker 容器,因为虚拟机每次都必须启动一个完整的操作系统。Docker Hub:Docker 用户也可以从日益丰富的 Docker Hub 生态中受益,你可以把 Docker Hub 看作是 “Docker 镜像的应用商店”。Docker Hub 拥有数万个由社区构建的公共镜像,这些镜像都是随时可用的。在其中搜索符合你需求的镜像非常容易,你只需要准备拉取镜像而且几乎不需要任何修改。模块化和可扩展性:Docker 可以让你轻松地把应用程序按功能拆分为单个独立的容器。比如说,你的 Postgre 数据库可以运行在一个容器中,Redis 服务运行在另一个容器中,而 Node.js 应用运行在另一个容器中。使用 Docker,将这个容器链接在一起以创建你的应用程序将会变得更简单,同时在将来可以很轻松地扩展和更新单独的组件。最后但并不重要的是,有谁不喜欢 Docker 的鲸鱼(Docker 的标志)呢?:)
-
KubeEdge v0.2发布KubeEdge在18年11月24日的上海KubeCon上宣布开源的一个开源项目,旨在依托K8S的容器编排和调度能力,实现云边协同、计算下沉、海量设备的平滑接入。KubeEdge脱胎于华为云IEF服务,是第一个具备在生产环境部署能力的边缘计算领域开源项目。前几天K8S IOT/Edge工作组发布了关于边缘计算的白皮书,并将KubeEdge作为K8S在IOT/Edge场景下的参考架构。KubeEdge架构上包含两部分,分别是云端和边缘侧。云端负责应用和配置的下发,边缘侧则负责运行边缘应用和管理接入设备。在v0.2版本中,KubeEdge团队决定开放云端代码,这样KubeEdge v0.1和v0.2的发布分别创造了两个记录:全球首个开源的支持容器部署的边缘计算平台;全球首个开放云边协同能力的边缘计算平台;KubeEdge v0.2 的发布意味着任何人都可以在自己的环境中部署一个完整的涵盖云、边、设备的边缘计算解决方案。另外本次更新还在 v0.1 的基础上新增了云上两个重要组件,分别是:CloudHub和EdgeController,架构如下所示:其中:Cloudhub负责接收EdgeHub同步到云端的信息;EdgeController用于控制K8S API Server与边缘的节点、应用和配置的状态同步;用户可以直接通过kubectl命令行在云端管理边缘节点、设备和应用,使用习惯与K8S原生的完全一致,无需重新适应。Rancher发布轻量级Kubernetes发行版 K3s近期,容器管理软件提供商 Rancher Labs宣布推出轻量级的 Kubernetes 发行版 K3s,这款产品专为在资源有限的环境中运行 Kubernetes 的研发和运维人员设计。根据Rancher描述,为了减少运行Kubernetes所需内存,k3s主要专注于以下三个方向的变化:删除旧的、非必须的代码整合正在运行的打包进程使用 containerd 代替 Docker 作为运行时的容器引擎除了 etcd 之外,引入 SQLite 作为可选的数据存储k3s官方描述的主要使用场景为:边缘计算与应用程序绑定使用嵌入式设备整体来看,k3s相当于kubernetes针对边缘计算等特殊场景的裁剪和优化,而并非专门专门边缘计算场景的解决方案,未来可能还需要长足的演进和适配过程。阿里宣布开源 Flutter 应用框架 Fish Redux3 月 5 日,闲鱼宣布在 GitHub 上开源 Fish Redux,Fish Redux 是一个基于 Redux 数据管理的组装式 flutter 应用框架, 特别适用于构建中大型的复杂应用,它最显著的特征是 函数式的编程模型、可预测的状态管理、可插拔的组件体系、最佳的性能表现。Redux 是来自前端社区的一个用来做 可预测易调试 的数据管理的框架,所有对数据的增删改查等操作都由 Redux 来集中负责。Redux 核心仅仅关心数据管理,不关心具体什么场景来使用它,这是它的优点同时也是它的缺点。在实际使用 Redux 中可能面临两个具体问题:Redux 的集中和 Component 的分治之间的矛盾;Redux 的 Reducer 需要一层层手动组装,带来的繁琐性和易错性;Fish Redux 通过 Redux 做集中化的可观察的数据管理,并且针对传统 Redux 在使用层面上的缺点,在面向端侧 flutter 页面纬度开发的场景中,通过更好更高的抽象,做了改良。开源之后,闲鱼打算通过以下方式来维护 Fish Redux:通过后续的一系列的对外宣传,吸引更多的开发者加入或者使用。配合后续的一系列的闲鱼 Flutter 移动中间件矩阵做开源;进一步提供,一系列的配套的开发辅助调试工具,提升上层 Flutter 开发效率和体验;又现云平台宕机企业应如何尽量避免损失北京时间2019年3月2日23:55分左右开始,监控发现华北2地域部分ECS实例及部分EMR、RDS on ECS、DTS、DBS实例及服务状态异常,事后于3月3日阿里云工程师紧急排查处理,并且逐步恢复异常实例。细数这两年,国际主流云厂商在安全性和可靠性层面做了不少努力,但所有服务都不可能百分百稳定,尽管云平台会发生故障,但企业对云的信赖度依然很高。Gartner 研究主管 Sid Nag 曾表示,云服务市场的增长速度比几乎所有 IT 市场都要快,其中大部分增长是以传统非云服务为代价,尤其是基于云计算的 IaaS 需求在继续增长,预计将在未来 5 年呈现最快增长趋势。在云计算出现之前,企业内部自建数据中心依旧会出现很多问题,不少问题甚至是致命的。上云之后,公有云厂商至少可以帮助技术能力有限的企业进行合理范围内的监控、预警和备份。不可否认,云的出现确实解决了现阶段企业在计算、存储等方面的很多问题。但作为企业而言,完全依靠云计算厂商提供安全性的做法是不可取的。云环境的同城双活、异地灾备等方案基本就绪,尽量在经济和人员条件可行的情况下使用这些分散风险的方法。如果故障只出在一个服务器集群,采用异地灾备方案可以在最快时间切换到另一个集群,从而保持系统可用。虽然还是会有中断,但是可以最快时间恢复。按照此模式,云下系统做云上灾备也是防范传统环境出现可用性问题的一种重要手段。作为企业的 IT 人员,日常做到以下四点可以尽可能避免云故障带来的损失。•备份、备份,还是备份,要异机异地;•数据容灾;•业务双活;•定期对灾备和双活进行演练。从统计上看,中小企业的运维水平远低于主流云平台,故障概率要高得多,损失更不可控。因此,不必对云服务故障抱有恐惧,只需要保持正常的认知和高度灾备意识即可。
-
ServiceComb的rest支持两个通道:transport-rest-vertxtransport-rest-servlet一般来说,只需要使用其中一个,但是也有可能同时使用,当通过maven将它们同时引入依赖时,初始化策略如下:先尝试transport-rest-servlet如果servicecomb.rest.address指定的端口,已经被监听了,则认为端口被servlet容器监听了(实际不一定,还可能是其他进程,这里不再做识别),需要启用transport-rest-servlet如果端口未被监听,则说明servicecomb.rest.address配置的端口与servlet容器不同,不需要启用transport-rest-servlet再尝试transport-rest-vertx如果servicecomb.rest.address指定的端口未被监听,则说明需要启用transport-rest-vertx,否则不需要启用如果所有两个通道,都判定为不需要启用,则说明肯定不是期望的结果,此时会报“all transport named rest refused to init”注: 当只引入一个依赖时,其实也是按上面的逻辑判定,只不过引入哪个依赖,就按哪个依赖的逻辑运行 如果最终无法启用,则一样会报这个错误
-
本次课程希望能够帮助您深入理解华为云镜像服务,包括私有镜像与公共镜像之间的区别,探讨当前华为云镜像服务的各种功能。 简单的说,镜像就好像是克隆体,它可以把一个已有的云主机操作系统和应用服务,快速的复制到您的云主机中,省时又省力。 温馨小提示:还没有华为云账户来体验本节课程的操作吗?戳这里,免费注册华为云账户!有账户没有云服务器?戳这里,免费试用4核8G高速云服务器! 镜像是一个包含了软件及必要配置的云服务器模版,包含操作系统或业务数据,还可以包含应用软件(例如,数据库软件)和私有软件。 选择使用的镜像类型创建弹性云服务器时,在选择完规格后接下来就是选择镜像。华为云支持使用公共镜像、私有镜像、共享镜像、市场镜像创建云服务器。知识拓展:什么是镜像服务?镜像的常见格式有哪些? 选择“公共镜像”:云平台提供的公共镜像,包括操作系统以及预装的公共应用,所有用户可见,请根据您的实际情况自助配置应用环境或相关软件。当前云平台所有支持的操作系统均在下拉列表中可见。 使用公共镜像创建的云服务器可以提供官网OS的技术支持。 同时,公共镜像预装了Cloudbase-Init/Cloud-Init工具、PV driver、UVP VMTools等常用工具,免去了用户自定义安装配置。 我本次购买选择的是Ubuntu 24.0的公共镜像。可以在后期云服务器购买完成后检查是否已经安装了上述工具。 知识拓展:Cloud-Init可以对新创建的云服务器中指定的自定义信息(主机名、密钥和用户数据等)进行初始化配置。点击获取:如何检查云服务器是否已经安装Cloud-init工具?云服务器的正常运行依赖于XEN Guest OS driver(PV driver)和KVM Guest OS driver(UVP VMTools),为了同时支持XEN虚拟化和KVM虚拟化,需要确保镜像安装了PV driver和UVP VMTools。点击获取:如何查看Windows操作系统云服务器虚拟化类型?、如何查看Linux操作系统云服务器器虚拟化类型?选择“私有镜像”:用户自己制作的, 包含操作系统或业务数据,预装了用户的私有应用的镜像,仅用户自己可见。 我们可以在镜像服务的列表页面详细查看当前区域下可用的私有镜像。 注意:在创建私有镜像时需自行安装Cloud-init,最近镜像服务新增“采用源码编译安装方法”,Cloud-init配置的相关内容已在源码包编译完成,采用源码编译安装方法安装Cloud-init后无需执行Cloud-init配置操作,创建私有镜像时推荐大家使用源码编译方法安装Cloud-init。 知识拓展:如需指定云服务器的镜像,请提前使用指定云服务器创建私有镜像:使用Windows云服务器创建私有镜像。如需使用本地的镜像文件,请提前将镜像文件导入并注册为云平台的私有镜像:如何将外部镜像文件注册为华为云平台私有镜像。如需使用其他区域的私有镜像,请提前复制镜像:跨区域复制镜像。选择“共享镜像”:其他用户共享的私有镜像,作为自己的镜像进行使用、可以用来创建云服务器、裸金属服务器和云硬盘。 如果需要使用其他账号的私有镜像,请提前完成镜像共享。我们可以在镜像服务的列表页面详细查看当前区域下可用的共享镜像。 知识拓展:当前镜像共享的范围只能在区域内。如需跨区域共享镜像可以和镜像服务当前的跨区域复制镜像功能相互结合,先跨区域复制镜像至同一区域,然后再共享镜像。选择“市场镜像”:第三方提供的预装操作系统、应用环境和各类软件的优质镜像。 市场镜像的优势在于提供预装操作系统、应用环境和各类软件的优质第三方镜像。 按照市场镜像的协议购买后,即可享受第三方的服务支持,无需配置,可一键部署,满足建站、应用开发、可视化管理等个性化需求。当前很多基础功能的市场镜像是免费的,只需支付云服务器的按需/包年包月的费用。 知识拓展:使用市场镜像部署WordPress(Windows)使用市场镜像部署Windows环境趣味课堂:镜像服务针对各种类型的镜像制作一张精美问云图说,可以快速了解公共镜像、私有镜像、共享镜像、市场镜像与弹性云服务器之间的关系,推荐大家点击查看。镜像服务最新推出的整机镜像功能支持使用弹性云服务器携带其挂载的数据盘一起创建整机镜像,创建的整机镜像包含用户的业务数据,可用于快速发放包含用户业务数据的弹性云服务器。 - 使用云服务器创建整机镜像 - 使用云服务器备份创建整机镜像随堂小测当前华为云镜像服务仅支持在同一区域内共享镜像,如果用户小A想要将华北-北京1的私有镜像共享至用户小B的华南-深圳区域,应该怎样实现呢? 随堂小测奖励规则:1、通过直接回帖的方式回答小测,我们会根据回答正确答案的先后顺序打分:2、回答正确的前十名朋友可以获得分数,即:第一个回答正确得10分,第二个回答正确得9分……以此类推;3、每五次随堂小测一汇总,得分最高的朋友将得到实物奖励(荣耀手环一个); 希望大家踊跃回答,更多奖励等你来拿哦~~~~ 【往期回顾】 【第一课】我该怎么选择云主机的规格?
-
镜像交付流水线ContainerOps是华为云容器镜像服务(SWR)推出的面向从源代码到生产上线全流程服务,提供镜像仓库、镜像构建、版本管理、交付流水线等一系列服务,助力企业落地容器DevOps最佳实践。镜像交付流水线ContainerOps正在公测中,点此立即体验:https://console.huaweicloud.com/swr?c_yuntu ContainerOps帮助中心文档,请参见https://support.huaweicloud.com/usermanual-swr/swr_01_0034.html更多产品信息请点击:https://www.huaweicloud.com/product/cce.html0元起体验云原生之旅:https://activity.huaweicloud.com/cloudnative.html?ggw_hd更多免费体验请点击:https://www.huawei.com/audience/answer.do?u=1664982欢迎关注官方公众号了解更多云原生内容:
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签