关于容器:龙蜥社区与您相约-2023-KubeCon

作为云原生畛域最负盛名的技术大会之一,KubeCon + CloudNativeCon + Open Source Summit China 2023 吸引寰球顶尖的云原生专家们汇聚其中。2023 年 9 月 26-28 日,将于上海跨国洽购会展中心展现最前沿的技术创新,上百位嘉宾带来上百场主题演讲,为所有与会者提供了交换、学习和摸索 " 黑科技 " 的绝佳机会,走近翻新前沿,聚焦云原生、开源的新倒退。 龙蜥社区受邀加入本次大会,9 月 28 日,社区技术专家、云原生SIG Contributor 吴超将带来主题演讲《通过 containerd 和 Kata Containers 接口演进进步节点稳定性》,欢送大家关注。 更多具体议程点击此链接查看: https://www.lfasiallc.com/kubecon-cloudnativecon-open-source-... 另外, KCD 杭州站将于 2023 年 10 月 21 日举办,此次流动由云原生供应链以及 AI 基础设施两个方向主题会场组成,议程包含软件供应链、AI Infra、容器镜像、DevOps、可观测、平安等热点畛域,欢送大家参会。 KCD 杭州站主页:https://community.cncf.io/e/myjve4/ —— 完 ——

September 27, 2023 · 1 min · jiezi

关于容器:ACK-酷体验丨以-AI-为笔描绘-9-月该有的样子

AIGC 的暴火,使寰球用户对 AI 的关注和探讨热度达到新高。AI 与云原生的交融,也正在悄悄引领一场新的反动。 容器、Kubernetes、服务网格、Serverless 等为代表的云原生技术带来的对立架构、分布式解决、对立技术栈、标准化交付、可观测性和极致弹性能力,为 AI 大规模生产和遍及按下减速键。 阿里云容器服务 ACK 是寰球首批通过 Kubernetes 一致性认证的产品。为了让大家更好地学习、体验阿里云容器服务 ACK 在 AI 场景的利用,阿里云开发者社区与云原生利用平台邀请到广受开发者青睐的 Bilibili 出名科技区 UP 主 CodeSheep 程序羊,解说如何通过应用 ACK Serverless 版部署 Stable Diffusion,疾速感触 AIGC 的离奇体验。 学用 ACK 部署文生图利用,描述“我的9月”流动简介9 月对于大多数人来说,都有雷同的回顾;9 月对于每个人来说,都有不同的意义。咱们的脑海里都有一张 9 月的画面。让咱们跟着 Codesheep 学习应用 ACK Serverless 部署 Stable Diffusion,以 AI 为笔,创作你认为 9 月该有的样子。 流动工夫即日起至 2023 年 9 月 30 日。 流动玩法3 步实现用 ACK Serverless 部署 Stable Diffusion,前 100 名实现送联想鼠标! Step 1: 收费支付 ACK Serverlsee(个人版)或 ACK Serverless(企业版)任意一款云产品;Step 2: 观看 B 站 UP 主 CodeSheep 教学视频,追随视频、文档教程用领用的 ACK Serverless 实现 Stable Diffusion 部署;Step 3: 点击“提交作品”,分享你用 Stable Diffusion 创作的对于“我的 9 月”相干 AI 照片,并附上 50 字以内的文字介绍;同时分享你的头像并邀请好友点赞,即有机会取得天猫精灵、定制双肩包、定制 T 恤、联想有线鼠标等精美好礼。注:本次流动仅限首次领用 ACK Serverless 产品试用用户,流动详情请点击文末 “浏览原文” ,登录官网查看,感谢您的反对。 ...

September 4, 2023 · 1 min · jiezi

关于容器:使用-Amazon-Lambda-进行无服务器计算云架构中的一场革命

引言十年前,无服务器架构还像是痴人说梦。不再如此了! 有了 Amazon Lambda,咱们当初能够建构和运行应用程序而不须要思考服务器。云供应商会无缝地解决所有服务器的供给、扩大和治理。咱们只须要关注代码。 这为云部署带来了前所未有的敏捷性、自动化和优化。然而,要施展它的全副后劲须要对 Lambda 独特的架构和能力有扎实的把握。这篇文章旨在通过理论示例、经验教训和以工程师视角深刻外部工作原理来揭开它的魔力! 亚马逊云科技开发者社区为开发者们提供寰球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、流动与比赛等。帮忙中国开发者对接世界最前沿技术,观点,和我的项目,并将中国优良开发者或技术举荐给寰球云社区。如果你还没有关注/珍藏,看到这里请肯定不要匆匆划过,点这里让它成为你的技术宝库!什么是无服务器计算?在深入探讨 Lambda 之前,让咱们先厘清“无服务器“的真正含意。无服务器并不意味着齐全没有服务器。物理服务器依然为云基础设施提供反对。 要害的区别在于开发人员不须要间接供给或治理这些服务器。云供应商将基础设施复杂性形象进去。咱们的代码部署在短暂的容器中,这些容器是事件驱动的,会主动扩大,并且仅针对耗费的资源进行计费。 这种“无服务器,无运维“的模型将老本与使用量高度对齐,并减速了开发。传统的服务器、虚拟机和容器在许多工作负载中依然施展着其作用。然而 Lambda 在解决事件驱动和瞬态计算需要方面体现卓越。 Lambda 执行模型Lambda执行模型与传统架构有基本不同。让咱们来分析一下底层产生的事件 一些要害方面: 无状态:每次执行都在独自的容器中进行。执行之间没有亲和关系。短暂:容器能够在毫秒内初始化和销毁。事件驱动:执行由配置的事件触发。可扩大: 依据队列深度动静增加和删除容器。无服务器:咱们不治理容器基础设施。亚马逊云科技解决所有这些。 通过这种模型,Lambda 能够外在地解决许多并行申请并按需扩大。咱们的代码只关注业务逻辑。 接下来咱们看看 Lambda 执行中的生命周期事件。Lambda 函数生命周期当产生事件调用时,Lambda 会经验一个明确定义的生命周期: 冷启动:对于首次调用,Lambda 必须初始化一个容器。这会导致一些提早。初始化和调用:代码被加载并执行。调用处理程序办法。敞开:一次执行实现后,容器进行。任何后续的执行都会重用热容器。 了解这种冷启动开销对于优化 Lambda 性能至关重要。咱们看看上面如何做。优化 Lambda 冷启动没有什么比冷启动慢更让人苦楚的了。侥幸的是,有一些通过验证的技术能够缓解这一问题: 应用容器重用:设置非零超时,以便容器在调用之间放弃存在。优化部署程序包大小:删除不须要的依赖项和工件以最小化下载工夫。抉择高性能运行时:Go、Python 和 NodeJS 初始化开销很低。预取容器:应用预配置并发性放弃容器初始化。优化IAM角色:应用 Amazon SSO 等服务缩小角色承当的提早。做好冷启动是一门艺术和迷信!有了上述技巧,咱们能够轻松实现亚秒级的冷启动。 当初让咱们转而看一些Lambda理论利用的示例。 Lambda 应用案例凭借 Lambda 灵便的执行模型,可能性是无穷的。上面是一些喜爱的 Lambda 应用形式: 数据处理 流解决用于实时剖析批量数据转换生成聚合报告集成和消息传递 通过 SQS 触发用于分布式工作负载对 SNS 告诉做出反馈服务之间的集成粘合剂Web 应用程序 运行无服务器后端提供 API 网关反对预处理 HTTP 申请基础设施自动化 自定义自动化工作流程程序化资源管理自我修复能力等等!Lambda 仅由咱们的创造力所限。 为了更具体,咱们接下来演练一个实在的无服务器 Web 应用程序。 构建一个无服务器 Web 应用程序咱们来看看 Lambda 如何反对可扩大的无服务器 Web 架构: ...

August 28, 2023 · 1 min · jiezi

关于容器:2023容器网络趋势CNI网络插件逐渐普及KubeOVN受欢迎度持续攀升

往年,Kube-OVN 社区联结OSCHINA、云原生社区独特发动了《2022-2023容器网络应用状况调研》,失去了少量K8s/容器网络技术人员的关注。 本调研旨在更加直观地理解各行业企业容器网络的应用现状,以及Kube-OVN在社区用户中的应用状况,以便更全面地评估容器网络倒退方向,更有针对性地布局Kube-OVN社区的倒退门路。 为期一个月的调研已圆满结束,咱们共收到来自互联网、金融、运营商、交通、制作、教育、医疗等行业容器网络从业者的累计288份无效问卷。本报告将深刻分析问卷中的第一手数据,为继续关注容器网络计划的搭档们提供参考。 受访者详情:传统行业占比减少,容器网络插件用户范畴逐步扩充参加本次调研的用户中,开发岗位占31%,运维29%,架构师19%,其余21%,与上期数据相比,除了上述岗位从业者之外,还吸引了DevOps、平安、SRE工程师参加,阐明有越来越多细分畛域的IT从业者开始积极关注容器网络技术。 其中,来自互联网行业的用户占比42.71%,较上一期的57.3%有了显著的降落;而金融、运营商、政府及公共事业、制作、能源、批发、地产等传统企业占比51.04%,相比上期调研 35.4%的数据来说,有了大幅晋升。能够看出,随着云原生技术的遍及,传统行业对于容器的应用不断深入。而容器网络作为实现容器化应用程序弹性扩大、服务通信、多云部署和平安治理的重要工具,必将受到越来越多的关注。 对于容器运行环境的数据显示,在被调研企业中,容器运行在私有云和虚拟机中的比例依然最高,但同时运行在裸金属上的比例逐年减少,从上期的45%晋升至50%。在裸金属环境中运行容器意味着容器利用能够间接拜访物理硬件资源,从而可能提供更好的网络性能和安全性,以及更灵便的网络配置选项。 用户以后网络计划应用现状:Kube-OVN使用率靠近Calico 在目前采纳的容器网络计划考察环节,Kube-OVN 采纳占比曾经疾速升至47.39%,较去年的40%有了显著晋升,使用率已靠近Calico。 在IPv6和双栈网络的应用考察中,在生产环境中应用IPv6或双栈容器网络的用户大幅减少,达到了30.21%,远超上期的10%。表明有越来越多的组织和用户开始采纳IPv6来满足日益增长的连贯需要。可能有多种因素推动了这个增长,包含网络提供商和云服务提供商对IPv6的反对、IPv6规范的遍及、政策的推动以及用户对更先进网络性能和寰球互联的需要减少等。 同时,网络多租户(VPC)计划以及容器网络和物理网络的买通依然是大部分用户的外围诉求。用户对于网络多租户计划的需要更多源于对于安全性、资源隔离和灵活性的思考,而将容器网络与物理网络买通,能够实现容器利用与其余网络资源之间的互通和协同,提供更全面的网络性能和资源拜访。 对于Kube-OVN的期待:增强流量监控、减少近程流量镜像 在应用Kube-OVN性能的调研中,与上期调研数据整体出现平均化的态势相比,用户在对Kube-OVN的性能应用上呈现出了差异化的趋势,子网网关管制、固定IP、Underlay/Vlan等性能曾经被宽泛应用,VPC网络、epbf等新增高级性能也受到了越来越多用户的欢送,多子网反对依然是用户应用最广泛的性能之一。 在用户抉择容器网络工具时最关注的能力这一调研中,抉择稳定性的占比超过60%,其次是性能和监控运维能力。这意味着对于用户来说,稳定性至关重要。容器网络工具必须可能在生产环境中稳固运行,并提供牢靠的网络连接和通信,能力确保应用程序和服务的连续性和可靠性,缩小中断和故障的危险。 用户对Kube-OVN将来的期待次要集中在7层流量监控上,此外还有近程流量镜像、DPU反对、IPsec加密等也有用户提及。将来,Kube-OVN将持续优化性能和稳定性,并逐渐引入上述新的性能。 最初,咱们期待有更多的用户退出Kube-OVN社区,独特打造更高性能、更好用的容器网络插件! *本报告中的行业数据次要为撰写组采纳市场调研、行业访谈及其他钻研办法,并联合Kube-OVN社区、OSCHINA、云原生社区受访者提供的数据样本取得,咱们致力确保数据的准确性和可靠性,并通过严格的数据分析和验证。然而,鉴于咱们所接触到的调研对象可能次要波及已接触过Kube-OVN的用户,因而对于调查结果可能存在肯定水平的偏倚。报告内容仅供参考,Kube-OVN社区对该报告的数据和观点不承当法律责任。感谢您对本调研报告的关注和反对。

July 4, 2023 · 1 min · jiezi

关于容器:基于阿里云-Serverless-容器服务轻松部署企业级-AI-应用

数禾科技 AI 模型服务基于云原生架构,为不同业务环节提供智能决策反对。随着业务的疾速倒退,摆在数禾背后的难题是撑持模型计算的底层利用资源无奈依据申请量来调整机器资源反对运算能力。同时,随着模型在线推理服务数量的减少,数禾的模型服务也变得越来越宏大、臃肿,难以治理。这种情况不仅导致了资源节约,还减少了保护和降级的老本。 为了解决这些“顽疾”,数禾科技采纳阿里云 ASK 部署线上模型,无需 K8s 节点治理,依据实时流量动静应用 POD,资源老本节俭 60%;通过 ASK Knative 服务,解决了数禾模型的灰度公布和多版本并存问题;得益于ASK 主动伸缩和缩容到 0 的劣势,升高运行老本,大幅晋升服务可用性。 残缺内容请点击下方链接查看: https://developer.aliyun.com/article/1246848?utm_content=g_10... 版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。

July 4, 2023 · 1 min · jiezi

关于容器:Linux系统系统管理resize2fs命令-–-同步文件系统容量到内核

resize2fs命令来自于英文词组“resize to filesystem”的缩写,其性能是用于同步文件系统容量到内核。如对ext3、ext4、XFS等设施卷容量进行了调整,则须要应用resize2fs命令同步信息到零碎内核。 语法格局:  resize2fs [参数] 设施 测试环境:Centos7.6零碎-服务器来自: 蓝易云 香港五网CN2网络 ,国内速度优良,反对VPC内网互联、快照、备份等性能。 挪动+联通+电信+教育网+广电-五网CN2-提早超低! 罕用参数: -d关上调试个性-p打印已实现的百分比进度条-f强制执行调整大小操作-F刷新文件系统设施的缓冲区参考实例 同步文件系统容量信息到零碎内核: [root@linuxcool ~]# resize2fs /dev/sdbresize2fs 1.44.3 (10-July-2018)The filesystem is already 5242880 (4k) blocks long. Nothing to do!同步文件系统容量信息到零碎内核,并显示百分比进度条: [root@linuxcool ~]# resize2fs -p /dev/sdb强制同步零碎容量信息到零碎内核: [root@linuxcool ~]# resize2fs -f /dev/sdb刷新文件系统设施的缓冲区,随后同步容量信息到零碎内核: [root@linuxcool ~]# resize2fs -F /dev/sdb

June 21, 2023 · 1 min · jiezi

关于容器:Linux系统gzip命令-–-压缩和解压文件

gzip命令来自于英文单词gunzip的缩写,其性能是用于压缩和解压文件。gzip是一款应用宽泛的压缩工具,文件通过压缩后个别会以.gz后缀结尾,与tar命令合用后即为.tar.gz后缀。 据统计,gzip命令对文本文件的压缩比率通常能达到60%~70%,压缩后能够很好的晋升存储空间的使用率,还可能在网络传输文件时缩小等待时间。 语法格局:gzip [参数] 文件 本次测试环境:Centos7.6零碎-服务器来自:蓝易云 香港五网CN2网络 ,国内速度优良,反对VPC内网互联、快照、备份等性能。 挪动+联通+电信+教育网+广电-五网CN2-提早超低! 蓝易云持有 IDC 、 ISP 、CDN许可证,为正规商家。 罕用参数: -a应用ASCII文字模式-d解开压缩文件-f强行压缩文件-k保留原文件-l列出压缩文件的相干信息-c把压缩后的文件输入到规范输出设备,不去更动原始文件-r递归解决,将指定目录下的所有文件及子目录一并处理-q不显示正告信息参考实例 将指定的文件进行压缩,压缩包默认会以“原文件名.gz”保留到当前工作目录下,原文件会被主动删除: [root@linuxcool ~]# gzip anaconda-ks.cfg解压指定的压缩包文件,并显示解压过程。解压后的文件会保留在当前工作目录下,压缩包会被主动删除: [root@linuxcool ~]# gzip -dv anaconda-ks.cfg.gz anaconda-ks.cfg.gz: 44.3% -- replaced with anaconda-ks.cfg将指定的文件进行压缩,然而不删除原文件: [root@linuxcool ~]# gzip -k initial-setup-ks.cfg显示指定文件的压缩信息: [root@linuxcool ~]# gzip -l initial-setup-ks.cfg.gz compressed uncompressed ratio uncompressed_name 929 1585 43.8% initial-setup-ks.cfg

June 15, 2023 · 1 min · jiezi

关于容器:Koordinator-最佳实践系列精细化-CPU-编排

介绍在云原生环境中,集群提供者经常将不同类型的工作负载部署在同一个集群中,利用不同业务的不同峰值成果,实现资源分时复用,防止资源节约。然而,不同类型负载之间混合部署经常会导致资源竞争和互相烦扰。最为典型的场景便是在线和离线负载的混合部署。当离线较多的占用计算资源时,在线负载的响应工夫就会受到影响;当在线长时间较多的占用计算资源时,离线负载的工作实现工夫不能失去保障。这种景象属于 Noisy Neighbor 问题。 依据混合部署的水平、资源类型的不同,解决该问题有许多不同的思路。Quota 治理可从整个集群维度限度负载的资源使用量,Koordinator 在这方面提供了多层次弹性 Quota 治理性能[1]。单机维度上看,CPU、内存、磁盘 IO,网络资源都有可能被不同负载共享。Koordinator 在 CPU、内存上曾经提供了一些资源隔离和保障的能力,磁盘 IO 和网络资源方面的相干能力正在建设中。 本文次要介绍当不同类型工作负载混合部署在同一个节点上时,Koordinator 如何帮忙负载之间(在线和在线、在线和离线)协同地共享 CPU 资源。 问题形容CPU 资源 Noisy Neighbor 的实质是不同的负载之间无协同地共享 CPU 资源。 Kubernetes 默认的资源模型利用 cgroup(cfs quota) 从 CPU 工夫使用量上来限度不同负载对于 CPU 资源的拜访。这种状况下,一些负载就可能会被操作系统调度器切换所在的 CPU 核。因为不同 CPU 核查不同物理地位的内存拜访工夫不同,切换大概率会导致更长的内存拜访工夫,从而影响负载性能。在 NUMA 架构中,SMT 线程(逻辑核)共享物理核的执行单元和 L2 缓存。当同一个物理核中有多种工作负载时,不同工作负载间就会产生资源争抢,导致负载性能降落。Kubernetes 在单机侧提供了拓扑管理器和 CPU 管理器来尝试解决上述问题。然而,该性能只有在 Pod 曾经调度到机器上之后才会尝试失效。这样就有可能导致 Pod 会被调度到 CPU 资源满足然而 CPU 拓扑不满足负载要求的状况。 解决方案面向利用的 CPU 编排 QoS 语义针对上述问题和有余,Koordinator 设计了面向利用的 QoS 语义和 CPU 编排协定,如下图所示。 LS(Latency Sensitive)利用于典型的微服务负载,Koordinator 将其与其它的提早敏感型负载隔离保障其性能。LSR(Latency Sensitive Reserved)相似于 Kubernetes 的 Guaranteed,在 LS 的根底上减少了利用要求预留绑核的语义。LSE(Latency Sensitive Exclusive)则常见于中间件等对 CPU 特地敏感的利用,Koordinator 除了满足其相似于 LSR 要求绑核的语义外,还确保其所被调配的 CPU 不与任何其它负载共享。 ...

June 12, 2023 · 3 min · jiezi

关于容器:硅基仿生业务全面-Serverless-容器化14万问答库助力糖尿病科普

背景深圳硅基仿生科技股份有限公司成立于 2015 年,致力于慢病治理畛域的翻新医疗器械研发与产业化,公司规模超 500 人。外围团队由清华、北大、加州理工、普林斯顿、华盛顿大学等名校理工科科学家率领,次要我的项目包含间断血糖监测(CGM)、AI 眼底筛查、人工视网膜、胶囊胃镜机器人等,在多个细分畛域突破国外技术垄断,引领基础学科与行业技术倒退,先后承当和参加国家科技部重点研发我的项目 3 项,成为国内翻新医疗器械畛域准独角兽企业。 残缺内容请点击下方链接查看: https://developer.aliyun.com/article/1127640?utm_content=g_10... 版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。

May 16, 2023 · 1 min · jiezi

关于容器:使用-eBPF-零代码修改绘制全景应用拓扑

本文为 DeepFlow 在首届云原生社区可观测性峰会上的演讲实录。回看链接[1],PPT下载[2]。 很快乐有机会在第一届可观测性峰会上向大家介绍咱们的产品 DeepFlow,我置信它会是明天 eBPF 含量最高的一个分享。DeepFlow 的能力很多,而我明天的分享会聚焦于一个点上说透,心愿大家由此感知到 eBPF 带给可观测性的改革。那么我明天要分享的内容就是,DeepFlow 如何利用 eBPF 技术,在不改代码、不改配置、不重启过程的前提下,主动绘制云原生利用的全景拓扑。全景利用拓扑能解决咱们很多问题:观测任意服务的全景依赖关系、观测整个利用的瓶颈门路、定位整个利用中的故障地位。 在开始之前,我大略也介绍一下本人的背景:从清华毕业以来,我始终在云杉网络工作,咱们从 2016 年开始开发 DeepFlow,咱们基于 eBPF 等翻新技术买通云基础设施和云原生利用的全栈环节,零侵扰的实现利用的可观测性。明天的分享分为四个局部:第一局部介绍传统的解决方案如何绘制利用拓扑;第二局部介绍如何用 eBPF 齐全零侵扰的实现利用拓扑的计算;第三局部介绍如何利用 eBPF 实现过程、资源、服务等标签的注入,使得开发、运维、经营都能从本人相熟的视角查看这个拓扑;最初第四局部介绍一个全链路压测的 Demo 和咱们在客户处的几个实战案例。 01|传统解决方案的问题首先咱们晓得,在利用拓扑中,节点能够展现为不同的粒度,例如按服务、按实例、按利用等不同粒度展示。例如对于服务粒度,一个节点代表一个服务,它由多个实例组成。节点之间的连线代表调用关系,通常也对应了一系列的指标,示意服务之间调用的吞吐、异样、时延等性能。在云原生时代,云基础设施、微服务拆分等因素会带来很多挑战,导致绘制一个全景的利用拓扑变得十分艰巨。 传统的解决方案咱们很相熟,通过埋点、插码的形式,批改代码来输入相似于 Span 的调用信息,通过聚合 Span 失去利用拓扑。即便是采纳自动化的 Java 字节码注入等技术,尽管看起来不必改代码,但还是要批改启动参数,意味着服务要从新公布,至多要重启服务过程。 插码计划的艰难 - 难以降级 在云原生场景下,应用这样的办法来获取利用拓扑变得更加艰难。随着服务拆得越来越渺小,每个服务的开发人员的自由度变得越来越大,因而可能会呈现各种离奇的语言、框架。绝对于 Java agent 而言,其余语言根本都会波及到代码批改、重编译重公布。当然个别咱们都会将这部分逻辑实现在一个 SDK 中,然而 SDK 的降级也是一个苦楚甚至失望的过程,业务方都不违心降级,降级意味着发版,发版可能就意味着故障。 那有办法能防止批改代码吗?云原生时代咱们还有一个选项 —— 应用服务网格(Service Mesh)。例如 Istio 在 K8s 及非容器环境下可构建一个服务网络。 网格计划的艰难 - 难以全笼罩 但服务网格的问题在于并不能笼罩所有协定,例如 Istio 次要笼罩 HTTP/gRPC,而其余大量各种各样的 Protobuf/Thrift RPC,以及 MySQL/Redis/Kafka/MQTT 等中间件拜访都无奈笼罩到。另外从因果关系来讲,咱们能够因为抉择了服务网格而顺带实现一部分可观测性,但必定不会因为要去实现可观测性而引入服务网格这样一个带有侵入性的技术。 除此之外,在云原生时代,即便咱们去改业务代码、上服务网格,依然无奈获取到一个残缺的利用拓扑。比方云基础设施中的 Open vSwitch,K8s 中的 IPVS,Ingress 地位的 Nginx 网关,这些都是看不到的。 上面出场的就是咱们明天要讲的配角,eBPF,它是一个十分炽热的新技术。咱们来看看它是不是能解决咱们明天聚焦的问题,是否将利用拓扑画全、画准,能为开发、运维等不同团队的人提供一个对立的视图,打消他们的 Gap。咱们晓得 eBPF 有很多很好的个性,它不须要业务改代码、不须要服务批改启动参数、不须要重启服务过程,它是编程语言无关的,而且能笼罩到云基础设施和云原生利用的整个技术栈。DeepFlow 基于 eBPF 技术也享受到了很多这方面的红利,咱们的客户做 POC、社区的用户试用都十分丝滑,不必去思考运维窗口、施行周期,DeepFlow 的社区版只需一条命令,五分钟即可开启全景、全栈的可观测性。 DeepFlow 软件架构 这里也用一页 PPT 来简略介绍一下 DeepFlow 社区版的软件架构。咱们开源至今还不到一年,目前在社区受到了不少关注。上图两头蓝色的局部是 DeepFlow 的两个次要组件:Agent 负责采集数据,利用 eBPF 的零侵扰个性,笼罩各种各样的云原生技术栈;Server 负责富化数据,将标签与数据关联,并存储至实时数仓中。在北向,DeepFlow 提供 SQL、PromQL、OTLP 等接口,通过 DeepFlow 本人的 GUI 展示所有可观测性数据,也兼容 Grafana、Prometheus、OpenTelemetry Collector 等生态。在南向,DeepFlow 可集成 Prometheus 等指标数据、SkyWalking 等追踪数据、Pyrosope 等 Profile 数据。 AutoTracing + AutoTagging 明天咱们要聚焦的一点,就是 DeepFlow 如何应用 eBPF 生成全景利用拓扑。DeepFlow 的两个外围能力 AutoTracing 和 AutoTagging 为利用拓扑的生成奠定了松软的根底。在没有任何代码批改、不重启任何业务过程的状况下,咱们实现了全景利用拓扑的绘制。首先,咱们可通过 eBPF 从网络包、内核 Socket Data 中获取原始比特流;接下来咱们剖析 Raw Data 中的 IP、端口等信息,应用 eBPF 将原始数据与过程、资源、服务等信息关联,以便绘制不同团队不同视角的利用拓扑,这也是明天分享的第三局部;而后咱们会从原始数据中提取利用调用协定,聚合调用中的申请和响应,计算调用的吞吐、时延和异样,以及其余零碎和网络性能指标;最初,基于这类 Request Scope 的 Span 数据,咱们能够聚合生成全景利用拓扑,也能够通过关联关系的计算生成分布式追踪火焰图。 明天咱们次要讲的是利用拓扑的绘制,对于应用 eBPF 实现全自动的分布式追踪这个话题,DeepFlow 社区的博客 https://deepflow.io/blog 上有很多材料。 02|eBPF 零侵扰计算全景利用拓扑Universal Application Topology 首先让咱们看一个效果图,这是 DeepFlow 展现的一个全景利用拓扑。这个拓扑可能大家比拟相熟,它是 OpenTelemetry 的一个 Demo,它 Fork 自 Google Cloud Platform 的一个我的项目,它是一个小型的电商利用。从图中能够看到,DeepFlow 能够获取所有服务之间的调用关系以及相应的性能指标,这都是通过 eBPF 实现的,没有做任何的代码批改和过程重启,展示这些后果之前咱们敞开了所有 OTel Instrumentation。 在这一节,咱们将聚焦四个问题:第一个问题是如何采集原始数据;第二个问题是如何解析利用协定,eBPF做了什么;第三个问题是如何计算全栈性能指标;第四个问题是如何适配低版本内核,许多用户的内核版本可能是3.10。 数据采集:DeepFlow 同时用到了 eBPF 和它的前身,有 30 年历史的 Classic BPF(cBPF)。在云原生环境中,利用过程运行在容器 Pod 内,容器可能存在于多个节点上,并通过网关连贯到数据库等其余服务。咱们能够应用 eBPF 技术来笼罩所有的端节点,并应用 cBPF 笼罩所有的两头转发节点。从利用过程(端节点)层面,咱们应用 kprobe 和 tracepoint 笼罩所有的 TCP/UDP socket 读写操作;并应用 uprobe 来挂载到应用程序内的外围函数上,比方 OpenSSL/Golang 的 TLS/SSL 函数,来获取加密或压缩之前的数据。除此之外,在两个服务之间还有许多两头转发门路,例如 IPVS、iptables、OvS 等,此时须要应用 cBPF 来获取网络包数据,因为这部分流量不会有用户态应用程序去读写,会间接在内核里查表转发。 eBPF Probes 这里列举了 DeepFlow 中次要应用到的 eBPF Probe,包含最右边的 kprobe,以及两头最高性能的 tracepoint,以及最左边解决加密和压缩数据的 uprobe。其中 tracepoint 满足了 DeepFlow 中的绝大多数需要。 协定解析:在获取原始数据方面,咱们应用 eBPF 和 cBPF 来捕捉字节流,但此时咱们无奈看到任何可了解的信息。接下来,咱们要做的就是从这些字节流中提取出咱们关怀的利用协定。大多数协定都是明文的,例如 HTTP、RPC、SQL 等,咱们能够间接遵循协定标准来解析它们的内容。对于一些非凡的协定,例如 HTTP2 之类的压缩协定,咱们须要进行更简单的解决。咱们能够应用 tracepoint 或 kprobe 来提取未压缩的字段,但此时对于曾经压缩的头部字段,还原它们是一项艰难的工作,因而咱们会抉择应用 uprobe 作为补充来采集压缩协定的数据。另外对于加密流量也无奈从内核函数中获取明文,咱们通过 uprobe 间接获取加密之前的数据。最初,对于公有协定,它们没有可遵循的通用标准,或者尽管遵循了 Protobuf/Thrift 等规范但无奈提供协定定义文件,此时咱们提供了基于 WASM 的插件化的可编程接口,在将来也有打算提供基于 LUA 的插件机制。 在协定解析层面还须要思考的一个事件是流重组。例如一个 HTTP2/gRPC 申请的头部字段可能会分为屡次零碎调用读写,或者分拆为多个网络包收发,此时咱们须要还原残缺申请或响应头,一遍重组一遍尝试解析。 eBPF + WASM 特地提一下咱们对公有协定的辨认,通过联合 eBPF 和 WebAssembly 的能力,提供一个灵便的插件机制。插件在 DeepFlow 中解决两个问题:提供对公有协定的解析能力、提供对任意协定的业务字段解析能力。商用软件供应商或业务开发人员能够轻松增加自定义插件来解析协定,将可观测性从 IT 层面晋升到业务层面。这样的形式使得咱们能够自定义提取出一些业务指标或业务标签,例如订单量、用户 ID、交易 ID、车机 ID 等信息。这些业务信息对于不同的业务场景都是独特的,咱们将这个灵活性给到了业务方,使得业务方能够疾速实现零侵扰的可观测性。 RED Metrics 性能指标:咱们能够通过数申请和响应的个数来获取吞吐量,同时还能够依据响应状态码、耗时等信息计算 Error 和 Delay 指标。吞吐和异样的计算绝对简略,只须要基于单个申请或单个响应进行解决即可。最艰难的是对时延的计算,咱们须要应用 eBPF 技术来关联申请和响应这两个动作。这个过程又分为两步:从 Socket/Packet Data 中基于 <sip, dip, sport, dport, protocol> 五元组聚合出 TCP/UDP Flow;而后在 Flow 上下文中匹配利用协定的每一个 Request 和 Response。而对于第二步,一个 Flow 中个别会有多个申请和响应,匹配逻辑咱们以 HTTP 协定为例解释: 对于串行协定如 HTTP 1.0,间接匹配邻近的申请和响应即可对于并发协定如 HTTP 2.0,须要提取协定头中的 StreamID 进行申请和响应的配对还有一种非凡状况即 HTTP 1.1 中的管道机制,他是一种伪并发协定,咱们能够利用它的 FIFO 特点实现申请和响应的配对 Network Metrics 然而,在云原生环境下,仅仅只统计应用层 RED 往往不够。例如咱们会发现客户端侧看到的时延是 3 秒,而服务端侧看到的时延是 3 毫秒;或者客户端和服务端侧都看不到有申请,但上游服务却报错了。针对这些场景,咱们基于 Flow 数据计算失去了网络层面的吞吐、异样、时延。业务开发发现时延高时,能够疾速查看网络层时延来判断到底是业务本身的问题还是基础设施问题;另外在发现申请报错时能够疾速查看是否建连或者传输异样了。 针对时延咱们分的更粗疏,通过从 Packet Data 中重建 TCP 状态机来更加精密的展示各个层面引入的时延。在生产环境中咱们会发现高时延的起因个别分为几个方面: 建连慢:因为防火墙、负载平衡、网关的影响,导致 TCP 建连过程慢,这一过程又进一步拆分为了到底是客户侧建连慢还是服务侧建连慢框架慢:因为业务代码在建连后的慢解决,客户端在建连后期待了一段时间才发送申请,这段等待时间咱们会刻画为客户端期待时延,它可能方面定位到底是框架/库层面的问题,还是业务代码的问题零碎慢:因为操作系统解决不及时,例如零碎负载低等,对申请的 TCP ACK 回复慢,从而导致 TCP 无奈高效增大窗口大小传输慢:网络重传、零窗等也是导致高时延的一些可能起因 在云原生环境下,还有一个特点是网络门路十分长,例如两个服务之间的通信可能顺次通过容器 Pod 网卡、容器 Node 网卡、KVM 主机网卡等。门路的复杂性也是引发传输慢的次要起因。因为 DeepFlow 同时应用 cBPF,因而能够从所有两头转发门路中观测到应用层和网络层的时延,而后通过比照逐跳时延来定位到底是哪一跳开始呈现了问题。 System Metrics 除了网络层面以外,造成慢调用的还有一个重要起因是 IO 慢。例如 Client 拜访 DB 时可能呈现时延抖动,而这些抖动通常是由 DB 的文件读写慢导致。再例如大数据场景下一批 Worker 中可能总有那么一两个 Worker 实现的慢,排查后会发现通常是因为文件读写慢导致。这里 DeepFlow 的做法是观测所有与利用调用相干的 IO 时延,并记录所有的慢 IO 事件。实现层面,文件 IO 与 Socket IO 事件可通过 tracepoint/kprobe hook 同样一组函数获取到,通过 FD 的类型能够进行辨别。依附这样的能力,咱们能疾速的定位到 deepflow-server 写入 clickhouse-server 偶发性慢是因为文件 IO 时延抖动造成,且能定位到具体的文件门路。 低版内核:最初咱们总结一下本节。咱们心愿在低版本内核中 DeepFlow 也能展示更多的能力。以 Kernel 4.14 为界,DeepFlow 在 4.14+ 的环境下能够基于 eBPF 实现全功能,包含加密数据的观测、利用过程的性能指标、零碎层面文件 IO 性能指标,以及全自动的分布式追踪能力。而在 4.14 以下的内核环境中,咱们基于 cBPF 也实现了大部分的能力,包含对于明文协定、公有协定的观测,对于压缩协定局部头部字段的观测,以及对于利用性能、网络性能指标的采集,对于性能指标的全栈门路追踪。 03|eBPF 主动关联服务和资源标签讲到这里实际上咱们整个指标只实现了一半。咱们从原始数据中提取进去了指标、调用关系、调用链,但还须要以开发者相熟的形式展示进去。Packet 和 Socket Data 中只有 IP 和端口号信息,这是开发和运维都无奈了解的。咱们心愿所有的数据都能从实例、服务、业务等维度按需展现。在这个问题上咱们也遇到了一些挑战:我会先介绍从哪里采集标签,以及采集什么样的标签;而后探讨轮询采集的形式会带来哪些问题;接下来我会介绍一下基于 eBPF 的事件触发的计划,来防止轮询的缺点;最初同样的也会介绍一下咱们在低版本内核环境下的一些能力。 标签数据:首先仅通过 IP 地址是不能残缺关联客户端和服务端的服务信息的,这是因为理论环境中普遍存在 NAT,包含 SNAT、DNAT、FULLNAT 等。实际上通过单侧的 IP+Port 也难以精确关联,这是因为 Client Port Reuse 也是一个普遍存在的景象。因而,在 DeepFlow 中应用五元组来将通信端点关联至服务。具体来讲,咱们会通过 K8s apiserver 获取 IP 对应的容器资源标签;通过 CMDB 及脚本化的插件获取 PID 对应的业务标签信息;而后再依附上面要讲的一些机制将 IP+Port 的五元组与 PID 关联起来,最终实现资源、服务、业务标签的主动注入。 轮询计划:咱们首先能想到的是通过轮询 /proc/pid/net/ 文件夹来获取 PID 与 Socket 五元组的关联。每个 agent 获取本机的关联信息,并通过 server 替换失去全局的关联信息,从而使得每个 agent 能独立的为客户端和服务端标注双端的 PID 信息。 轮询计划也会碰到一些挑战,例如 LVS 场景下,/proc 下的 Socket 信息指向的是 LVS,但从业务上来讲咱们心愿获取 LVS 背地的 RS 的过程信息。DeepFlow 通过同步 LVS 转发规定解决这个问题。具体来讲,基于 LVS 规定和包头中嵌入的 TOA(TCP Option Address)字段,能够疾速的在 RS 上定位客户端的 PID,并通过 LVS 转发规定疾速的在客户端侧定位服务端的 PID。 触发计划:过后轮询总会存在工夫距离,因而永远无奈解决短连贯的监控问题。在这方面 DeepFlow 也做了一些工作,这就是上面咱们要介绍的触发式计划。 受 TOA 的启发,咱们基于 eBPF 实现了一个 TOT(TCP Option Tracing)的机制,即在 TCP 包头 Option 字段中嵌入额定的信息,示意发送方的 IP 和 PID。这样的话咱们就能将源发的过程信息告知对端了。为了实现这样的机制,咱们应用 eBPF sockops 和 tracepoint,一共 Hook 了五个函数。咱们会在每个 TCP SYN、SYN-ACK 包中注入 TOT 信息,使得连贯新建时即能标记过程信息。同时也会概率性的抽取 TCP PSH 包注入 TOT,使得对于长连贯,即便 agent 的启动工夫滞后于业务过程,也能及时获取到过程信息。 低版内核:同样这里也分享一下咱们在低版本内核上做的一些工作。首先轮询的计划依附扫描 /proc 文件夹实现,因而是能适配所有 2.6+ 的内核环境的。在 3.10 及以上的内核中,咱们也提供了一个精美的 ko 模块来实现 TOT 的注入,这个内核模块仅有 227 行代码,咱们也进行了开源,欢送大家应用。 04|Demo - 继续观测全链路压测性能瓶颈OTel Demo 最初通过一个 Demo 介绍一下这些工作的成果。咱们依然是以 OTel 的电商 Demo 为例,依然是敞开了其中的所有 OTel Instrumentation。抉择这个 Demo 的理由在于,他是一个典型的微服务架构的利用,且尽力模仿了比拟实在的电商场景,微服务的实现语言涵盖了十二种之多,也蕴含了 PostgreSQL、Redis、Kafka、Envoy 等中间件。 首先咱们能够看到,不批改代码、不批改启动参数、不重启过程,咱们曾经能主动绘制微服务粒度的全景利用。当咱们注入一个 1.5K QPS 的压力时,能清晰的在拓扑中看到瓶颈链路。沿着 frontend 服务一路往下,也能疾速的定位瓶颈服务 ProductCatalog。接下来咱们分为三次,别离将 ProductCatalog 扩容至 2x、4x、8x 正本数,扩容的过程中也可清晰的看到瓶颈链路在逐步隐没,晓得最终所有服务的时延恢复正常。 除了这个 Demo 意外,这里也分享几个咱们在客户处的实战案例: 某造车新权势客户,应用 DeepFlow 从数万 Pod 中在 5 分钟内定位 RDS 访问量最大的 Pod、所属服务、负责该服务的团队。某股份制银行客户,信用卡外围业务上线碰壁,压测性能上不去,应用 DeepFlow 在 5 分钟内发现两个服务之间 API 网关是性能瓶颈,进而发现缓存设置不合理。某互联网客户,应用 DeepFlow 在 5 分钟内定位服务间 K8s CNI 性能瓶颈,辨认因为环路造成的某个服务高低云拜访时延周期性飙升的问题,云厂商两周无解。某证券客户,应用 DeepFlow 在 5 分钟内定位 ARP 故障导致 Pod 无奈上线的问题,「霎时」完结业务、零碎、网络多部门「会商」。某基础设施软件客户,应用 DeepFlow 在 5 分钟内定位 Rust 客户端应用 Tokio 不合理导致的 gRPC 偶发性超大时延,终结了 QA 及多个开发团队之间踢来踢去的 Bug。某四大行客户,应用 DeepFlow 在 5 分钟内定位某个 NFVGW 实例对特定服务流量不转发导致的客户端频繁重试。从这些案例中咱们能发现,依附 eBPF 技术的零侵扰个性,咱们能残缺的笼罩利用的全景调用拓扑,且能展示任意调用门路中的全栈性能指标。得益于这些可观测性能力,咱们能疾速的定位 RDS、API 网关、K8s CNI、ARP 故障、Rust Tokio 库、NFVGW 造成的故障。 Distributed Profile 这是最初一张PPT,我想和大家分享一下 DeepFlow 对可观测性的更多思考。在传统 APM 中,咱们通常应用 Span 之间的关联关系以火焰图的形式展示一次分布式调用(Trace),也会讲所有的 Span 聚合为指标来展示所有服务之间的利用拓扑。咱们发现拓扑展示了所有调用的数据,而追踪展示了一个调用的数据,它们二者恰好是取了两个极其。DeepFlow 目前正在摸索,两头是否有一个折中的点,他们展现一组聚合的火焰图或拓扑图,有点相似于单个过程的 Profile,然而用于分布式应用的场景,咱们称它为 Distributed Profile。咱们置信这样的折中会带来效率的晋升,它不香所有调用聚合而成的拓扑,会有太多噪声;也不像繁多申请展现进去的 Trace,问题排查须要一个一个 Trace 的看。 而 eBPF,正是绝佳的实现 Distributed Profile 的技术手段,请期待后续咱们进一步的分享。 05|什么是 DeepFlowDeepFlow[3] 是一款开源的高度自动化的可观测性平台,是为云原生利用开发者建设可观测性能力而量身打造的全栈、全链路、高性能数据引擎。DeepFlow 应用 eBPF、WASM、OpenTelemetry 等新技术,翻新的实现了 AutoTracing、AutoMetrics、AutoTagging、SmartEncoding 等外围机制,帮忙开发者晋升埋点插码的自动化程度,升高可观测性平台的运维复杂度。利用 DeepFlow 的可编程能力和凋谢接口,开发者能够疾速将其融入到本人的可观测性技术栈中。 GitHub 地址:https://github.com/deepflowio/deepflow 拜访 DeepFlow Demo[4],体验高度自动化的可观测性新时代。 参考资料[1] 回看链接: https://www.bilibili.com/video/BV1B14y1f7UB/ [2] PPT下载: http://yunshan-guangzhou.oss-cn-beijing.aliyuncs.com/yunshan-... [3] DeepFlow: https://github.com/deepflowio/deepflow [4] DeepFlow Demo: https://deepflow.yunshan.net/docs/zh/install/overview/

May 10, 2023 · 1 min · jiezi

关于容器:让业务容器化更安全便捷阿里云容器镜像服务-ACR-推出免费制品中心

随同着企业 IT 数字化转型演变的过程,越来越多的企业采纳云原生化架构降级的形式,改善利用开发运维迭代的效率,减速企业业务翻新;改良资源弹性治理和迁徙的效率,帮忙企业降本增效。 将业务进行容器化革新并打包成容器镜像是云原生化实际的第一步,为了使企业开发者更简便地打造云原生利用交付流程,2023 年 1 月,阿里云容器镜像服务 ACR 正式推出“云原生制品核心”, 为容器开发者收费提供了来源于阿里云官网、龙蜥社区的平安可信容器根底镜像。 企业容器镜像常见危险很多企业会依附来自公开平台的容器根底镜像来打包,这存在以下的问题:平安危险肆意:以寰球最大规模的公共容器镜像平台 Docker Hub 为例,据文献[1]剖析其中 2500 个镜像后发现,高达 82% 被认证的容器镜像至多蕴含 1 个高危破绽,不含破绽的容器镜像仅占比 17.8%。攻击者可能利用组件中存在的破绽,注入恶意代码或管制第三方机器环境,执行从加密货币挖矿、发送垃圾邮件、到通过大型僵尸网络发动 DDoS 攻打。 残缺内容请点击下方链接查看: https://developer.aliyun.com/article/1174831?utm_content=g_10... 版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。

May 6, 2023 · 1 min · jiezi

关于容器:Docker的容器管理

docker run 等于创立+启动docker run 镜像名,如果镜像不存在本地,则会在线去下载该镜像。 留神:容器内的过程必须处于前台运行状态,否则容器就会间接退出,本人部署一个容器运行,命令不得后盾运行,前台运行即可。 如果容器内,什么事也没做,容器也会挂掉。容器内,必须有一个过程在前台运行。 咱们运行nginx根底镜像,没有运行任何程序,因而容器间接挂掉docker run nginx 残缺内容请点击下方链接查看: Docker的容器治理 版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。

April 20, 2023 · 1 min · jiezi

关于容器:Docker教程如何将Helix-QAC创建为一个容器并运行

在这个Docker教程中,你将理解到如何将Helix QAC创立为一个容器化的镜像并运行。 Docker的根本定义是一个开源且风行的操作系统级虚拟化(通常称为“容器化”)技术,它是轻量级且可移植的,次要在Linux和Windows上运行。Docker通过应用容器,使创立、部署和运行应用程序变得更加容易。 从根本上说,容器只是一个运行的过程,并利用了一些附加的封装个性。借助容器,开发人员(和DevOps管理员)能够将应用程序与运行应用程序所需的所有(包含代码、运行时刻、库、配置的环境变量和配置文件)打包在一起,并将所有内容作为一个软件包交付。 还值得一提的是,Docker能够立刻启动,并具备内置的版本控制和组件复用机制。这些Docker容器能够通过公共Docker Hub或公有存储库共享,使它们易于拜访和应用。 以下是Docker的一些显著劣势: 疾速部署: Docker能够为每个过程创立一个容器,这些容器能够按需疾速启动和敞开,而无需启动平台操作系统(OS)。这将部署过程工夫缩短到几秒钟。此外,Docker镜像的启动简直是即时的。可移植性: Docker能够将通过测试的容器化应用程序部署到任何其余运行Docker的零碎上,并确保它的性能与测试时完全相同。Docker镜像能够与其余团队共享。性能: 只管虚拟机(VM)是容器的代替计划,但VM具备操作系统,而Docker容器没有。这意味着容器比VM占用更少的资源,创立速度更快,并且启动和敞开的工夫也更快。继续集成效率: Docker使您可能构建容器镜像,并在开发、测试和部署的每个步骤中应用它。此外,您还能够将非依赖性步骤离开,而后并行运行它们,从而缩短从构建阶段到生产部署阶段所需的工夫。这缩短了设置环境和调试环境特定问题的工夫,使它们更牢靠且更易于保护。然而,Docker也有一些限度,即便它们对Docker的动态分析器的设置影响很小,但理解这些限度仍然很重要。 Docker不能代替虚拟机:在虚拟机中运行的许多利用都能够挪动到容器中,但并不是说所有的利用都须要或都能够挪动到容器中。例如,具备严格监管要求的行业可能无奈用容器替换虚拟机,因为虚拟机提供比容器更高级别的隔离。容器中的数据:有时容器会呈现故障,在这种状况下,它须要备份和复原策略。尽管有几种解决方案,但没有一种是自动化或能够扩大的。另一个限度是,除非在容器敞开之前将其保留在某个中央,否则当容器敞开时,其中的所有数据都将永远隐没。跨平台兼容性: 如果一个利用程序设计为在特定平台(例如Windows操作系统平台或Linux)上的Docker容器中运行,则无奈在任何其余平台上运行。然而,虚拟机不受此限度,因而这种限度使Docker对于一些由Windows和Linux服务器组成的高度异构的环境不太具备吸引力。应用图形界面运行应用程序:总的来说,Docker是为托管在命令行上运行的应用程序而设计的。尽管有几种办法(比方应用X11转发或MobaXterm)能够让咱们在Docker容器中运行图形界面,但这些过程很繁琐。因而,能够说Docker对于须要丰盛接口的应用程序来说不是一个好的解决方案。为了帮忙大家更好地将动态剖析工具设置为Docker,并解除这些限度,我将设置过程合成为三个简略的局部。 您能够从拜访https://docs.docker.com/get-started/overview开始,外面有很多对于如何设置Docker引擎并验证环境是否正确设置的详细信息。 第一局部:筹备Docker引擎从此网站https://docs.docker.com/engine/install下载并装置适宜您操作系统平台的Docker引擎。 通过运行名为“hello-world”的样例Docker镜像来验证Docker引擎是否已正确装置。应用此命令示例: $ sudo docker运行hello-world该命令将下载一个简略的“hello-world”测试Docker镜像并在容器中运行它。因而,当容器运行时,它会打印一条信息性音讯并退出。下一部分的指标是设置一个Docker容器,让它作为Helix动态代码剖析工具来运行。有几种办法能够配置Docker镜像以反对不同的编码合规性模块,例如MISRA、AUTOSAR、CWE、CERT和动态代码扫描工具等。 然而,在本教程中,我将只演示如何应用一些重要的组件来构建特定的Docker镜像,咱们将在Docker容器中应用这些组件作为Helix QAC工具(DaaQT)。 另外,我还将探讨在运行剖析扫描工具时,如何解决我的项目数据配置的长久化,这样您就能够将Helix QAC我的项目标准和我的项目反对配置文件存储在Docker容器外,比方prqa 我的项目文件夹和pqraproject.xml.<name>反对的文件。 对这些文件所做的任何更改将在Docker容器执行实现并敞开后长久存在。任何构建脚本的更改都会从一个构建到另一个构建输入到主机上映射的内部我的项目文件夹,并放弃持久性。 第二局部:创立、构建和运行首先,让咱们来确定一些我抉择用于构建Docker镜像的组件及其根本形容。 Helix-QAC-2022.2(C/C++动态剖析解析器)ASCM-3.3.0(AUTOSAR C++14编码合规性)M3CM-3.3.0(MISRA C 2012编码合规性)MCPP-2.3.0(MISRA C++ 2008编码合规性)CERTCCM-2.3.0(C语言的平安编码标准反对)CERTCCPCM-2.3.0(CPP的平安编码标准反对)接下来,下载您可用(或已购买)的Helix QAC解析器工具和编码合规性模块,并将这些安装文件放入主机上的已知文件夹地位。 在我的示例中,将有六个文件(一个解析器工具文件和五个编码合规性模块)。接下来,创立一个Docker构建脚本文件。例如,我将文件命名为“qacDockerfile”,没有文件扩展名(默认名称是“dockerfile”)。该文件将由Docker引擎用来创立您的Docker镜像。基本上,它有一个命令列表,将按从上到下的程序发送给docker引擎来执行。 而后将这些文件(包含qacDockerfile)放在DaaQT文件夹中。这些是生成此 Docker镜像所需的惟一文件。另外,请留神我将它们放在“vDockerBuilds/DaaQT”文件夹下。 以下是“qacDockerfile”脚本文件的内容和一些解释。 第1行抉择了Ubuntu 22.04作为根底镜像。第4行到第7行使Ubuntu操作系统放弃最新状态,并容许设置时区。第10行是可选的,但倡议增加这些有用的工具,因为Ubuntu根底镜像是准系统。第15即将装置根本的构建工具、GNU编译器依赖项和任何反对文件。这一步针对编译器工具链的应用需要会有所不同。然而,在我的示例中,这个镜像将应用gcc/g++ 11编译器。第19行和第20行批示Docker引擎创立一个名为“QacWorkspace”的工作目录,所有后续命令都将应用该目录。第25即将所有安装文件的权限更改为可执行。第28行以静默模式装置Helix-QAC解析器工具并承受许可协定。第31行至第35行以静默模式装置选定的编码合规性模块并承受许可协定。第38行清理安装文件,使Docker镜像尽可能减少占用空间。接下来,要构建Docker镜像,咱们须要运行以下命令: $> docker build --pull --no-cache -f qacDockerfile -t qacscatools:22v2. 拉取和无缓存参数用于确保始终获取最新的ubuntu镜像,并从头开始构建Docker镜像。-f是qacDockerfile名称,默认状况下原始名称是Dockerfile。-t是格局“name:tag”因而名称是“qacscatools”,标签是“22v2”,以批示应用了哪个Helix-QAC工具版本。不要遗记开端的“dot”,它示意这是一个本地目录。构建镜像过程实现后,能够看到最初两行音讯,批示写入文件并标记镜像。若要验证构建是否胜利,请运行以下命令以显示所有可用Docker镜像列表。 $>docker images(留神:上图中,图像标签ID为bd8c9d08dc4d。) 第三局部:在本地我的项目上运行DaaQT在咱们应用这个Docker容器化镜像(作为QAC工具的Docker——DaaQT)在本地桌面我的项目上运行任何动态代码剖析之前,咱们须要确保咱们有权拜访许可证服务器,以取得应用该工具的权限。 在我的示例中,我将应用内部近程Reprise许可证治理服务器来申请要应用的许可证。 首先,咱们须要创立一个本地我的项目运行脚本,该脚本晓得在哪里以及如何拜访近程 Reprise许可证服务器。此我的项目运行脚本还必须晓得Helix QAC仪表板服务器的地位,以便在剖析运行实现后上传我的项目诊断音讯后果。 让咱们审查一下名为“runQACSCA.sh”的脚本文件及其内容。我将逐渐解释它的作用。 第3行是对桌面计算机上我的项目文件夹名称的援用。第7行是Helix QAC仪表板服务器上我的项目持有者的名称,用于上传诊断音讯和我的项目信息。(留神:第8行可用于匹配本地文件夹名称。)第9行到第11行是无关Helix QAC仪表板服务器的信息,例如URL地址(或FQDN)、服务器端口和许可证服务器端口。第14行是本地桌面我的项目工作区名称服务器URL地址(或 FQDN)、服务器端口和许可证服务器端口。第15行和第16行是对Helix QAC解析器工具所在位置的外部Docker镜像的援用,以及映射我的项目工作区的地位。第19行供Docker与许可证服务器通信,以申请应用工具许可证。第25即将Docker镜像设置为正确的入口点,以便定位映射的我的项目工作区。第28行到第29行是抉择一个规定配置文件用于我的项目。这些默认文件名是针对特定规定组配置进行标识的。您能够通过合并任何一个或多个规定配置文件来创立本人的自定义RCF文件,但在应用之前,必须在Helix QAC桌面GUI应用程序中实现自定义RCF文件的创立。此外,新的自定义名称须要与默认文件名不同。第34行和第35行是为编译器工具链进行映射。在我的示例中,我曾经映射到要应用地GNU C/CPP 11.2版本。第38行用于创立PRQA我的项目配置并设置需要我的项目配置。第41行让Helix QAC可能监控和跟踪我的项目如何用其命令进行本地构建。如果我的项目须要执行一些关系跨模块剖析(RCMA)和/或多线程剖析(MTA),则通常应用第44行和第45行。第47行到第49行是抉择一个编码合规性模块,用于满足您的编码合规性要求需要。请确保此设置与第28行至第31行的RCF设置相匹配。第52行是应用上述所有配置和设置参数,对您的我的项目执行动态代码剖析。第55行是将项目分析扫描后果上传到Helix QAC的仪表板服务器,并将其放在我的项目持有人中。上传的信息是蕴含诊断音讯以及我的项目配置设置的源文件。 ...

April 10, 2023 · 1 min · jiezi

关于容器:问脉-SDK-云原生安全的最强外挂-上

平凡航路的开始在近几年,云原生堪称是站到了一个"风口浪尖"的地位,好像一夜之间,改革春风吹满地,各家企业都争相赶着上云,这个景象在我眼里,称之为浪潮也不为过。然而,上云除了带来技术红利的同时,也带来了相当多的平安问题,比方对于  ak/sk  (accesskey/accesssecret) 的泄露这样一个简简单单的问题,就让很多甲方头痛,头痛的点不在于检测自身,而在于检测面的笼罩。 ak/sk  ,它既可能存在在代码仓库,也可能存在于镜像、容器、集群等各种对象,而每种对象又有不同的实现,比方对于镜像来说,咱们能够用  docker  去治理,也能够用  containerd  去治理。这就造成了一个问题,或者 70% 的检测逻辑都能复用一些传统的平安伎俩,然而面的广度,导致了咱们并没有方法,可能无效笼罩链路上所有可能存在的危险。 于是乎,咱们诞生了一个想法,咱们能不能写这样一套SDK,它让开发者操作所有的云原生对象就像操作主机一样简略间接,同时它能够屏蔽同对象不同类别的差异化实现(比方对于集群来说,咱们不须要思考  kubernetes 还是  openshift  ),基于这套 SDK,开发者只须要关怀外围的检测逻辑,而不须要放心任何的兼容和适配性问题。这个想法一进去,就和公司的小伙伴们一拍即合,决定立即开始做,这就是问脉 SDK 的由来。  修炼 "一指禅"咱们的指标是心愿开发者用起来足够 easy,如果用武侠小说外面的概念来打比方,就好比是少林绝技 “一指禅”,无论状况如许简单,咱们都只须要用一只手指就能击破敌人。 然而这个事件说起来容易,做起来难。咱们面临的第一个问题是,如何对立容器运行时? 相熟云原生的人应该晓得,所有的容器,实际上都是被容器运行时,比方  docker/containerd/cri-o/podman  等拉起来的。尽管他们做的事件差不多,然而性能实现细节上却大有不同,比方  docker  会将镜像的索引存储在一个  JSON  中,而  containerd  却应用了  boltdb  去存储镜像索引。 因而,为了让咱们的 “一指禅” 足够迷信和正当,咱们须要尽可能的去形象不同容器运行时公共行为,而对于容器运行时来说,公共行为无外乎和两个对象有关系:镜像和容器( pod  实质上也是容器,所以没有独自列出),基于此,咱们开始写下了第一行代码: type Runtime interface {ListImageIDs() ([]string, error)ListContainerIDs() ([]string, error)}通过下面定义的  interface  ,咱们曾经能够在疏忽容器运行时的前提下,获取所有不同容器运行时的 镜像/容器 的惟一标识了(此处省略 n 行代码)。然而只有标识是不够的,咱们还须要基于标识去关上对象,通过对象进行进一步的操作,于是咱们欠缺了一下  Runtime  的定义。 type Runtime interface {ListImageIDs() ([]string, error)OpenImageByID(id string) (Image, error)ListContainerIDs() ([]string, error)OpenContainerByID(id string) (Container, error)}在实现了上述  interface  的编写后,顺其自然的就发现,咱们还须要定义  Image  和  Container  的公共行为。这里就必须要提到一个概念,OCI 标准(Open Container Initiative),OCI 的实质是一个业界通用的容器标准,它蕴含外围的两局部,别离是  image-spec  和  runtime-spec ,对应到理论的概念,则别离是镜像标准以及容器标准。目前所有使用率较高的容器运行时,均遵循 OCI 标准,包含老大哥  docker 。而整个 OCI 标准下的运行流程如下图所示。 因而,基于 OCI 标准登程,镜像和容器都应该蕴含获取  OCISpec  这样一个公共行为。但显然只能获取  OCISpec  是不够的,因为它所提供的内容并不足以让咱们做任何的平安检测。那让咱们反过来思考,如果须要做平安检测,咱们须要给这些对象赋予什么能力?答案其实很清晰,对于镜像而言,咱们须要让它反对  Filesystem  的操作指令,比方关上镜像中的指定门路  /etc/shadow 。对于容器,咱们须要让它反对  Filesystem/Psutil/Netstat  等操作指令,比方获取容器中的 1 号过程的  cmdline 。最终咱们将镜像和容器定义为如下构造: type Image interface { FileSystem ID() string OCISpec() *image-spec.Spec, error Repos() ([]string, error) RepoRefs() ([]string, error)}type Container interface { FileSystem Psutil Netstat ID() string Name() string ImageID() string OCISpec() *runtime-spec.Spec, error}小试牛刀光说不练假把式,不能被用起来的 SDK 就不是一个好 SDK。实现了下面的性能开发后,让咱们来看看,如果要检测镜像外面是否有蕴含 RSA 私钥的文件应该怎么写。 ...

April 4, 2023 · 2 min · jiezi

关于容器:当-ChatGPT-遇上开源容器安全工具集问脉

前言看到最近铺天盖地的 ChatGPT 相干文章,作为一位爱刺激&爱冒险&好奇心强烈&入手能力强的平安技术爱好者(bushi),按捺不住躁动的灵魂,决定做一个简略的容器平安危险剖析工具,指定参数即可调用 ChatGPT API,通过人工智能技术提供智能对话,取得残缺可行的危险修复倡议。 性能实现开源容器平安工具集·问脉(VeinMind)已接入 OpenAI, 能够应用 OpenAI 对扫描的后果进行人性化剖析,让你更加清晰的理解本次扫描发现了哪些危险。 开源地址:https://github.com/chaitin/veinmind-tools 应用办法应用 runner 或某种插件时默认指定剖析./run.sh scan image --enable-analyze --openai-token  <your_openai_token> 例如,应用 veinmind-minio 插件进行破绽扫描时,增加 --enable-analyze  参数,即可获取 ChatGPT 的最优修复倡议:扫描后对后果文件进行剖析./veinmind-runner analyze -r <path_to_result.json> --openai-token <your_openai_key>这种形式将对 result.json 进行解析, 例如,已经应用 veinmind-escalate 进行逃逸危险检测,并生成报告在本地,仅需提供报告门路即可获取 ChatGPT 的最优修复倡议。自定义查问后果语句调整剖析粒度./veinmind-runner scan image --enable-analyze --openai-token <your_openai_key> -p "请对上面的安全事件进行分析"或:./veinmind-runner scan image --enable-analyze --openai-token <your_openai_key> -p "解析上面的json产生了什么"我的项目简介问脉开源容器平安工具集不仅提供笼罩 镜像/容器 各周期阶段的危险检测,同时致力于为社区用户带来更好的操作体验,如果你在应用过程中有任何问题,能够返回 Github 提交 Issue,最初的最初,棘手 Star 的你最帅~PS:应用此性能须要自行筹备 OpenAI API Key,如何获取:https://platform.openai.com/account/api-keys;修复倡议仅供参考。

March 29, 2023 · 1 min · jiezi

关于容器:扫描-MinIO-敏感信息泄露漏洞的两种方法

破绽危险破绽形容在集群模式的配置下,MinIO 局部接口因为信息处理不当返回了所有的环境变量信息(包含 MINIO_SECRET_KEY 和 MINIO_ROOT_PASSWORD),从而导致敏感信息透露破绽,攻击者可能通过获取到的密钥配置信息间接登陆操作 MinIO 接口。 只有 MinIO 被配置为集群模式时才会受此破绽影响,此破绽的利用无需用户身份认证,官网倡议所有应用集群模式配置的用户尽快降级。 影响范畴MinIO RELEASE.2019-12-17T23-16-33Z <= MinIO Version < MinIO RELEASE.2023-03-20T20-16-18Z 官网信息3月20日,MinIO 官网公布了安全补丁,修复了一处敏感信息泄露破绽 CVE-2023-28432:https://github.com/minio/minio/security/advisories/GHSA-6xvq-wj2x-3h3q 扫描办法一:牧云·云原生平安平台收费应用牧云·云原生平安平台: https://rivers.chaitin.cn/promotion=1e07cd415fe5eee58c14550c8... 检测截图  除 SaaS 版以外,还提供更为平安隐秘的私有化部署版。 扫描办法二:问脉 Tools(开源工具)veinmind-minio 基于问脉引擎,疾速辨认并发现 镜像/容器 中是否存在 CVE-2023-28432 破绽。 疾速扫描容器/镜像中的 minio CVE-2023-28432 危险。反对 JSON/CLI/HTML 等多种报告格局输入。开源地址https://github.com/chaitin/veinmind-tools/tree/master/plugins/go/veinmind-minio 应用命令指定镜像名称或镜像ID并扫描 (须要本地存在对应的镜像)。./veinmind-minio scan [image/container]指定容器名称或容器ID并扫描。./veinmind-minio scan container [containerID/containerName]兼容性:linux/amd64linux/386linux/arm64linux/arm

March 28, 2023 · 1 min · jiezi

关于容器:T3-出行云原生容器化平台实践

公司简介T3 出行是南京领行科技股份有限公司打造的智慧出行生态平台,由中国第一汽车集团有限公司、东风汽车团体有限公司、重庆长安汽车股份有限公司发动,联结腾讯、阿里巴巴等互联网企业独特投资打造。公司以“成为最值得信赖的出行服务企业”为品牌愿景,“科技引领 愉悦出行”为使命,提倡“可信,更自在”的出行理念,致力为用户提供“可信、平安、品质”出行服务,让用户感触更加自在的出行体验。 背景介绍随着 T3 出行业务体量继续上涨,服务的稳定性须要系统化的保障。容器化革新将提供标准化的环境,基于利用运行环境实现残缺的版本控制,打消开发到生产的环境差别,保障利用生命周期内环境一致性和标准化。同时容器化环境能够让服务共享计算资源,并通过混部形式来进步整体计算资源的利用率,升高企业应用的基础设施经营老本。 容器化之前 T3 出行是传统的虚拟机模式,所有业务都部署在虚拟机上,整体产研通过堡垒机、传统的监控零碎、日志平台等进行日常利用的运维。而一旦服务容器化开始,咱们必然须要一个云原生的容器化治理平台,让 T3 出行整体产研从传统的虚拟机操作模式转变为云原生操作模式。同时,之前日常的利用运维模式须要应用多个平台进行合作,产研定位一个利用性能问题往往须要来回切换多个平台。所以咱们心愿容器化平台能够集成周边的配套,如日志查看、监控零碎,让产研尽量在一个平台内实现日常运维的工作;也能够作为平台工程的一部分,让产研在开发环境能够领有足够的权限创立、更新、删除非基线环境,而无需理解底层架构常识,通过自助化的环境能力能够让研发并行开发测试,最终让业务能够疾速、高效增长。 选型阐明咱们的选型思路基本上是依据性能、UI 体验、社区活跃度、学习老本这 4 点来的。首先必须要满足咱们对容器平台的需要(在背景介绍中曾经形容),其次是社区活跃度以及生态,最初是 UI 体验,在 UI 体验中蕴含了用户的学习老本,咱们心愿以低学习老本的形式让 T3 出行的研发更够疾速上手容器平台,同时也具备运维视角,如此就既满足了研发的利用视角纬度,也满足了运维的集群视角维度。咱们在选型期间比照了 Rancher、Openshift、KubeSphere,最终抉择了 KubeSphere 作为 T3 出行云原生容器平台。KubeSphere 定位是以利用为核心的容器平台,提供简略易用的操作界面,帮忙用户屏蔽掉那些技术细节,肯定水平上升高了学习老本。同时 Kubesphere 具备优良的容器治理能力、多集群反对能力、多租户能力、人造集成的可观测能力等,让咱们能够在一个平台上满足了日常运维所需。 实际过程多集群对立治理KubeSphere 多集群中角色分为主集群和成员集群,由 1 个主集群和多个成员集群组成,与咱们原先的集群布局不约而同。主集群咱们作为成员集群的管制面存在,通过主集群下发不同的管理策略给到成员集群。对于成员集群而言,咱们依据不同的环境、不同的租户性质也会划分到不同集群。如依据环境辨别,咱们会有开发集群、测试集群、预生产集群、生产集群;而依据租户性质,咱们会有一些对接三方业务的集群。 项目管理在很多传统的 DevOps 平台中,并没有与我的项目进行联动,服务往往只是关联了组织架构,当组织架构变动,服务的元信息就不精确了。而且,对于一个我的项目来说,常常会有跨部门单干的状况,而业务公布的视角却是在各自的部门下的,我的项目成员无奈在一个视图下看到我的项目的所有业务,在我的项目的合作过程中天然就减少了许多沟通老本。而 KubeSphere 就是基于我的项目维度对容器服务进行治理的,在 KubeSphere 中一个我的项目对应的就是 Kubernetes 一个 Namespace,租户之间的视图是隔离的,日常只须要在本人的我的项目视图下进行合作即可。 咱们的 DevOps 平台正在逐渐的往我的项目集成方向倒退,目前咱们是依照业务域进行对立治理,一个业务域代表了一个 KubeSphere 中的一个我的项目,业务域下会有多个相干的业务服务,无论组织架构如何变换,业务域始终不变。 多租户治理KubeSphere 中的多租户治理是基于企业空间维度来实现的,企业空间是用来治理我的项目、DevOps 我的项目、利用模板和利用仓库的一种逻辑单元。咱们能够在企业空间中管制资源拜访权限,也能够平安地在团队外部分享资源。企业空间能够关联多个集群中的多个我的项目,并对企业空间中的成员进行权限治理,援用 KubeSphere 官网配图便于大家直观的了解: 咱们是以业务域为我的项目维度进行对立治理,那么企业空间作为 KubeSphere 最小的租户治理单元天然是被咱们依照业务域进行划分。所以 T3 当下的多租户治理逻辑就是:企业空间(业务域)→ 集群(开发、测试等)→ 我的项目(业务域)。同时在企业空间中,咱们也形象出了部门治理纬度,应用 KubeSphere 的部门治理,便于咱们给不同的人员赋予不同集群(环境)操作权限。 外部 DevOps 平台与 KubeSphere 的联合 ...

March 10, 2023 · 1 min · jiezi

关于容器:实用指南如何在Anolis-OS上轻松使用-Kata-安全容器

文/云原生SIG 本篇文章咱们将具体介绍怎么轻松在 Anolis OS 上应用 Kata Containers 平安容器,咱们将介绍 Kata Container 社区于 2022 年 10 月 10 日最新发行的 Kata3.0.0 的装置部署形式,3.0.0 版本蕴含了基于袋鼠 RunD 开源的最新 Rust Kata runtime + 内置Dragonball 和Go runtime + VMM(本文默认装置了QEMU)两套架构。 目前社区打算在将来 1-2 年的工夫内逐渐由 Go Runtime 迁徙至 Rust Runtime,Rust Kata runtime 是 Kata 社区将来的倒退方向,在整体资源耗费、启动速度等方面都有显著劣势,同时提供内置沙箱 Dragonball 进一步提高应用体验,目前还处于疾速倒退阶段。 本教程默认装置 Rust Kata Runtime + Dragonball,并会提供繁难教程帮忙您切换到Go Kata Runtime + QEMU,另外,咱们提供的 Guest Kernel 基于龙蜥 OS, rootfs 基于专门为容器场景优化的 LifseaOS。 01 Kata Container 3.0.0 (Rust Runtime + Dragonball)RunD 是龙蜥社区开源的下一代平安容器解决方案,相比于社区的 Kata 2.0 而言,RunD 最大的特点是提供了基于容器场景深度优化的内置 Dragonball 沙箱,缩小了虚拟化内部依赖,带给用户开箱即用的优质体验。同时极大晋升了整体容器的启动速度;其次通过引入全新的异步 Rust Runtime 机制,进一步升高 Kata 平安容器整体的资源开销。RunD 目前已开源成为 Kata Containers 社区上游 3.0 版本规范。之前文章里介绍了 Kata 3.0 背地的设计与思考,其中一体架构、轻量平安容器虚拟机 Dragonball、异步 Rust Runtime 等翻新给 3.0 版本带来了低资源开销、极速启动速度、易于运维等劣势。 ...

February 21, 2023 · 3 min · jiezi

关于容器:深度复盘重启-etcd-引发的异常

作者信息: 唐聪、王超常,腾讯云原生产品核心技术专家,负责腾讯云大规模 TKE 集群和 etcd 管制面稳定性、性能和老本优化工作。 王子勇,腾讯云专家级工程师, 腾讯云计算产品技术服务专家团队负责人。 详情作为以后中国宽泛应用的云视频会议产品,腾讯会议已服务超过 3 亿用户,能高并发撑持千万级用户同时散会。腾讯会议数百万外围服务都部署在腾讯云 TKE 上,通过寰球多地区多集群部署实现高可用容灾。在去年用户应用最高峰期间,为了撑持更大规模的并发在线会议的人数,腾讯会议与 TKE 等各团队进行了一轮新的扩容。 然而,在这过程中,一个简略的 etcd 过程重启操作却触发了一个的诡异的 K8s 故障(不影响用户散会,影响新一轮后盾扩容效率),本文介绍了咱们是如何从问题景象、到问题剖析、大胆猜想排除、再次复现、谨严验证、根治隐患的,从 Kubernetes 到 etcd 底层原理,从 TCP RFC 草案再到内核 TCP/IP 协定栈实现,一步步定位并解决问题的具体流程(最终定位到是非凡场景触发了内核 Bug)。 心愿通过本文,让大家对 etcd、Kubernetes 和内核的简单问题定位有一个较为深刻的理解,把握相干方法论,同时也能让大家更好的理解和应用好 TKE,通过分享咱们的故障处理过程,晋升咱们的透明度。 背景常识首先给大家简要介绍下腾讯会议的简要架构图和其应用的外围产品 TKE Serverless 架构图。 腾讯会议极简架构图如下: 腾讯会议重度应用的 TKE Serverless 架构如下: 腾讯会议简直全副业务都跑在 TKE Serverless 产品上,Master 组件部署在咱们metacluster 中(K8s in K8s),超大集群可能有10多个 APIServer,etcd 由服务化的 etcd 平台提供,APIServer 拜访 etcd 链路为 svc -> cluster-ip -> etcd endpoint。业务各个 Pod 独占一个轻量级的虚拟机,安全性、隔离性高,业务无需关怀任何 Kubernetes Master、Node 问题,只须要专一业务畛域的开发即可。 ...

February 9, 2023 · 4 min · jiezi

关于容器:Nydus-加速镜像一致性校验增强

导言: GitLink 编程夏令营是在 CCF 中国计算机学会领导下,由 CCF 开源倒退委员会(CCF ODC)举办的面向全国高校学生的暑期编程流动。这是去年(2022)的夏令营流动中,王瑞同学加入 Nydus 开源我的项目的总结,次要介绍了为 Nydus 反对镜像与文件系统一致性校验所做的相干工作。Nydus 简介Nydus 是 CNCF 孵化我的项目 Dragonfly 的子项目,它提供了容器镜像,代码包,数据分析按需加载的能力,无需期待整个数据下载实现便可开始服务。 Nydus 在生产环境曾经撑持了每日百万级别的减速镜像容器创立,在启动性能,镜像空间优化,网络带宽效率,端到端数据一致性等方面相比 OCIv1 格局有着微小劣势,并可扩大至例如 NPM 包懒加载等数据散发场景。 目前 Nydus 由蚂蚁团体,阿里云,字节跳动联合开发,Containerd,Podman 社区承受了 Nydus 运行时作为其社区子项目,也是 KataContainers 以及 Linux v5.19 内核态原生反对的镜像减速计划。 Nydus 架构及原理OCI 容器镜像是以后容器镜像的实现规范。它采纳了分层的设计,每个镜像可蕴含多个镜像层。新层蕴含的是在旧层的根底上,新减少或者批改的文件或者被删除的文件。这种设计形式比较简单,不过也有着肯定的缺点。如须要镜像层全副重叠后能力看到整个文件系统的视图,但不是所有数据都会被读取;同时可能曾经删除或者被批改旧层中的文件,然而仍须要残缺地下载和解压旧层;文件元数据批改导致整个镜像层被从新存储等。 Nydus 兼容目前的 OCI 生态,旨在通过细粒度的数据宰割、去重和按需加载机制减速容器 的启动和散发,同时升高资源的耗费。 Nydus 的整体架构如下图所示。它能够通过 FUSE 给 runc 容器提供运行时的按需加载能力,也能够通过 virtiofs 承载 FUSE 协定,给 Kata Containers 等基于 VM 的容器运行时提供按需加载的能力。它能够从容器 Registry,OSS,NAS,Dragonfly supernode 等多个镜像源拉取镜像,同时外部会有本地的缓存减速容器的创立。 在用户空间文件系统,Nydus 采纳了数据和元数据拆散的设计思维,元数据的批改不会导致整个镜像层的更新。原先的镜像层只存储文件的数据局部,同时数据被分块存储。拉取镜像是不须要拉取整层,只须要拉取所需文件对应的数据块即可。这也使得层与层之间,镜像与镜像之间共享数据块更加容易。上图展现了 Nydus 数据和元数据的存储格局。其中元数据以 merkle tree 的模式存储在 bootstrap 中,蕴含了容器启动所须要的信息。数据以 1MB 分块存储,不同镜像能够共享同一数据块。 ...

January 31, 2023 · 2 min · jiezi

关于容器:容器在公有云上的落地姿势

1.容器天生隔离能力有余1.1 容器是一种过程隔离技术,并非虚拟化技术 容器(container),并不是一种虚拟化(virtualization)技术,而是一种过程隔离(isolation)技术,从内核空间、资源和平安等方面对过程做隔离。 Linux 容器采纳 Linux 控制组(cgroups)和命名空间(namespace),其中,cgroups 定义了一个过程能应用什么(CPU、内存、网络等资源),namespace 定义了一个过程能看到什么(uid,gid,pid,mount,filesystem 等)。一方面,并非所有系统资源都能够通过这些机制来管制(比方工夫和Keyring,https://blog.jessfraz.com/pos...)。 另一方面,在 Linux 容器中运行的应用程序与惯例(非容器化)应用程序以雷同的形式拜访系统资源;间接对主机内核进行零碎调用。内核以特权模式运行,容许它与必要的硬件交互并将后果返回阴应用程序。因而,即便应用了很多限度,内核依然面向恶意程序暴露出了过多的攻击面。 除了 cgroups 和 namespace,Linux 容器还会应用到象 seccomp 这样的技术。seccomp是内核防火墙,限度一个过程对内核零碎调用(systemcall)的拜访限度,可能在应用程序和内核之间提供更好的隔离,然而它们要求用户创立预约义的零碎调用白名单。在理论中,很难当时列举出应用程序所需的所有零碎调用。如果你须要调用的零碎调用存在破绽,那么这类过滤器也很难发挥作用。 因而,容器被认为不具备和虚拟机以及沙盒(sanbox)一样的隔离能力。对于容器、虚拟机和沙盒之间的区别,Jessie 的这篇博文(Setting the Record Straight: containers vs. Zones vs. Jails vs. VMs )给出了很好的解释。 1.2 Kubernetes 的多租户隔离Jessie Frazelle(他的博客地址为 https://blog.jessfraz.com 强烈推荐)将多租户隔离模式分为两大类: 弱隔离(Soft multi-tenancy):同一个组织中的多个用户应用同一个集群。这种隔离模式中,因为用户处于同一个组织中,因而相互之间默认是信赖关系,然而也存在可能的状况,比方有歹意的员工。这种隔离模式的次要目标就是为了避免这种歹意事件。强隔离(Hard multi-tenancy):来自不同组织的多个用户应用同一个集群。这种隔离模式中,默认就假设所有用户都是潜在歹意的,因而这种模式的次要目标是阻止租户之间的相互拜访。从下面的定义能够看出,基本上,公有云的隔离模式是弱隔离模式,而私有云的隔离模式是强隔离模式。 因为容器天生隔离有余,如果只是采纳传统 Linux 容器的话,私有云往往采纳每个用户独自创立 Kubernetes 集群的形式来实现强隔离: Jessie Frazelle 的这个图是假如 K8S 可能在不同的宿主机上创立和治理不同的 K8S 集群(那时候 K8S 真的成为集群操作系统了)。实际上,以后这种角色往往由私有云本人的云管平台实现,而后在若干台虚拟机或物理机上为每个用户搭建残缺的 Kubernetes 集群,每个集群利用传统的 Linux 容器来运行客户的利用。因为传统 Linux 容器的隔离性有余,每个用户的容器必须容许在独占的环境中。 然而,如果把运行环境从 Linux 传统容器换成微虚机(比方 kata container)的话,因为微虚机自身具备的强隔离能力,则能够在一个宿主机上创立不同用户的这种运行环境,此时这些环境在集群中是混部的。 ...

January 12, 2023 · 2 min · jiezi

关于容器:开拓新城-西安-时速云签约陕建数科容器云平台项目携手赋能建筑行业数智生产变革

前言:据《陕西省数字经济倒退报告(2021)》显示, 2020年陕西省数字经济总量达到7200亿元,数字经济占全省生产总值比重达到30.2%,陕西省数字经济在整体规模、基础设施、产业倒退、赋能程度、企业倒退等方面逐步驶入“量质齐升”新阶段。 西安作为其省会以及“一带一路”的重要节点城市,在《西安市“十四五”数字经济倒退布局》的指引下,将以推动数字产业化、产业数字化为主线,以强化数字基建、数据因素、数字技术三大因素供应为根底,全面推动数字经济与实体经济深度交融。近日,时速云胜利签约陕西建工团体数字科技有限公司(以下简称“陕建数科”)容器云平台我的项目。 时速云将通过对陕建数科现有的 IT 架构进行革新降级,为其提供更加麻利、更具弹性、更灵便的 IT 底层架构撑持,助力其实现数据、服务、利用等 IT 资源的对立治理,减速其数字化转型过程。此外,单方还将携手摸索我国建筑业数字化、智能化的生产改革的最优门路。 陕建数科公司是陕西建工控股集团出资100%的二级法人公司,作为陕建数字化转型的推动者和引领者,陕建数科是一家以从事软件和信息技术服务为主的企业。基于陕建团体“168”数字化转型战略目标,陕建数科致力于降级革新企业现有的 IT 架构,整合内外部资源,买通业务数据,实现数据交融,通过引入时速云云原生技术服务对现有公有云平台进行降级革新,用数智化的伎俩实现建筑业数字化转型。 此次胜利签约陕建数科标记着时速云已将业务胜利开辟至陕西外围城市西安,同时这也是时速云业务布局全国的战略目标的又一重要动作。 将来,时速云将持续扩充产业链布局,除持续深入在北、上、广、深、山东等劣势区域服务能力外,将业务拓展至其余劣势城市及区域,充分发挥技术创新对数字化转型与服务的“攻坚兵”作用,将金融、能源、通信、制作等行业积攒的成熟教训,赋能至千行百业,用强劲的云原生技术助推企业数字化转型降级。 对于陕建数科 陕西建工团体数字科技有限公司,成立于2021年,位于陕西省西安市,是一家以从事软件和信息技术服务为主的企业,围绕建筑业数字化转型降级的总体目标,通过整合内外部资源,依照我的项目层面推动BIM技术和智能建造的深度利用、企业层面打造互联互通的信息系统并造成数据资产经营的倒退思路,以公有云平台建设、我的项目管理信息系统建设、智慧工地规范制订及利用、主数据管理系统、数据中台建设等工作为具体抓手,晋升工程项目和修建企业的数字化、智能化程度,造成一支专一建筑业数字化转型的复合型人才队伍,深耕数智生产方式改革、助力陕西数字经济倒退。 对于时速云 时速云成立于2014年,是一家业余的云原生利用及数据平台服务提供商,秉持“让计算产生价值,让数据成为资产”的使命,致力于帮忙客户实现数字化转型。 时速云领有丰盛的容器治理、DevOps、微服务治理、数据中台等云原生技术的研发与经营教训,曾经服务了金融、能源、运营商、制作、广电、汽车等畛域的500多家中大型企业及世界500强客户。在深耕公有云业务的同时,时速云产品服务一直延展,推出了多项混合云产品与服务。 时速云总部位于北京,并在上海、深圳、广州、武汉、青岛等地设立了研发核心和办事处。2022年9月被授予国家级专精特新“小伟人”企业名称,目前是工信部重点实验室成员单位。

January 3, 2023 · 1 min · jiezi

关于容器:使用kubeasz部署高可用kubernetets集群

一、筹备工作1.1 环境介绍本试验采纳kubeasz作为kubernetets环境部署工具,它是一个基于二进制形式部署和利用ansible-playbook实现自动化来疾速部署高可用kubernetets集群的工具,具体介绍请查看kubeasz官网。本试验用到的所有虚拟机默认软件源更新为阿里云的源,操作系统为最小化装置,已预装好vim、net-tools、ssh等常用工具,时钟默认曾经全副同步至阿里云,默认已敞开操作系统自带防火墙。本试验用到的操作系统版本为:零碎:Ubuntu Server 20.04 LTS 64位Kubernetets:v1.26运行时:containerd v1.6.8网络:calico 1.2 地址布局角色IP地址主机名VIPETCD192.168.10.101etcd01ETCD192.168.10.102etcd02ETCD192.168.10.103etcd03MATSER/ANSIBLE192.168.10.104master01MASTER192.168.10.105master02MATSER192.168.10.106master03NODE192.168.10.107node01NODE192.168.10.108node02NODE192.168.10.109node03HA192.168.10.110ha01192.168.10.115HA192.168.10.111ha02192.168.10.115二、环境部署2.1 根底环境搭建首先解决ubuntu零碎开机默认会把dns配置成127.0.0.53的问题,所有节点都要操作参考https://blog.csdn.net/qifei71...具体解决办法 批改 /etc/systemd/resolved.conf 文件[Resolve]DNS=8.8.8.8之后以root身份执行sudo systemctl restart systemd-resolvedsudo systemctl enable systemd-resolvedsudo mv /etc/resolv.conf /etc/resolv.conf.baksudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf批改所有节点时区为上海 root@master01:~# timedatectl set-timezone Asia/Shanghai在master01节点操作 装置ansible:root@k8s-master01:~# apt install ansible配置免密登录,须要配置为master01节点到所有节点都毋庸明码即可登录,只拿master02作为示范,其余节点操作相似。生成秘钥对root@master01:~# ssh-keygen Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsaYour public key has been saved in /root/.ssh/id_rsa.pubThe key fingerprint is:SHA256:2kfD/vlpbkKZtG90oujjd90CLZZQHb4buOFSHx4p+so root@k8s-master01The key's randomart image is:+---[RSA 3072]----+| ... || ... || . . || .. .. o || S +o=** || o o =X*+=.|| . . =+o*++.|| oo++.B.o|| oE++O+. |+----[SHA256]-----+散发公钥至各个节点root@master01:~# ssh-copy-id 192.168.10.102/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"The authenticity of host '192.168.10.102 (192.168.10.102)' can't be established.ECDSA key fingerprint is SHA256:LHdJ1aX0Rx+tQlCcGKwIk7aJsFjsUm4/Ze7vwhMqsS8.Are you sure you want to continue connecting (yes/no/[fingerprint])? yes/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysroot@192.168.10.102's password: Number of key(s) added: 1Now try logging into the machine, with: "ssh '192.168.10.102'"and check to make sure that only the key(s) you wanted were added.配置DNS解析,并且将hosts文件同步到所有结点,只拿master02节点作为示范,其余节点操作相似。 ...

January 2, 2023 · 7 min · jiezi

关于容器:容器安全的三大挑战

容器凭借其经济高效的劣势扭转了应用程序的交付形式,随着容器的广泛应用,管理应用程序基础设施的 IT 劳动力和资源也显著缩小。然而,在爱护容器和容器化生态系统时,软件团队遇到了许多阻碍。尤其是习惯于更传统的网络安全流程和策略的企业团队。从实践上来说,容器看起来仿佛可能提供更好的安全性,因为容器将应用程序与主机零碎彼此隔离开来。但理论真的如此吗?  让咱们来看一组市场数据。据美国商业资讯报道,到 2027 年,寰球容器平安市场规模预计将达到 39 亿美元,复合年增长率为 23.5%。不言而喻,市场对于容器平安的需要将越来越大。与任何软件一样,容器化应用程序也可能受到安全漏洞影响,包含谬误、身份验证和受权不充沛以及配置谬误,因而容器平安问题不容忽视。  容器中的平安威逼容器中可能存在的平安威逼有: 内部攻击者试图拜访企业部署。对生产环境具备肯定拜访权限的外部攻击者(不肯定是管理员)。有权拜访部署的开发人员和管理员等特权外部用户的无意毁坏。无心的外部因素可能会意外导致问题,例如在容器镜像中不小心存储了一些密钥或证书。通过引入一些新服务或缩小等待时间来加强客户体验,公司往往会在其服务器或防火墙中关上一些端口。如果不严防死守,这些端口很可能成为黑客的通道。图片起源:Container Security by Liz Rice  上述多种路径会侵害企业的容器安全性。接下来咱们将一起来探讨容器平安面临的挑战以及应答倡议。  容器平安面临的挑战1. 容器镜像问题引入破绽将会导致配置不当的容器镜像。事实上每天云端都会引入不同的新破绽。如果用户间接从云上获取镜像并间接开始应用,就会存在肯定平安危险。所以每个容器镜像在应用之前都须要进行独自扫描从而保障其安全性。  常见的一些问题案例: 镜像启动容许未经受权的网络拜访的无关程序或服务容器镜像被配置超出用户应用的一般权限(配置的权限大于用户应用)镜像中存储了密钥或凭证 倡议: 从受信赖的容器镜像仓库中拉取图像,因为这类的镜像仓库通常领有良好的配置,通常指的是公有镜像仓库,通过加密并且须要通过身份验证。容器镜像仓库应进行定期频繁的保护测试,以此来缩小和打消蕴含破绽的镜像。在将镜像投入生产之前,软件团队须要通过蓝绿部署(Blue-Green deployments)或容器更改的回滚来构建共享实际。 2. 编排平安问题在解决容器平安问题时,像 Kubernetes (K8s)这样的编排工具是不可或缺的。目前 K8s 已成为次要的攻击面。据 Salt Security 称,大概 34% 的组织齐全没有适当的 API 安全策略。除此之外,27% 的受访者示意他们只有一个根本策略,包含对 API 平安状态进行起码的扫描和手动审查,并且没有对其进行管制。  当 K8s 解决多个容器时,在某种程度上裸露了很大的攻击面。当没有爱护编排器的生态系统时,仅仅遵循全行业实际的字段级令牌化是不够的。因为敏感信息被解码和裸露只是工夫问题。  倡议: 确保 orchestrator 的治理界面被正确加密,包含双因素身份验证和静态数据加密。将网络流量扩散隔离,隔离则须要依据传输的流量的敏感性来治理。例如,面向公众的 Web 应用程序能够归类为低敏感度工作负载,而像税务报告软件等能够归类为高敏感度工作负载并将它们隔离。这个想法是确保每个主机运行特定安全级别的容器。对集群节点之间的所有网络流量进行端到端加密,其中还包含集群成员之间通过身份验证的网络连接。将节点平安地引入集群,在不影响集群平安的状况下隔离/移除受感化的节点。 3. 避免“容器逃逸”问题应用较多的容器运行时例如 containerd、CRI-O 和 rkt,可能曾经随着工夫的推移强化了它们的安全策略,然而,它们依然无奈防止破绽问题。这是一个重大的平安问题,因为这些容器运行时容许恶意代码在“container escape”中运行到主机上。  在 2019 年,runC 中发现了一个名为 Runscape 的破绽。这个破绽 ( CVE-2019-5736) 可能让黑客可能脱离沙盒环境并授予对主机服务器的根拜访权限,从而导致整个基础设施受到侵害。起初,人们只是假如这可能是一个歹意的 Docker 镜像,但通过一系列测试后才意识到这是 runC 中的一个危险破绽。  平安左移在解决基于微服务的环境时,倡议在每一步都引入自动化部署。如果依然依照每周或每月这样的频率来手动执行部署,整个过程就无奈达到麻利状态。要在应用程序交付中真正向左挪动,须要创立一个古代的平安插件工具链及其在整个流水线中的扩大。  平安左移体现在:如果镜像中存在任何破绽,该过程应该在构建阶段就进行。应该对 RBAC 进行定期审计以监控所有拜访级别。此外,所有工具和流程都应合乎 CIS 基准。  ...

December 29, 2022 · 1 min · jiezi

关于容器:Containerd-如何配置-Proxy

前言在某些 air gap 场景中,往往须要离线或应用代理 (Proxy), 例如: 须要通过 Proxy pull 容器镜像: Docker Hub: docker.ioQuay: quay.ioGCR: gcr.ioGitHub 镜像库:ghcr.io在某些企业环境中,须要通过代理拜访内部服务Docker 如何配置代理想必大家都很分明,然而自从 Kubernetes 1.20 版本当前开始弃用 Docker, containerd 逐步成为支流 CRI.所以咱们上面介绍一下如何配置 contaienrd 的 Proxy. Notes: 还有一种场景须要 containerd 配置 proxy, 就是将 Dragonfly 和 containerd 联合应用 的时候。 Containerd 配置 Proxy 步骤这里以通过 systemd 装置的 containerd 为例。 containerd 的配置个别位于 /etc/containerd/config.toml 下,service 文件位于:/etc/systemd/system/containerd.service配置 Proxy 能够通过 service 环境变量形式配置,具体如下: 创立或编辑文件:/etc/systemd/system/containerd.service.d/http-proxy.conf 内容如下: [Service]Environment="HTTP_PROXY=http://127.0.0.1:7890"Environment="HTTPS_PROXY=http://127.0.0.1:7890"Environment="NO_PROXY=localhost"配置后保留重启即可: systemctl restart containerd.service最佳实际:Proxy 中 NO_PROXY 的举荐配置在配置 Proxy 时要特地留神,哪些要走 Proxy, 哪些不走 Proxy 要十分明确,避免出现网络拜访异样甚至业务异样。 ...

November 17, 2022 · 1 min · jiezi

关于容器:docker简单使用

一.容器应用tech8 :: ~ » docker pull training/webapp # 载入镜像tech8 :: ~ » docker run -d -P training/webapp python app.py -d:让容器在后盾运行。-P:将容器外部应用的网络端口映射到咱们应用的主机上。 tech8 :: ~ » docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMEScd204fd7b9a2 training/webapp "python app.py" About a minute ago Up About a minute 0.0.0.0:32768->5000/tcp reverent_edison Docker 凋谢了 5000 端口(默认 Python Flask 端口)映射到主机端口 32769 上http://127.0.0.1:32768/ 咱们也能够通过 -p 参数来设置不一样的端口:itech8 :: ~ » docker run -d -p 1133:5000 training/webapp python app.pyc5f24273edac8da1b98af344620885888c6361fe5e547fb05a3f540adddfcb0c ...

October 24, 2022 · 2 min · jiezi

关于容器:多云容器编排-KarmadaOperator-实践

作者:vivo 互联网服务器团队-Zhang RongKarmada作为开源的云原生多云容器编排我的项目,吸引了泛滥企业独特参加我的项目开发,并运行于生产环境中。同时多云也逐渐成为数据中心建设的基础架构,多区域容灾与多活、大规模多集群治理、跨云弹性与迁徙等场景推动云原生多云相干技术的疾速倒退。 一、 背景随着vivo业务一直迁徙到k8s上,集群规模和集群的数量快速增长,运维难度也急剧减少。为了构建多集群技术,咱们也自研了多集群治理,但无奈解决咱们遇到的更多的问题。起初开始对社区相干我的项目做了粗疏的调研和测试,咱们最终抉择了Karmada。 次要起因如下: 具备对多套K8s集群的对立治理能力,业务通过服务维度去治理资源,升高容器平台的治理难度。跨集群的弹性伸缩和调度能力,实现跨集群的资源正当利用,从而晋升资源利用率并节约老本。Karmada齐全应用了K8s原生的API,革新成本低。容灾,Karmada管制立体与member集群解藕,集群异样时反对资源重新分配。可扩展性,如能够增加自研的调度插件和增加自研Openkruise解释器插件等。在咱们摸索怎么应用Karmada的同时,咱们也遇到了Karmada本身运维的问题。 社区部署工具较多,须要用户本人抉择。以后用户部署形式如下: KarmadactlKarmada charts二进制部署hack目录下脚本对于下面的几种工具,在Karmada的社区发展了问卷调研,并生成了统计报告。 次要总结如下: 社区部署工具较多,须要用户本人抉择。部署脚本也存在缺点,须要用户本人解决,github上对于这方面的发问较多。黑屏化操作,没有提供k8s api操作,用户难以产品化,咱们次要冀望对接咱们的容器平台,实现可视化装置。短少CI测试和部署工具的公布打算。etcd集群短少生产环境的要害性能点,如etcd的高可用、定期备份和复原。须要装置很多依赖插件,波及到Karmada管制立体、Karmada的host集群和member集群。短少一键部署和配置繁琐等痛点。针对以上问题,本文将分享Karmada-Operator的vivo实际,包含Operator的计划抉择、API、架构设计和CI构建等。 二、Karmada-Operator的落地实际2.1 Operator SDK介绍Operator Framework 是一个开源工具包,用于以无效、自动化且可扩大的形式治理 Kubernetes 原生应用程序,即 Operator。Operator 利用 Kubernetes 的可扩展性来展示云服务的自动化劣势,如置备、扩大以及备份和复原,同时可能在 Kubernetes 可运行的任何中央运行。 Operator 有助于简化对 Kubernetes 上的简单、有状态的应用程序的治理。然而,当初编写 Operator 并不容易,会面临一些挑战,如应用低级别 API、编写样板文件以及不足模块化性能(这会导致反复工作)。 Operator SDK 是一个框架,通过提供以下内容来升高 Operator 的编写难度: 高级 API 和形象,用于更直观地编写操作逻辑支架和代码生成工具,用于疾速疏导新我的项目扩大项,笼罩常见的 Operator 用例 如上图所示,operator sdk能够基于helm、ansilbe和go构建operator,咱们需依据以后的状况抉择咱们适合的operator框架。 2.2 计划抉择计划一:golang 开发Operator 计划二:ansible开发Operator 计划三:golang和ansible混合开发Operator 依据Karmada的理论生产部署调研状况和vivo本身的实际,能够总结如下: 要反对在K8s集群和不依赖K8s集群二进制部署。反对内部独立的etcd集群部署或者对接已有的etcd集群。Karmada集群具备迁徙能力,如机房裁撤和机器故障等,就须要etcd集群治理有备份和恢复能力,如依据etcd备份数据疾速在其它机房复原集群。须要反对第三方的vip给Karmada-apiserver提供负载平衡,目前vivo都是基于内部vip,并提供了域名。没有应用K8s的service给Karmada-apiserver提供负载平衡。Karmada管制立体一键部署和member集群的自动化注册和登记。也须要获取member集群的kubeconfig,pull模式也须要在member集群部署Karmada-agent。Karmada集群的addons插件装置,如istio、anp、第三方的crd等装置,须要在Karmada的管制立体、host主机集群,甚至须要在member集群上进行配置。提供api能力,实现可视化部署。针对Karmada单个组件的独自降级和全量降级。反对在offline和离线模式。面对Karmada如此简单的条件限度,咱们再来剖析下下面3个计划谁可能比拟适合。 计划一,基于go开发的Operator,比拟适宜基于K8s集群的有状态服务治理,如etcd,数据库等,比拟成熟的有etcd-Operator。Karmada波及到不依赖K8s集群二进制部署、内部etcd、member集群的注册、登记和插件装置,不能很好的反对或者须要减少开发量。 计划二,基于ansible开发的Operator,既能够基于K8s集群的对状态服务治理,也能够脱离K8s集群对如不依赖K8s集群二进制部署、内部etcd、member集群的注册、登记和插件装置。这里次要通过ansible 的ssh登录能力和K8s模块治理,通过调研咱们也发现90%以上的用户能够提供ssh登录。 计划三,基于go+ansible的混合的Operator,读者能够浏览vivo开发的Kubernetes-Operator,就是基于这种计划。计划三具备计划二的所有能力,因为底层都是通过ansible去执行。 首先咱们排除了计划一,对于计划二和计划三,自己也纠结了很长是工夫,最终咱们抉择了计划二。次要起因如下: Operator SDK ansible已具备了和Operator SDK go相等的能力,并提供K8s、K8s_status模块、类似的webhook性能去对k8s的资源管理,以及reconciliation的能力。合乎目前Karmada理论生产部署的需要。简略易学,只有晓得ansbile的jinja模版、和K8s雷同的yaml文件。你只须要编写ansible task,开箱即用,reconciliation由Operator SDK 解决。对于罕用ansible的人比拟敌对,不须要写golang代码。扩大能力强,用户可自定义插件。治理端也反对local、ssh、zeromq三种形式连贯。local模式能够间接对接K8s接口,ssh模式能够登录执行脚本。能够很好的混合应用,解决咱们以后的需要。Karmada运维操作绝对K8s要简略,不须要简单的crd定义,ansible须要解析大量vars去执行playbook就行。golang+ansible模式比拟适宜简单CRD定义和业务逻辑简单的零碎。2.3 API设计 如上图所示,咱们只须要执行Operator-SDK create api命令,就能够创立 KarmadaDeployment的CRD,而后就能够定义KarmadaDeployment的API。在watches.yaml里实现Reconcile的业务逻辑。 ...

September 29, 2022 · 1 min · jiezi

关于容器:问脉首创旁路云原生安全检测框架

本次 v1.3.0 更新为问脉的里程碑版本!咱们全新推出长亭独创的云原生平安检测框架 — — 旁路检测,首推零侵入探针,突破传统的容器平安产品必须在业务节点上装置探针的限度,采纳 Agentless 计划进行部署,保障业务节点实现严格意义上的零侵入检测!同时,咱们晋升了镜像仓库的检测能力并再次升高运维老本,旨在给大家提供零入侵及高效的产品体验!0x01 更新性能反对容器资产盘点反对 Harbor 仓库镜像检测新增云部署探针新增manage治理容器优化已有性能1.1  容器资产盘点反对检测本地容器资产数据,实时检测容器运行状态变动,提供根底信息、数据挂载、过程等资产详情查看,并反对关联到对应镜像。同时,问脉反对 docker、containerd 容器运行时,笼罩 92% 容器场景。 1.2  Harbor 仓库镜像检测反对集成 Harbor 仓库,可对企业的仓库镜像进行扫描,根据扫描后果进行危险剖析并提供修复倡议,重点关注开发人员在镜像构建时的风险管理。 1.3 云部署探针云部署扫描探针是部署在问脉提供的服务器上的探针,您无需装置探针,无需消耗本人的服务器资源,即开即用,方便快捷。 1.4 Manage 治理容器服务端通过与 manage  通信进行 agent 治理,本次装置后探针的更新工作将自动化实现,无需再次手动更新部署,缩小您的运维工夫。 尚未部署探针按照装置扫描探针的步骤创立新的探针并部署即可。已部署探针无需关注以后探针状态,按照装置扫描探针的步骤创立新的探针并部署即可。0x02 如何扫描我的 Harbor 仓库镜像?2.1 创立一个本地部署探针,生成命令到本地进行装置部署 2.2  集成您的 Harbor 仓库集成时需抉择对应的仓库版本按照仓库地址格局填写仓库地址填入您的用户账号与明码探针举荐抉择本地部署探针 2.3  下发工作进行检测返回【工作打算】页面创立新的仓库镜像平安扫描打算抉择上一步集成的仓库对象即可2.4  查看后果上一步创立的工作打算执行实现并更新实现工夫后,即可返回查看资产详情与平安扫描后果。 0x03 结尾旁路检测是咱们问脉团队屡次的业务需要及技术实际钻研的后果,反对云探针部署仅仅是第一步,接下来咱们会在此方向进行很长一段时间的打磨零侵入探针,欢送徒弟们与咱们分享摸索感触及应用需要,咱们致力用最短的工夫为大家带来最须要的产品性能。下一版本预报:CI/CD 集成检测、镜像 webshell 检测、破绽事件分类等。 限时收费:https://rivers.chaitin.cn/ 产品文档:https://veinmind.chaitin.com/docs/saas/index

September 27, 2022 · 1 min · jiezi

关于容器:直播回顾|容器如何提升应用的稳定性

随着数字化转型的深刻,越来越多业务由线下转向线上,衍生出丰盛的业务场景。这些场景驱动着软件系统进行敏态转型,同时也对理论承载业务的底层 IT 资源提出了新的要求,如何保障:既“快”又“稳”,成为整个敏态业务转型面临的新挑战。 明天次要和大家聊一聊,容器在当下数字化转型日益深刻的背景下,是如何保障利用的稳定性的,分享内容次要蕴含容器特点、利用容器化后的关注点、稳定性保障机制等方面。 本文是 9 月 1 日“CloudTech 博云说”第七期分享内容《容器如何晋升利用的稳定性?》的回顾整顿。扫描上方海报二维码或点击文章开端的浏览原文,回看精彩视频! 01 为什么抉择容器?第一个问题:为什么说容器更适宜去承载敏态业务的运行?首先是业务对于疾速响应、疾速开发、疾速迭代的要求越来越高;其次是单个软件系统越来越简单,经验着从单体架构向微服务架构的过渡。而容器技术的衰亡,就是基于这样的时代背景,与传统的虚拟机相比,容器人造具备轻量、弹性、高可用等特点,能够和微服务利用联合,达到 1+1>2 的成果,更好地保障利用稳定性。 此外,在 IDC 2021 年的钻研报告中提到:新增的生产级云原生利用,在新增利用中的占比,将从 2020 年的 10%减少到 2024 年的 60%。Gartner 在往年最新的一个趋势报告中指出:“到 2025 年, 跑在云原生技术平台上的利用,将占到新开发利用的 95%。由此可见,容器曾经作为一项成熟的技术,开始大规模推广落地。 对于单个容器化的利用而言,做好利用的容器化革新,仅仅只是冰山一角,利用上容器的外围目标其实还是为了借助容器 “轻量”、“弹性”、“高可用”的个性来保障利用的稳固运行。而浮在冰面之下的,还有很多新的关注点,例如“健康检查机制”、“pod 故障自愈机制”、“node 故障迁徙机制”、“微服务治理”、“容器平安”等。上面给大家一一解读:02 容器如何晋升利用稳定性?首先,容器集群与物理机/虚拟机集群相比,最大的特点是具备主动迁徙的机制,当集群节点呈现故障,导致服务中断后,可依据相干机制,触发对应的实例迁徙动作,做到自动化/无感知的在其余衰弱节点上进行应用服务的迁徙。从而保障服务的可用性。 默认迁徙:当 node 节点异样后,呈现服务中断的状况。在默认等待时间过后,会主动将停机 node 节点上的 pod 主动迁徙到其余 node 节点上。手动迁徙:为防止默认等待时间,还能够应用 cordon、drain、uncordorn 三个标记实现节点的被动保护平滑迁徙:平滑迁徙能能够实现节点保护期间不低于肯定数量的 pod 失常运行,从而保障服务的可用性。 同时,在容器云上,弱小的自愈能力也是十分重要的一个个性,默认实现形式是通过主动重启产生故障的容器,使之恢复正常。除此之外,咱们还能够利用 Liveness(存活探针) 和 Readiness(就绪探针)检测机制来设置更为精密的衰弱检测指标,从而实现如下的需要:零停机部署防止部署有效的服务镜像更加平安地滚动降级面向集群跨数据中心的场景,提供容灾多活的反对能力:横向维度从数据中心各类资源的物理散布视角进行容灾考量纵向维度从利用的数据库、中间件、利用、调度等视角进行容灾考量。同时穿插着容灾应急解决的机制、动作等过程类考量。 别离从 5 个层面,提供容灾双活的外围能力:负载层:全局负载+外部负载两级负载模式,次要是配置应用层:采纳平台 Portal 对立治理跨集群(数据中心)利用,对立保护其生命周期(部署、降级、回滚、删除)中间件层:每个中间件别离设计;尽可能减少跨数据中心调用;采纳多集群数据同步计划解决跨数据中心一致性;次选采纳单边读写,另一侧读/备份的形式数据库层:基于不同数据库的专有计划落地;基于网络状况,决定是否采纳单边写,另一侧读/备份此外,还提供容器云平台层的双活能力:(1)治理端和集群分别独立部署;(2)治理端(含相应的中间件)采纳主备形式,备用端日常不启用,只在劫难状况下启用;(3)集群由一侧治理端对立治理;(4)镜像主动跨集群同步(5)集群监控、日志,由各个集群独立保护。后面咱们聊到,将容器作为微服务利用的运行的最佳载体,仅仅只是解决了运行资源层的问题,还需额定思考如何解决微服务利用治理与监控的问题。首先须要思考的是如何兼容各类微服务框架,例如 springcloud、dubbo、以及服务网格 istio。其次是从“微服务利用监控”与“流量治理”这两个角度登程,不断完善和补充微服务利用监控治理层面深度问题的定位与解决。真正达到 1+1>2 的成果。 除此之外,当业务突发稳定(如秒杀流动、限量抢购流动)时,因无奈精确预估流量有多少, 往往须要提前准备机器;突发流量过后,这些机器往往处于空载的状态。而在 K8S 集群上运行惯例业务,能够最优老本并平滑解决突发流量,且无需人工治理节点和容量布局,实现全自动容器有限弹性扩容尤为重要。 针对这种场景,k8s 内置了各类弹性伸缩组件,其中最次要的就是 HPA(Pod 程度主动伸缩)控制器,基于设定的扩缩容规定,实时采集监控指标数据,依据用户设定的指标阈值计算正本数,进而调整指标资源的正本数量,实现扩缩容操作。从而做到无限防止“容量布局”与“理论负载”的矛盾,保障大流量负载的同时,也能晋升资源的使用率。除了须要保障已部署的利用失常运行外,利用通常是须要继续保护和更新的,利用更新时依据变更策略的不同会对服务可用性和服务质量产生不同的影响。在对应用服务稳定性,资源环境束缚和业务场景需要等多方因素进行衡量后,能够抉择适合的变更策略。 在这个场景之下,往往是常见的“降级”、“回滚”等操作,这部分能够借助容器编排引擎的能力,也有很多企业级容器云平台提供了界面化、自动化配置的能力。同时,业务的公布往往也会存在多个版本,在新版本服务正式公布前,能够大量部署新版本与上一个版本共存。无效验证和防止新版本可能带来的问题,从而保障利用整体维度的可用性。这对灰度公布提出了新要求。 ...

September 9, 2022 · 1 min · jiezi

关于容器:Dragonfly-基于-P2P-的文件和镜像分发系统

文|孙景文、吴迪(Dragonfly Contributor) 本文 4138 字 浏览 10 分钟 背 景网络下载提起网络下载畛域,你应该首先会想到基于 TCP/IP 协定簇的 C/S 模式。这种模式心愿每一个客户机都与服务器建设 TCP 连贯,服务器轮询监听 TCP 连贯并顺次响应,如下图: 上世纪末期,基于 C/S 模式的思维,人们倒退了 HTTP, FTP 等应用层协定。然而 C/S 模式的弊病很显著:服务器的负载过大,下载速率过慢。随着互联网规模的增大以及客户对于下载数据大小,下载速率等需要的回升,这些弊病被一直放大。 P2P 下载原理基于上述背景,有人联合 P2P 网络与负载平衡的思维,提出 P2P 下载模式。这种模式不再把所有的下载压力丢给服务器,服务器只负责传递文件元数据,真正的文件下载连贯建设在客户机与客户机之间。同时一个文件能够被分片为多个块,同一个文件中不同的块能够在不同的客户机之上下载,使得下载文件在 P2P 网络中动静流通,大幅晋升了下载效率,如下图: 去中心化的 P2P 下载基于 DHT 技术,它采纳分布式全网形式来进行信息的存储和检索。所有信息均以哈希表条目模式加以存储,这些条目被扩散地存储在各个节点上,从而以全网形式形成一张微小的分布式哈希表。在此基础上做到对单服务器的去中心化,哈希表负责对负载的摊派,将全网负载均摊到多个机器之上。 我的项目简介及架构概述Dragonfly 是一款基于 P2P 的智能镜像和文件散发工具。它旨在进步大规模文件传输的效率和速率,最大限度地利用网络带宽。在利用散发、缓存散发、日志散发和镜像散发等畛域被大规模应用。 原理Dragonfly 联合 C/S 架构与 P2P 架构的长处。它提供面向客户的 C/S 架构下载模式。同时它也提供面向服务器集群的 P2P 回源模式,与传统 P2P 不同的是,对等网络建设在 Scheduler 外部,指标是最大化 P2P 外部下载效率,如下图: 架构简介Dragonfly 面向镜像散发和文件散发,联合 P2P 网络和服务器集群的思维,向用户提供稳固的,高效的下载服务。Dragonfly 心愿在服务器外部构建 P2P 网络,将服务器的不同主机节点分为 Manager、Scheduler、Seed Peer 以及 Peer 四个角色,别离提供不同的性能。 ...

September 6, 2022 · 2 min · jiezi

关于容器:直播回顾|应用上容器的最佳实践技术沙龙

近日,由中国信通院与博云联结主办的“2022 原动力|利用上容器的最佳实际技术沙龙“胜利举办,来自中国信通院、紫金农商行、京东方、奇瑞金融、博云的五位嘉宾针对企业应用上容器的实践经验进行了精彩的分享,流动吸引了上千次人员观看,并在直播间与分享嘉宾进行了高频的答疑互动。 70%的用户将容器利用在生产环境中 中国信通院云原生技术研究员杜岚在分享中提到,容器技术作为云原生架构外围的基石,凭借标准化、开放性、隔离性、轻量级、高可用等外围价值,在晋升资源利用率、晋升整体业务和利用的稳定性,以及晋升整体研发效率上具备十分高的价值,越来越多的企业开始应用容器技术。据 2021 年信通院调研数据显示,容器在用户的生产环境驳回曾经靠近 70%,在外围生产环境曾经是靠近了 50%。 容器曾经进入了企业的生产环境,这意味着容器平台须要具备更高水准的性能,更强的能力、更好的性能、高稳定性、高安全性。同时,容器的利用开始从互联网行业和金融行业,逐步渗透到更多传统行业,包含制作、医疗、能源、轨道交通等行业都开始了容器技术的利用。这与企业上云政策的推动以及云原生技术站的倒退非亲非故,并且云原生给企业带来的降本增效,更是推动了容器技术在这些行业当中的深入利用。 然而,企业在应用容器技术的时候也面临很多的挑战,对于企业而言如何应用容器,如何用好容器,都是亟待解决的问题。信通院在过来曾经面向容器的性能、性能和平安等多个方面提出了一套比较完善的容器规范和评估体系,后续在这些后期钻研的根底上,将进一步实现企业上容器实际指南的报告编写。 01 紫金农商行云原生实际分享金融行业不然而资本密集型行业,更是技术密集型行业,在信息化建设畛域始终是走在前列的,金融机构对 IT 零碎的高性能和高稳固的要求较高。在《紫金农商行云原生实际分享》中,紫金农商行容器云项目经理刘洋具体介绍了为踊跃应答传统信息系统的数字化转型、应答业务和规模的扩大,紫金农商行一地两核心且具备灾备能力的容器云平台的建设过程、建设教训和实现收益,为大量中小规模的金融机构带来了很好的借鉴范本。紫金农商行的容器云较好地进步了资源使用率,原有的服务器部署从 6 台缩减至 4 台;大幅晋升利用公布效率,从原有的虚机部署一天左右降至当初的 1~2 个小时;组建服务效率进步,PaaS 服务化能力晋升了开发效率,通过多租户以及利用商店、数据库中间件在开发测试环境的资源就绪工夫从日级降至分钟级;业务连续性晋升,基于多正本、跨主机、故障自愈和弹性伸缩机制,业务利用的 SLA 提审至四个九以上。目前,容器云平台已撑持了 12 套零碎。 02 京东方容器云平台从 0 到 1 的建设历程来自京东方科技集团股份有限公司平台解决方案专家魏传奎老师在《容器云平台从 0 到 1 的历程》中分享了京东方的云原生落地实际。以数字化改革为契机,基于对产品容器化部署需要的加强、虚拟机老本越来越高、外部开发人员技术能力等多方面的评估,京东方容器云平台建设在比照了自建平台、开源计划和成熟商业化产品之后,抉择了基于博云商业化容器产品进行平台建设,疾速实现利用上容器。2020 年京东方容器云平台正式启动建设,到 2022 年已有数十套业务零碎跑在了容器云平台上。同时,他提到在应用容器云过程中,企业也会面临多种问题和挑战,例如外部技术人才的造就、版本无感知降级、平台兼容适配水平、故障排查、容器网络互联互通等问题,都须要具备成熟的计划来解决。 03 奇瑞金融容器云平台建设教训分享奇瑞徽银汽车金融股份有限公司(以下简称:奇瑞金融)平台项目经理冯威分享了奇瑞金融容器云平台建设教训,从容器云平台选型、平台建设历程、整体性能架构、平台价值等多方面具体介绍了奇瑞金融的容器云建设教训。他提到,容器云平台不仅仅是要做翻新试点,更要真正的用起来,能力施展容器云的价值。 奇瑞金融在科技建设方面敢闯敢试、求真务实。在通过充沛的调用、征询、审慎评估之后,奇瑞金融率先决定间接将外围业务零碎运行于容器平台之上,这绝对于业界常见的“先边缘后外围”的上云形式,建设门路更加果决和坚定。平台上线之后,通过两年多的生产运行继续察看容器平台在生产过程中的理论价值决定是否继续应用容器平台,在通过价值验证之后,奇瑞金融启动了容器平台的扩容工作,笼罩了更多的业务利用、满足更多业务零碎的容器化需要。将来奇瑞金融将进一步深入以容器为根底的云原生及数字化转型,以容器为外围,以后续其余云原生相干布局造成联动,以响应监管机构的号召,持续保持技术的先进性,继续享受先进技术带来的技术红利。 04 博云利用上容器如何既快又稳随着容器技术的减速落地,企业用户须要更清晰的容器技术落地办法来确保能够真正施展容器技术对业务的价值。通过对大量企业客户的利用、容器化革新的经验总结,博云整顿了一套企业应用上容器的方法论和建设指南。博云容器云产品族解决方案负责人王伟就《利用上容器如何既快又稳》进行了主题分享,从常见的上容器的利用类型、利用上容器的形式、步骤、流程,以及利用上容器后的变动,具体论述了利用上容器的形式办法。并且,针对利用上容器过程中容器网络互联互通、中间件容器化、微服务化利用对立治理等难点与问题,带来了切实可行的解决方案。

September 2, 2022 · 1 min · jiezi

关于容器:ATC22顶会论文RunD高密高并发的轻量级-Serverless-安全容器运行时-龙蜥技术

编者按:目前的平安容器软件栈 — 包含 host 操作系统中的 cgroup、guest 操作系统和用于函数工作负载的容器 rootfs,都会导致低部署密度和在低并发能力。为此,RunD 作为一种轻量级平安容器运行时,提出了 host-to-guest 的全栈优化计划来解决上述问题。本文整顿自龙蜥大讲堂第 38 期,精彩分享视频回放已上传至龙蜥官网(首页-动静-视频),欢送查看! 摘要在轻量级虚拟机(MicroVM)中托管单个容器的平安容器当初曾经广泛应用于无服务器计算。因为其中的用户函数大多为细粒度形象,因而为了进步资源利用率和用户体验,Serverless 须要反对高密度的容器部署和高并发的容器启动。咱们的考察显示,目前的平安容器软件栈 — 包含 host 操作系统中的 cgroup、guest 操作系统和用于函数工作负载的容器 rootfs,都会导致低部署密度和在低并发能力。为此,RunD 作为一种轻量级平安容器运行时,提出了 host-to-guest 的全栈优化计划来解决上述问题。应用 RunD 运行时,能够做到在一秒钟内启动超过 200个 平安容器,并且能够在一个 384GB 内存的节点上部署超过 2500 个平安容器。 一、介绍函数计算作为无服务器计算(或者服务器无感知计算,Serverless)中的次要实现,通过隔离开发人员提供的细粒度函数并弹性治理应用资源,做到了更精细化的按量付费和更高的数据中心资源利用率。随着云原生技术的倒退和微服务架构的风行,利用被越来越多的拆分成更细粒度的函数并部署为 Serverless 模式。 但基于传统容器技术隔离的函数计算因为其较低的隔离性和安全性,曾经逐渐被替换成联合 MicroVM 和容器的平安容器技术为利用提供强隔离性和低提早响应。平安容器通常会在一个一般的容器外额定嵌套一层轻量级的 microVM 中,如下图1 (a)所示。通过这种形式,用户能够基于现有的容器基础设施和生态系统构建 Serverless 服务。平安容器可能确保与 MicroVM 中的容器运行时兼容。Kata Containers 和 FireCracker 都提供了实现这种平安容器的实践经验。 (图1/目前支流的平安容器模型,以及对应的软件栈架构) 在 Serverless 场景下,函数的轻量级和短期运行的个性使得高密度容器部署和高并发容器启动对于无服务器计算至关重要。例如,47% 的 Lambdas 在 AWS 上运行的最小内存规格是 128MB,在 Microsoft Azure 中,大概 90% 的应用程序的内存耗费从未超过 400MB。因为一个物理节点通常有很大的内存空间(如 384GB),它按理应该可能部署大量的容器设计。同时,大量的函数调用可能会在短时间内达到。然而,平安容器的额定开销大大降低了函数的部署密度和启动容器的并发性。 ...

September 2, 2022 · 4 min · jiezi

关于容器:阿里云首期云原生加速器第二次集结活动成功举办秒云获阿里云加速器荣誉伙伴认证

2022年8月19日至20日,由阿里云云原生利用平台、阿里云加速器、阿里巴巴策略投资独特举办的阿里云首期云原生加速器第二次集结流动在杭州圆满举办。作为阿里云首期云原生加速器成员,成都元来云志科技有限公司(简称“秒云”)CEO张旸应邀出席, 与加速器学员们汇聚一堂,共话云原生技术演进、生态倒退。在经验了两天的集中学习、跨界交换及深度链接之后,阿里云云原生加速器迎来了结业典礼。典礼上,学员们交换分享了各自的播种与心得,秒云获阿里云加速器荣誉搭档认证。 本次集结流动,阿里云邀请了企业治理、云原生、股权设计等畛域业余导师,通过沉迷式教学与实际、开放式交换与学习,为学员们提供跨界视角与领导,助力云原生畛域企业实现疾速倒退。流动现场多畛域大咖相互交换,思路碰撞、气氛热烈。 当今,各行各业都在谋求数字化倒退,云原生已成支流。此前,作为国内首家专一于云原生智能运维的公司,也是惟一一家来自于成都的企业,秒云凭借云原生智能运维中台产品以及一体化的云原生治理运维解决方案,入选了阿里云首期云原生加速器。 阿里云云原生加速器是国内云原生畛域专一企业赋能减速组织,依靠阿里云在云原生畛域的深厚布局以及阿里巴巴全方位生态资源,为云原生畛域守业企业提供业务、技术、资金、品牌等多维度的减速赋能与生态单干,助其成为细分畛域的明星企业,在阿里云上造成百花齐放的云原生生态体系,独特携手拥抱数字时代。阿里云云原生加速器为企业提供了一个生态链接的价值平台,不仅将阿里云生态资源与企业链接起来,还在企业的技术、产品、解决方案上实现了更多链接。近期,秒云还取得了阿里云首批产品生态集成认证, 借助阿里云被集成生态策略与生态集成技术的全面凋谢,减速云原生产业落地,独特为中国数千万家企业提供数字翻新服务。 阿里云云原生加速器是阿里云加速器在云原生畛域的重要投入,冀望以此赋能守业企业,携手共建云原生行业新生态。作为国内规模最大、产业资源最丰盛、减速最高效的赋能组织,在过来几年中,阿里云加速器深刻多个垂直赛道,陪伴和减速了诸多细分畛域领先者的呈现。**作为阿里云的生态合作伙伴,将来,秒云将持续携手阿里云,深入生态、业务、资源、技术等方面的各项单干,共建云原生产业生态圈,减速云原生产业落地。**

August 29, 2022 · 1 min · jiezi

关于容器:直播回顾|多云时代如何建设企业级云管理平台

在之前《多云时代,如何定义企业云治理平台?》的直播课程中,咱们重点围绕“企业为什么须要云治理平台”和“什么是企业云治理平台”为大家分享了对于企业建设云治理平台的重要性和云治理平台的定位。 本文是 7 月 21 日“CloudTech 博云说”第六期直播分享内容的回顾整顿,围绕《多云时代,如何建设企业级云治理平台?》为大家分享企业云治理平台的建设门路和方法论。 01 企业云治理平台建设的外围诉求和思路布局通过多年泛滥理论我的项目的建设教训,博云对企业级用户建设云治理平台的外围诉求进行了演绎总结,造成了四个外围诉求,即对立异构资源纳管、对立云服务门户、对立经营治理、对立运维治理。 这四个外围诉求具体表现为: 对立异构资源纳管:企业须要实现云资源和非云资源的对立纳管,实现跨平台的资源调度与编排;对立云服务门户:企业须要独立自服务门户,自助化申请应用资源,须要对立运维经营门户,集中管理运维经营能力;对立经营治理:企业须要能够自定义服务目录及服务的审批流程,须要建设租户的管理体系,须要资源优化的倡议,升高资源应用老本;对立运维治理:资源须要全面监控,日常运维操作须要自动化,资源配置数据须要集中管理。基于企业级用户的这四个外围诉求,博云提出了“云纳管+云服务+云经营+云运维”四位一体的建设理念,并与中国信通院联结公布了《企业云治理平台建设指南》,基于实践钻研根底与行业案例实际,既为业界带来了企业云治理平台建设的方法论,也为企业建设云治理平台提供了清晰标准的落地指南。 云纳管能力范畴及建设思路云纳管须要具备异构资源对立纳管、跨平台资源调度与编排能力。 异构资源对立纳管:实现云资源和非云资源对立纳管,云资源包含:虚拟化、私用云、私有云、专有云、容器云等。非云资源包含:集中/分布式存储、SDN、负载平衡、防火墙、堡垒机等。 跨平台资源调度与编排:实现资源池化,通过资源调度引擎对立调度资源。通过资源编排引擎,实现跨异构资源混合编排,疾速响应客户资源应用需要。 云纳管建设思路须要明确资源管理范畴和业务环境边界。 资源管理范畴:企业依据本身状况,可分阶段进行资源纳管。例如:首先实现虚拟机化、公有云、私有云资源纳管,而后再实现基础设施类资源(SDN、分布式存储、负载平衡和堡垒机)和 PaaS 资源(容器云、数据库、中间件)纳管。 业务环境边界:企业依据本身状况可分阶段进行业务环境治理,例如:首先实现开发环境、测试环境治理,而后再实现生产环境治理。  云服务能力范畴及建设思路 云服务须要具备独立服务门户和对立运维经营门户能力。 独立服务门户:面向资源使用者,通过标准化云服务,使租户领有云资源申请、应用、治理的独立服务门户, 租户自助申请资源,平台主动调度供应,晋升资源交付效率。 对立运维经营门户:面向资源运维和运营者,运维经营利用集中统一治理,可自定义公布利用到利用市场,集体桌面自定义,用户可在集体桌面自主增加、删除利用,对立入口、对立认证,防止在多套零碎间屡次登录的繁琐操作。 云服务建设思路须要明确内外部服务对象、服务产品和服务流程。 服务对象:梳理明确组织架构、服务对象,例如:开发人员、测试人员、运维人员等。 服务产品:梳理明确服务对象对服务产品需要,例如:计算(云主机、容器 等)、存储(云硬盘等)、网络(VPC、负载平衡、浮动 IP 等)、云数据库(MySQL、Redis 等) 中间件(RabbitMQ、Kafka 等)等。 服务流程:梳理明确服务产品申请、变更、退订等审批流程。 云经营能力范畴及建设思路  云经营能力须要具备服务和流程定义、租户体系、经营数据能力。 服务和流程定义:服务、产品、规格、价格自定义,灵便定义服务目录,服务审批流程自定义,满足客户不同的服务审批流程。 租户体系:反对多级租户,资源分配、受权服务,反对租户间租户隔离。 经营数据:对资源、组织架构、业务环境等多维度进行治理和剖析,通过图、表、趋势图等实现对资源、业务数据的可视化,提供资源优化倡议,升高资源应用老本。 云经营建设思路须要设计和建设经营管理体系。 服务目录:依照服务对象所需服务产品设计服务目录,明确计量计费模式、规范。企业依据本身状况,可分阶段进行服务上线。例如:首先实现虚拟机、公有云、私有云资源服务,而后再实现基础设施资源和 PaaS 资源服务。 租户治理:组织架构映射租户、资源配额、服务受权、资源归属(组织、业务、我的项目、平台、用户)。 流程治理:依照服务产品审批流程,自定义云资源申请、变更、退订等审批流程并绑定相应服务。如果企业曾经有流程治理平台,例如: ITSM,企业云治理平台能够与 ITSM 对接。 经营数据:梳理明确经营数据需要,提供对租户、业务 、我的项目、标签等多维度的数据处理和剖析报表、大屏展现等,实时掌控企业 IT 现状,为资源应用和将来布局提供数据根据。 云运维能力范畴及建设思路云运维能力须要具备资源监控、自动化运维、配置管理能力。 资源监控:实现云资源和传统设施一体化监控,及时、精确定位故障并解决。 自动化运维:实现日常运维操作自动化,晋升运维操作的安全性和工作率。 配置管理:实现资源配置信息集中、规范化治理,为资源监控和自动化运等提供精确的配置数据。 云运维建设思路须要整合 IT 运维能力,实现高效运维。 资源监控:梳理明确监控对象和指标,企业云治理平台主动采集资源的监控指标,例如:CPU、 内存、磁盘、网络等性能数据,依据业务按需配置性能指标的告警服务,及时定位故障起因。 自动化运维:梳理明确自动化运维场景,通过作业平台实现日常运维操作的标准化、规范化、自动化,例如:批量执行、日常巡检、软件装置、备份复原、配置比照、补丁装置等,晋升运维人员工作效率。 配置管理:梳理资源配置数据模型,主动采集资源配置数据,保障资源数据准确性,提供给周边 IT 运维管理系统进行数据生产。 同时,IT 运维能力整合存在两种状况。第一种状况,企业未建设配置管理、监控治理、自动化运维相干 IT 运维平台,可由企业云治理平台对立提供。第二种状况,如果企业曾经建设相干 IT 运维管理系统,企业云治理平台能够与已有 IT 运维管理系统 对接,实现运维能力对立治理、高效运维。 ...

August 10, 2022 · 1 min · jiezi

关于容器:安装KubeOperator并导入现有集群进行管理

装置KubeOperator并导入现有集群进行治理介绍KubeOperator 是一个开源的轻量级 Kubernetes 发行版,专一于帮忙企业布局、部署和经营生产级别的 Kubernetes 集群。 KubeOperator 提供可视化的 Web UI,反对离线环境,反对物理机、VMware、OpenStack 和 FusionCompute 等 IaaS 平台,反对 x86 和 ARM64 架构,反对 GPU,内置利用商店,已通过 CNCF 的 Kubernetes 软件一致性认证。 KubeOperator 应用 Terraform 在 IaaS 平台上主动创立主机(用户也能够自行筹备主机,比方物理机或者虚机),通过 Ansible 实现自动化部署和变更操作,反对 Kubernetes 集群 从 Day 0 布局,到 Day 1 部署,到 Day 2 经营的全生命周期治理。 装置root@hello:~# curl -sSL https://github.com/KubeOperator/KubeOperator/releases/latest/download/quick_start.sh | sh...略...======================= KubeOperator 装置实现 =======================请凋谢防火墙或平安组的80,8081-8083端口,通过以下形式拜访: URL: http://$LOCAL_IP:80 用户名: admin 初始密码: kubeoperator@admin123 root@hello:~# root@hello:~# koctl status Name Command State Ports -----------------------------------------------------------------------------------------------------------------------------------------------kubeoperator_kobe sh /root/entrypoint.sh Up (healthy) 8080/tcp kubeoperator_kotf kotf-server Up (healthy) 8080/tcp kubeoperator_kubepi kubepi-server Up (healthy) 80/tcp kubeoperator_mysql /entrypoint.sh mysqld Up (healthy) 3306/tcp, 33060/tcp kubeoperator_nexus sh -c ${SONATYPE_DIR}/star ... Up (healthy) 0.0.0.0:8081->8081/tcp,:::8081->8081/tcp, 0.0.0.0:8082->8082/tcp,:::8082->8082/tcp, 0.0.0.0:8083->8083/tcp,:::8083->8083/tcp kubeoperator_nginx /docker-entrypoint.sh /bin ... Up (healthy) 0.0.0.0:80->80/tcp,:::80->80/tcp kubeoperator_server ko-server Up (healthy) 8080/tcp kubeoperator_ui /docker-entrypoint.sh ngin ... Up (healthy) 80/tcp kubeoperator_webkubectl sh /opt/webkubectl/start-w ... Up (healthy) root@hello:~# 登陆地址: http://<ko服务器_ip>:80用户名: admin明码: kubeoperator@admin123导入集群# 获取 Api Server[root@k8s-master01 ~]# cat ~/.kube/config | grep server: | awk '{print $2}'https://192.168.1.69:8443# 获取 Router# 若应用kubeadm装置能够应用如下命令进行查看 ,若二进制装置应用节点IP即可[root@k8s-master01 ~]# kubectl -n kube-system get pod -o wide | grep kube-proxy[root@k8s-master01 ~]# # 获取 Token[root@k8s-master01 ~]# vim 123.yaml[root@k8s-master01 ~]# cat 123.yaml apiVersion: v1kind: ServiceAccountmetadata: name: kubeoperator-user namespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata: name: kubeoperator-userroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-adminsubjects: - kind: ServiceAccount name: kubeoperator-user namespace: kube-system[root@k8s-master01 ~]# [root@k8s-master01 ~]# kubectl apply -f 123.yaml serviceaccount/kubeoperator-user createdclusterrolebinding.rbac.authorization.k8s.io/kubeoperator-user created[root@k8s-master01 ~]# [root@k8s-master01 ~]# # 1.23 以及以下能够应用如下命令查看[root@k8s-master01 ~]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kubeoperator-user | awk '{print $1}') | grep token: | awk '{print $2}'[root@k8s-master01 ~]# [root@k8s-master01 ~]# # 1.24 版本应用如下命令创立token[root@k8s-master01 ~]# kubectl -n kube-system create token kubeoperator-usereyJhbGciOiJSUzI1NiIsImtpZCI6Ik9fdmIzY3ZjU2w0V3ZuUXl2bExBN2tZYlh3bFV2MTliZElSd0hvMnN6SXMifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNjU4ODk4MTE5LCJpYXQiOjE2NTg4OTQ1MTksImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJrdWJlb3BlcmF0b3ItdXNlciIsInVpZCI6ImZhOGJmZjJjLWIyYjYtNDAxMS1iODAzLTY4MDVmZDYwZjMxOSJ9fSwibmJmIjoxNjU4ODk0NTE5LCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06a3ViZW9wZXJhdG9yLXVzZXIifQ.HvLQlMW_aJ2TDlyE-aM9UiDKl3QHAod9oUQZaHBI97-nLc3aoUdKsGrhICD42ud_Qcn_vFhUvJkPvBi_5esqKCB9LPF-cUhyyj0TxRIH_rTfUdzmDeYUVn3rfg0jlGkXRhzpJMLIRpsK_RB0StbDR4WxfhdnpRkFz-7YgtsRUfRZXG4AF6HNzt1ZWEA3ZVv779TqJemBUTmwJGB9OdyYkKTnGNy4tDGfryZsfW7zN-FhdVugd_7-_lNlFrLZWwrN3fUYPSZLGqulvy7BBpIBO16pBtIA0Qi0bkNdkSpu5a2RNjpMtXKVRYy7M--mQ4EaEod4aCZDuDhMz2S-75VwDA[root@k8s-master01 ~]# 对于 ...

August 5, 2022 · 2 min · jiezi

关于容器:Oracle-Linux安装K8S集群

环境筹备装置Oracle 8.6,留神此处抉择 Minimal Install。装置结束后执行命令装置一些必要组件。 dnf update -y && reboot #更新零碎到最新dnf remove firewalld #卸载不须要的组件dnf install vim wget nc socat tc ebtables iptables-* conntrack ipvsadm #装置必要组件显式加载br_netfilter模块: cat > /etc/rc.sysinit << EOF#!/bin/bashfor file in /etc/sysconfig/modules/*.modules ; do[ -x \$file ] && \$filedoneEOFcat > /etc/sysconfig/modules/br_netfilter.modules << EOFmodprobe br_netfilterEOFchmod +x /etc/sysconfig/modules/br_netfilter.modules调整零碎设置: sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #敞开Selinuxsed -i '/swap/s/^/#/' /etc/fstab #关闭系统替换分区容许 iptables 查看桥接流量: cat <<EOF | sudo tee /etc/modules-load.d/k8s.confbr_netfilterEOFcat <<EOF | sudo tee /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOFsudo sysctl --system容许流量转发: ...

July 17, 2022 · 2 min · jiezi

关于容器:Docker入门一

@[toc] 一、Docker 的外围概念概念Docker是容器技术。在实质上来说它就是主机的汇合,如图: 什么是主机这里的主机咱们个别说的是操作系统,世面上比拟风行的零碎:mac windows Linux 。什么样类型的主机的汇合?次要是Linux零碎主机的汇合。其实docker外面装置的是精简版的Linux,说白了这个精简版的Linux零碎比拟小,小到什么水平呢?小到只能运行一个应用程序。为什么应用Docker部署 应用Linux单机部署如图: 缺点: 端口抵触环境抵触次要起因是部署藕合造成的。应用虚拟机部署如图: 缺点 消耗资源的问题 【虚拟机须要耗费电脑的cpu 磁盘 内存,如果耗费太大,那么留给微服务的资源就很少的,就会影响微服务的性能】应用艰难的问题 【独自须要装置虚拟机,还得分配内存 cpu 硬盘大小的问题】应用容器【docker】部署如图: Docker 如何解决资源消耗的问题? 它次要是用的是复用资源技术,其实是操作的操作系统资源,与虚拟机则不是【独立占用】,因为装置虚拟机的时候曾经调配好cpu 内存 硬盘。Docker 如何解决应用艰难的问题? 只须要一个命令运行容器。Doker如何解决 端口抵触与环境抵触的因为Docker中的容器是齐全隔离。 二、Docker的利用场景利用场景单体我的项目与微服务项目。 三、Docker如何装置博客地址https://blog.csdn.net/Fu_Shi_... 四、Docker治理命令治理命令 builder Manage builds 治理构建 config Manage Docker configs 治理配置 container Manage containers 治理容器 context Manage contexts 治理上下文 engine Manage the docker engine 治理引擎 image Manage images 治理镜像 network Manage networks 管理网络 node Manage Swarm nodes 治理节点(集群) plugin Manage plugins 治理插件 secret Manage Docker secrets 治理密钥 service Manage services 治理服务 stack Manage Docker stacks 治理 swarm Manage Swarm 治理集群 system Manage Docker管理系统 trust Manage trust on Docker images 治理信赖 volume Manage volumes 治理数据挂载(数据长久化 === 永恒保留) 五、Docker镜像镜像的概念镜像其实就是一个没有启动的Linux的主机而已。生成Docker镜像的条件 ...

July 13, 2022 · 3 min · jiezi

关于容器:秒云生活梦想家计划从一杯手冲开启

生存是什么?是蝇营狗苟的出卖本人的劳动?是日复一日反复毫无价值的工作?还是沉醉在“大家都躺平”的摆烂幻梦里? 显然不是。 《白日梦想家》男主角Walter是一名在《LIFE》杂志工作了16年的胶片洗印经理,他性格内向,甚至无奈跟心仪的共事Cheryl 闭口搭讪,面对生存他像个旁观者,时常“放空”做白日英雄梦。直到有一天公司被并购,杂志须要做最初一期的封面,而封面胜利与否的要害是找到狂野摄影师Sean的一卷胶片,Walter终于闭口搭讪Cheryl ,并在她和母亲的激励下踏上真正的冒险之旅,冰岛、陆地、喜马拉雅山…… 生存永远是须要本人去发现,本人去体验。生存不止眼前的苟且,还有诗和远方,这句话既俗套又浪漫。 有的时候咱们总是被事实所绊倒,会因为各种繁琐的小事儿懊恼,会为了工作繁忙奔走,会因为我的项目丧气苦恼,会为了失恋回避悲伤……但生存并不是只有这一两件事件,世界也并不是为咱们所有人中的一人而存在,每一件事件都有它存在的意义,不要因为一些艰难妨碍本人后退的脚步,也不用为了未知而失去方向,做好当下,即便指标很远。 正如电影《白日梦想家》中,在喜马拉雅山上,Walter问摄影师Sean:“你打算什么时候拍照?”Sean顶着干涸稻草似的乱发、不知有几层的抬头纹、满脸的胡渣眯着眼睛答复说:“有时候我不拍 。如果我很喜爱某个时刻,我是说,就我集体而言……我不喜爱相机让我分心。我只想沉迷在那一刻 。” 不要做白日梦想家,要做生存的梦想家,柔弱胆小不会带来胜利,人生的意义在于承当人生无意义的勇气,如果你始终在找人生的意义,你永远不会生存。 看电影、手冲咖啡、听音乐、救助漂泊猫等等都是咱们热爱生活的形式。懂生存、会生存、爱生存,生存的意义将永远闪耀在那些乐观、踊跃、致力、怯懦、向上的人身上。秒云“生存梦想家”打算心愿大家在忙碌的工作中,也不要黯淡了生存的喜好和眼中的星光。 “秒云生存梦想家”之「手冲打算」“咖啡不只是美妙的风味摸索,还代表着一个通过有意义的联结和口头,踊跃扭转人们生存的机会。”咖啡源自希腊语“Kaweh”,代表着力量与激情。咖啡,是一种饮品,更是一种文化,它联系着人们的生存,缩短了人与人之间的距离。 在习惯品茶的中国,咖啡作为舶来品,其历史并不长,但因为其细腻的口感和芳香的香气,人们慢慢地被它所征服,沉醉在它浓厚的香醇中。清茶性情里的冽与透,咖啡性情里的淳与融,交相辉映,如同历史赋予这个时代的气味,海纳百川而韵味悠长。 日子和煦有光,咖啡醇厚有香,每日一杯手冲,懊恼一扫而光。秒云在办公室为大家购置了手冲咖啡设施和各式风味的咖啡品种。 手冲咖啡筹备资料滤纸、咖啡过滤杯、咖啡分享壶、咖啡手冲壶、咖啡电子秤、温度计、咖啡粉(咖啡豆)、适量热水。 举荐比例咖啡粉量15克、水量225克(粉水比例1:15),工夫2:20±10s,水温85-93℃。 三段式冲煮教程:打湿滤纸:在冲煮前用热水打湿滤纸,能够让滤纸更贴合滤杯,这样能够去除纸味,同时还能温杯子。加入适量咖啡粉:将研磨好的咖啡粉倒入滤杯中。焖蒸萃取:采纳三段式注水,步骤如下: 当然,咖啡豆、研磨水平、水温、水质、水流、萃取工夫,甚至是注水的手法与机会,每一个渺小因素的扭转,对最初的风味都会产生影响,不管哪种风味,一直尝试,能力发现有限可能。 愿每个人都奔波在本人的酷爱里,生存不是白日梦,漂亮的幻想,须要你致力实际能力实现。就像秒云所提倡的企业文化,所有扭转的力量都源自于本人。 **置信过程、承受苦楚 继续学习、放弃怯懦 拥抱未知、内生向上** To see the world,things dangerous to come to. To see behind walls,to draw closer. To find each other and to feel. That is the purpose of life. 开辟视线,冲破艰险, 看见世界,身临其境, 贴近彼此,感触生存, 这就是生存的目标。 更多的秒云“生存梦想家”打算行将开启,敬请期待!

July 12, 2022 · 1 min · jiezi

关于容器:清源-CleanSource-SCA-推出容器镜像扫描功能

云原生时代,随着 Docker、Kubernetes 技术的成熟,容器化成为了时下最火的开发理念。清源(CleanSource) SCA,在提供残缺的 SBOM 输入、精确的安全漏洞扫描和许可证剖析的根底上,新增容器镜像平安扫描性能,以保障用户的容器镜像平安。 清源(CleanSource) SCA,是安势信息研发的一款领有齐全自主知识产权的软件成分剖析工具,可能帮忙企业升高和治理其利用或容器中因应用开源软件和其余第三方代码(软件)引入的平安、品质与许可证合规性危险。 开源治理包含继续监控影响现有应用程序和容器中新的安全漏洞,清源(CleanSource) SCA 能够帮忙应用 Docker(或其余容器)打包与交付部署的团队,确认并验证其容器中应用的开源软件合乎企业的平安与合规策略。 在此次公布的新版本中,清源(CleanSource) SCA 反对以下性能: 扫描对象 反对 Docker 镜像仓库,如 DockerHub、Artifactory、Nexus 等 本地 *.tar 包 反对的包管理器数据库格局:apk、dpkg、rpm 扫描后果 提供精确全面的 SBOM(软件物料清单),辨认 Docker 镜像中开源软件的成分及其危险 扫描形式 上传应用 docker save -o 保留的本地 tar 包 指定镜像的 repository 和 tag,工具主动从 docker 仓库中拉取镜像进行扫描 集成能力 反对 CI(如 Jenkins)集成 部署形式 本地部署 SaaS 借助清源(CleanSource) SCA,用户能够在工作创立页面触发扫描,疾速、精确地获取容器镜像的组件、许可证、破绽等详细信息,并对镜像进行检测与治理,从而保障您的容器镜像平安。 容器化技术容许将应用程序以容器的模式交付、部署并对外提供服务,在为软件开发人员和开发团队带来卓越的敏捷性、可迁移性以及老本优化等泛滥劣势的同时,相比于传统的 VM(Virtual Machine, 虚拟机),容器潜在的平安危险会更高。 2020 年国外某公司披露,在对 Docker Hub 中的 400 万个容器镜像剖析后,发现其中超过一半的容器镜像存在一个或多个高危破绽。即便在 Docker Hub 下载的官网镜像中也经常蕴含了大量的破绽,而开发人员在应用大量开源框架时更会加剧镜像破绽的问题。而现有的平安人员对于 DevOps 流程中的镜像齐全丢失治理能力,并且也无奈像传统的虚拟机扫描去对生产的容器做肯定的平安评估。能够说保障容器镜像平安迫不及待。 作为中国市场当先的软件供应链平安治理工具提供商,安势信息亲密关注中国开源软件供应链的平安,高度重视技术创新,致力于爱护用户代码的平安与合规。 安势信息将在后续的产品迭代更新中继续发力容器平安方向,为用户的容器平安保驾护航。 ...

July 8, 2022 · 1 min · jiezi

关于容器:Introduction-to-Containers-and-Kubernetes

Source: https://learn.ibm.com/course/... 1. Introduction to Containers 1.1 What is a container?A container is an executable unit of software in which application code is packaged, along with its libraries and dependencies, in common ways so that it can be run anywhere, whether on a desktop, on-premises, or in the cloud.To do this, containers take advantage of a form of operating system virtualization in which features of the operating system are leveraged to both isolate processes and control the amount of CPU, memory, and disk storage that those processes have access to. In the case of the Linux kernel, namespaces and cgroups are the operating system primitives that enable this virtualization.Containers first appeared decades ago, but the modern container era began in 2013 with the introduction of Docker. ...

June 28, 2022 · 9 min · jiezi

关于容器:为什么说腾讯云是非专业人士的救星

近十几年,云计算技术的蓬勃发展,带来了有数智能机器的诞生,这所有让咱们是生存变得越来越便当,咱们的生存逐步进入了智能化时代。随着后疫情时代的到来,全球化过程放慢,智能办公、线上办公成为一种潮流,越来越多的企业抉择跟上这个潮流,纷纷转型上云。 与此同时带来的就是对口人才的大量缺失,为了应答这一窘境,各大云计算企业接连推出了人才认证零碎,以求造就足够的人才。这两年,有很多人来我这里报名考试,这其中有很多人士专业人士,领有业余的技术和能力,然而还有一部分人没有学过,他们都会人我一个问题:我素来没学过这个,能考吗? 每当这时我都会给他们一个答案,能够,腾讯云从业者认证,非常适合这类人。 腾讯云从业者认证简介 1、证书名称 腾讯云从业者培训 2、适宜人群 适宜对云技术有趣味并心愿着手理解云技术、云产品原理的人群,比方学生、集体开发者,以及心愿理解腾讯云产品、服务技术劣势的人员,如云解决方案销售人员。 3、考试内容 云计算基础知识--云计算的倒退历史和关键技术、云计算对业务的影响、业界支流云产品以及腾讯云产品概览 云服务器产品解析--产品个性、腾讯云服务器劣势和计费计划 云网络产品解析--产品性能、腾讯云网络产品劣势、应用场景和计费计划云CDN减速产品解析--产品性能、腾讯云CDN产品劣势、应用场景和计费计划云存储产品解析--与传统存储的劣势比照,腾讯云各类云存储应用场景和计费计划云数据库产品解析--产品性能,云数据库与传统数据库的劣势比照,腾讯云各类云数据库产品应用场景和计费计划私有云平安解析--互联网常见平安威逼,腾讯云支流平安产品性能,实用场景,劣势比照和计费计划4、培训指标 理解云计算相干的基本概念,了解云计算对业务的影响; 了解腾讯云提供的根底产品和服务的性能:云服务器,云网络,云CDN; 理解腾讯云提供的根底产品和服务的灵便利用场景; 了解腾讯云提供的根底产品和服务的劣势; 了解腾讯云根底产品和服务的计费形式。 看过简介你会发现,这些内容、常识是绝对于简略、根底的,非常适合没有教训、技术的非专业人士,而且我这里有整顿出的学习视频、原题题库,考试报名费用也比官网便宜得多,如果你有能够私信我。

June 27, 2022 · 1 min · jiezi

关于容器:vivo-容器集群监控系统架构与实践

vivo 互联网服务器团队-YuanPeng一、概述从容器技术的推广以及 Kubernetes成为容器调度治理畛域的事实标准开始,云原生的理念和技术架构体系逐步在生产环境中失去了越来越宽泛的利用实际。在云原生的体系下,面对高度的弹性、动静的利用生命周期治理以及微服务化等特点,传统的监控体系曾经难以应答和撑持,因而新一代云原生监控体系应运而生。 以后,以Prometheus为外围的监控零碎已成为云原生监控畛域的事实标准。Prometheus作为新一代云原生监控零碎,领有弱小的查问能力、便捷的操作、高效的存储以及便捷的配置操作等特点,但任何一个零碎都不是万能的,面对简单多样的生产环境,繁多的Prometheus零碎也无奈满足生产环境的各种监控需要,都须要依据环境的特点来构建适宜的监控办法和体系。 本文以vivo容器集群监控实践经验为根底,探讨了云原生监控体系架构如何构建、遇到的挑战以及相应的对策。 二、云原生监控体系2.1 云原生监控的特色和价值云原生监控相比于传统监控,有其特色和价值,可演绎为下表: 2.2 云原生监控生态简介CNCF生态全景图中监控相干的我的项目如下图(参考https://landscape.cncf.io/),上面重点介绍几个我的项目: Prometheus(已毕业)Prometheus是一个弱小的监控零碎,同时也是一个高效的时序数据库,并且具备残缺的围绕它为外围的监控体系解决方案。单台Prometheus就可能高效的解决大量监控数据,并且具备十分敌对且弱小的PromQL语法,能够用来灵便查问各种监控数据以及告警规定配置。 Prometheus是继Kubernetes之后的第二个CNCF “毕业”我的项目(也是目前监控方向惟一“毕业”的我的项目),开源社区沉闷,在Github上领有近4万Stars。 Prometheus的Pull指标采集形式被宽泛采纳,很多利用都间接实现了基于Prometheus采集规范的metric接口来裸露本身监控指标。即便是没有实现metric接口的利用,大部分在社区里都能找到相应的exporter来间接裸露监控指标。 但Prometheus依然存在一些有余,比方只反对单机部署,Prometheus自带时序库应用的是本地存储,因而存储空间受限于单机磁盘容量,在大数据量存储的状况下,prometheus的历史数据查问性能会有重大瓶颈。因而在大规模生产场景下,繁多prometheus难以存储长期历史数据且不具备高可用能力。 Cortex(孵化中)Cortex对Prometheus进行了扩大,提供多租户形式,并为Prometheus提供了对接长久化存储的能力,反对Prometheus实例程度扩大,以及提供多个Prometheus数据的对立查问入口。 Thanos(孵化中)Thanos通过将Prometheus监控数据存储到对象存储,提供了一种长期历史监控数据存储的低成本解决方案。Thanos通过Querier组件给Prometheus集群提供了全局视图(全局查问),并能将Prometheus的样本数据压缩机制利用到对象存储的历史数据中,还能通过降采样性能晋升大范畴历史数据的查问速度,且不会引起显著的精度损失。 GrafanaGrafana是一个开源的度量剖析与可视化套件,次要在监控畛域用于时序数据的图标自定义和展现,UI非常灵活,有丰盛的插件和弱小的扩大能力,反对多种不同的数据源(Graphite, InfluxDB, OpenTSDB, Prometheus, Elasticsearch, Druid等等)。Grafana还提供可视化的告警定制能力,可能继续的评估告警指标,发送告警告诉。 此外,Grafana社区提供了大量罕用零碎/组件的监控告警面板配置,能够一键在线下载配置,简略便捷。 VictoriaMetricsVictoriaMetrics是一个高性能、经济且可扩大的监控解决方案和时序数据库,能够作为Prometheus的长期近程存储计划,反对PromQL查问,并与Grafana兼容,可用于替换Prometheus作为Grafana的数据源。具备装置配置简略、低内存占用、高压缩比、高性能以及反对程度扩大等个性。 AlertManagerAlertManager是一个告警组件,接管Prometheus发来的告警,通过分组、缄默、克制等策略解决后,通过路由发送给指定的告警接收端。告警能够依照不同的规定发送给不同的接管方,反对多种常见的告警接收端,比方Email,Slack,或通过webhook形式接入企业微信、钉钉等国内IM工具。 2.3 如何搭建一套简略的云原生监控零碎上文理解了云原生监控畛域的常用工具后,该如何搭建一套简略的云原生监控零碎?下图给出了Prometheus社区官网提供的计划: (出处:Prometheus社区) 上述零碎开展论述如下: 所有监控组件都是以云原生的形式部署,即容器化部署、用Kubernetes来对立治理。Prometheus负责指标采集和监控数据存储,并能够通过文件配置或Kubernetes服务发现形式来主动发现采集指标。利用能够通过本身的Metric接口或相应的exporter来让Prometheus拉取监控数据。一些短暂的自定义采集指标,能够通过脚本程序采集并推送给Pushgateway组件,来让Prometheus拉取。Prometheus配置好告警规定,将告警数据发送给Alertmanager,由Alertmanager依照肯定规定策略解决后路由给告警接管方。Grafana配置Prometheus作为数据源,通过PromQL查问监控数据后,做告警面板展现。2.4 如何构建能力凋谢、稳固高效的云原生监控体系上文展现了社区官网给出的监控零碎搭建计划,但该计划在生产环境利用时存在的次要问题: Prometheus单机无奈存储大量长期历史数据;不具备高可用能力;不具备横向扩大能力;短少多维度的监控统计分析能力。那么对于大规模简单生产环境,如何构建能力凋谢、稳固高效的云原生监控体系? 综合vivo本身容器集群监控实践经验、各类云原生监控相干文档以及技术大会上各家厂商的技术架构分享,能够总结出适宜大规模生产场景的云原生监控体系架构,下图展现了体系架构的分层模型。 通过云原生形式部署,底层应用Kubernetes作为对立的管制治理立体。监控层采纳Prometheus集群作为采集计划,Prometheus集群通过开源/自研高可用计划来保障无单点故障以及提供负载平衡能力,监控指标则通过利用/组件的本身Metric API或exporter来裸露。告警数据发给告警组件依照指定规定进行解决,再由webhook转发给公司的告警核心或其余告诉渠道。数据存储层,采纳高可用可扩大的时序数据库计划来存储长期监控数据,同时也用适合的数仓零碎存储一份来做更多维度的监控数据统计分析,为下层做数据分析提供根底。数据分析解决层,能够对监控数据做进一步的剖析解决,提供更多维度的报表,开掘更多有价值的信息,甚至能够利用机器学习等技术实现故障预测、故障自愈等自动化运维目标。 三、vivo容器集群监控架构任何零碎的架构设计肯定是针对生产环境和业务需要的特点,以满足业务需要和高可用为前提,在综合思考技术难度、研发投入和运维老本等综合因素后,设计出最合乎以后场景的架构计划。因而,在详解vivo容器集群监控架构设计之前,须要先介绍下背景: 生产环境vivo目前有多个容器化生产集群,散布在若干机房,目前单集群最大规模在1000~2000节点。 监控需要须要满足生产高可用,监控范畴次要包含容器集群指标、物理机运行指标和容器(业务)指标,其中业务监控告警还须要通过公司的根底监控平台来展现和配置。 告警需要告警须要可视化的配置形式,须要发送给公司的告警核心,并有分级分组等策略规定需要。 数据分析需要有各类丰盛的周、月度、季度统计报表需要。 3.1 监控高可用架构设计联合上文阐明的环境和需要特点,vivo以后监控架构的设计思路: 每个生产集群都有独立的监控节点用于部署监控组件,Prometheus依照采集指标服务划分为多组,每组Prometheus都是双正本部署保障高可用。数据存储采纳VictoriaMetrics,每个机房部署一套VictoriaMetrics集群,同一机房内集群的Prometheus均将监控数据remote-write到VM中,VM配置为多正本存储,保障存储高可用。Grafana对接Mysql集群,Grafana本身做到无状态,实现Grafana多正本部署。Grafana应用VictoriaMetrics作为数据源。通过拨测监控实现Prometheus本身的监控告警,在Prometheus异样时能及时收到告警信息。集群层面的告警应用Grafana的可视化告警配置,通过自研webhook将告警转发给公司告警核心,自研webhook还实现了分级分组等告警解决策略。容器层面(业务)的监控数据则通过自研Adapter转发给Kafka,进而存储到公司根底监控做业务监控展现和告警配置,同时也存储一份到Druid做更多维度的统计报表。 前文介绍了社区的Cortex和Thanos高可用监控计划,这两个计划在业界均有生产级的实践经验,但为什么咱们抉择用Prometheus双正本+VictoriaMetrics的计划? 次要起因有以下几点: Cortex在网上能找到的相干实际文档较少。Thanos须要应用对象存储,理论部署时发现Thanos的配置比较复杂,参数调优可能比拟艰难,另外Thanos须要在Prometheus Pod里部署其SideCar组件,而咱们Prometheus部署采纳的是Operator主动部署形式,嵌入SideCar比拟麻烦。另外,在实测中对Thanos组件进行监控时发现,Thanos因为Compact和传输Prometheus数据存储文件等起因,时常呈现CPU和网络的尖峰。综合思考后认为Thanos的前期保护老本较高,因而没有采纳。VictoriaMetrics部署配置比较简单,有很高的存储、查问和压缩性能,反对数据去重,不依赖内部零碎,只须要通过Prometheus配置remote-write写入监控数据即可,并且与Grafana齐全兼容。既满足咱们长期历史数据存储和高可用需要,同时保护老本很低。从咱们对VictoriaMetrics本身组件的监控察看来看,运行数据安稳,并且自生产应用以来,始终稳固运行无故障。3.2 监控数据转发层组件高可用设计因为Prometheus采纳双正本部署高可用计划,数据存储如何去重是须要设计时就思考的。VictoriaMetrics自身反对存储时去重,因而VictoriaMetrics这一侧的数据去重失去人造解决。但监控数据通过Kafka转发给根底监控平台和OLAP这一侧的去重该如何实现? 咱们设计的计划,如下图,是通过自研Adapter “分组选举”形式实现去重。即每个Prometheus正本对应一组Adapter,两组Adapter之间会进行选主,只有选举为Leader的那组Adapter才会转发数据。通过这种形式既实现了去重,也借用K8s service来反对Adapter的负载平衡。 此外,Adapter具备感知Prometheus故障的能力,当Leader Prometheus产生故障时,Leader Adapter会感知到并主动放弃Leader身份,从而切换到另一组Adapter持续传输数据,确保了“双正本高可用+去重”计划的有效性。 四、 容器监控实际的挑战和对策咱们在容器集群监控实际的过程中,遇到的一些艰难和挑战,总结如下: 五、将来瞻望监控的指标是为了更高效牢靠的运维,精确及时的发现问题。更高的指标是基于监控实现自动化的运维,甚至是智能运维(AIOPS)。 基于目前对容器集群监控的经验总结,将来在监控架构上能够做的晋升点包含: Prometheus自动化分片及采集Target主动负载平衡;AI预测剖析潜在故障;故障自愈;通过数据分析设定适合的告警阈值;优化告警管控策略。没有一种架构设计是一劳永逸的,必须要随着生产环境和需要的变动,以及技术的倒退来继续演进。咱们在云原生监控这条路上,须要持续不忘初心,砥砺前行。

June 20, 2022 · 1 min · jiezi

关于容器:ebook下载-灵雀云发布-企业高管IT战略指南为何选择容器与Kubernetes

“本书将提供企业领导者/IT高管应该理解的,所有对于容器技术和Kubernetes的根底认知和要害概念,冲破技术语言屏障,全面梳理云原生技术架构与利用价值,为企业数字化转型及利用现代化提供无效的实践参考、实际工具。” 发送关键词【高管指南】至灵雀云公众号,立刻下载完整版电子书 企业高管为什么要具备IT战略思维?作为一名企业管理者,过来几年,置信大家都在追赶数字化转型的浪潮,致力融入飞速发展的技术环境。 那么什么是数字化转型?只有企业业务跟IT挂钩,把IT变成业务的一部分,利用IT来构建企业的竞争劣势,才是数字化转型。 正因为IT研发能力将成为企业的外围竞争力之一,因而也对企业高管提出了新的要求——必须具备IT战略思维。 为何数字化转型必然会落到以容器为代表的云原生技术上?IT研发能力正在成为企业的外围竞争力之一。 云原生使企业可能在古代云环境中构建和运行可扩大的应用程序, 更快地翻新,更加敏捷地对市场作出反应。同时,企业能够更加聚焦业务价值的开发,专一构建继续创新能力和抗危险能力,一直夯实本人的护城河。 因而咱们认为,云原生是数字化转型惟一的解决方案,云原生技术的价值,就在于可能帮忙企业疾速实现利用交付,疾速业务翻新迭代。 企业高管为何肯定要理解容器和Kubernetes?以容器、Kubernetes为代表的云原生技术的落地正在宽泛产生。 让咱们看看以下数据: · 2020年IDC披露,50%的财产500强正在采纳Kubernetes零碎进行容器编排; · 2020年CNCF中国云原生调查报告显示,Kubernetes在生产环境的使用率达到72%,寰球这一数字是78%; · 2025年,Gartner 预测85%的企业将全面拥抱Kubernetes; 容器技术和Kubernetes不是陈腐事物,曾经成为技术畛域的相对支流,以容器和Kubernetes为外围的云原生技术也将越来越遍及。过来几年容器和Kubernetes推动了云原生基础设施的重大倒退,Kubernetes成为真正意义上的“云操作系统”。也正因如此,有如此泛滥的企业,开始将容器和Kubernetes作为根底工具,来构建、部署和大规模运行古代利用。 容器可能封装利用并使其可移植;Kubernetes作为容器编排零碎在更高的档次上运行,从而使得在多云环境中运行简单的、大规模的利用成为可能;通过为利用提供对立的部署、治理、扩大和可用性服务,Kubernetes为企业的IT工作发展提供了微小的便当,因而: 企业的开发团队将从中受害,因为他们能够在须要时立刻拜访所需资源,不会呈现提早…… 企业的运维团队也将从中受害,Kubernetes简化了多云操作,并打消了耗时且容易出错的手动工作…… 因为整个IT组织对业务需要响应更快,企业的业务将最终受害。 本书将提供企业领导者/IT高管应该理解的,所有对于容器技术和Kubernetesde的根底认知和要害概念,冲破技术语言屏障,全面梳理云原生技术架构与利用价值,为企业数字化转型及利用现代化提供无效的实践参考、实际工具。 发送关键词【高管指南】至灵雀云公众号,立刻获取完整版《 企业高管IT策略指南—抉择容器与Kubernetes》电子书 灵雀云与云原生技术实际社区联合推出《企业高管IT策略指南》系列ebook,别离从容器与Kubernetes,DevOps,与微服务架构三个框架登程,阐述云原生技术架构与利用效力,解读国内外行业数据及最新落地实际案例,帮忙企业领导者/IT高管疾速理解麻利迭代、降本增效等云原生技术红利。 下期,咱们将公布《企业高管IT策略指南——企业DevOps转型》,敬请期待!

June 16, 2022 · 1 min · jiezi

关于容器:Nydus-下一代容器镜像的探索实践

文|严松(花名:井守 ) Nydus 镜像开源我的项目 Maintainer、蚂蚁团体技术专家 蚂蚁团体基础设施研发,专一云原生镜像与容器运行时生态 本文 7060 字 浏览 15 分钟 |前言|容器镜像是云原生的基础设施之一,作为容器运行时文件系统视图根底,从它诞生到当初,衍生出了镜像构建、存储、散发到运行时的整个镜像生命周期的各种生态。 然而,尽管镜像生态泛滥,但自它诞生以来,镜像设计自身并没有多少改良。这篇文章要探讨的就是对容器镜像将来倒退的一些思考,以及 Nydus 容器镜像的摸索和实际。 读完这篇文章,你可能理解到: - 容器镜像的基本原理,以及它的组成格局; - 目前的镜像设计有哪些问题,应该如何改良; - Nydus 容器镜像做了哪些摸索,以及怎么实际。 PART. 1容器镜像OCI 容器镜像标准容器提供给了利用一个疾速、轻量且有着根本隔离环境的运行时,而镜像提供给了容器 RootFS,也就是容器内能看到的整个 Filesystem 视图,其中至多包含了文件目录树结构、文件元数据以及数据局部。镜像的特点如下: - 易于传输,例如通过网络以 HTTP 的形式从 Registry 上传或下载; - 易于存储,例如能够打包成 Tar Gzip 格局,存储在 Registry 上; - 具备不可变个性,整个镜像有一个惟一 Hash,只有镜像内容发生变化,镜像 Hash 也会被扭转。 晚期的镜像格局是由 Docker 设计的,经验了从 Image Manifest V1[1]、V2 Scheme 1[2]到 V2 Scheme 2[3]的演进。起初呈现了诸如 CoreOS 推出的其余容器运行时后,为了防止竞争和生态凌乱,OCI 标准化社区成立。它定义了容器在运行时、镜像以及散发相干的实现规范,咱们目前用的镜像格局根本都是 OCI 兼容的。 镜像次要是由镜像层和容器配置两大部分组成的。 什么是镜像层? 能够回忆下平时写的 Dockerfile 文件:每条 ADD、COPY、RUN 指令都可能会产生新的镜像层,新层蕴含的是在旧层的根底上,新减少或批改的文件 (蕴含元数据和数据) ,或被删除的文件 (用称之为  Whiteout *[4] 的非凡文件示意删除)* 。 ...

June 14, 2022 · 4 min · jiezi

关于容器:Istio-中实现客户端源-IP-的保持

作者尹烨,腾讯专家工程师, 腾讯云 TCM 产品负责人。在 K8s、Service Mesh 等方面有多年的实践经验。 导语对于很多后端服务业务,咱们都心愿失去客户端源 IP。云上的负载均衡器,比方,腾讯云 CLB 反对将客户端源IP传递到后端服务。但在应用 istio 的时候,因为 istio ingressgateway 以及 sidecar 的存在,后端服务如果须要获取客户端源 IP,特地是四层协定,状况会变得比较复杂。 注释很多业务场景,咱们都心愿失去客户端源 IP。云上负载均衡器,比方,腾讯云 CLB反对将客户端 IP 传递到后端服务。TKE/TCM 也对该能力做了很好的集成。 但在应用 istio 的时候,因为两头链路上,istio ingressgateway 以及 sidecar 的存在,后端服务如果须要获取客户端 IP,特地是四层协定,状况会变得比较复杂。 对于应用服务来说,它只能看到 Envoy 过去的连贯。 一些常见的源 IP 放弃办法先看看一些常见 Loadbalancer/Proxy 的源 IP 放弃办法。咱们的利用协定个别都是四层、或者七层协定。 七层协定的源 IP 放弃七层的客户端源 IP 放弃形式比较简单,最具代表性的是 HTTP 头XFF(X-Forwarded-For),XFF 保留原始客户端的源 IP,并透传到后端,利用能够解析 XFF 头,失去客户端的源 IP。常见的七层代理组件,比方 Nginx、Haproxy,包含 Envoy 都反对该性能。 四层协定的源 IP 放弃DNATIPVS/iptables都反对 DNAT,客户端通过 VIP 拜访 LB,申请报文达到 LB 时,LB 依据连贯调度算法抉择一个后端 Server,将报文的指标地址 VIP 改写成选定 Server 的地址,报文的指标端口改写成选定 Server 的相应端口,最初将批改后的报文发送给选出的 Server。因为 LB 在转发报文时,没有批改报文的源 IP,所以,后端 Server 能够看到客户端的源 IP。 ...

June 8, 2022 · 7 min · jiezi

关于容器:Getting-Started-with-minikube

本文作者:Daniel Hu | 胡涛"GitHub 地址: https://www.danielhu.cn What’s up guys, this is Daniel! Yeah, this English blog is WRITTEN by me, not TRANSLATED by me! It’s my first English blog in my whole life. If you are a Chinese reader, maybe you’ve ever seen my Chinese blogs before. Right, I wrote a lot of blogs, but only in Chinese. Believe it or not, English isn’t my strong suit. But I want to have a try today and I’ll do my best. Let’s get started. ...

May 30, 2022 · 9 min · jiezi

关于容器:minikube-结合阿里云镜像搭建本地开发测试环境

作者:HaoKe 作者地址: http://github.com/KeHaohaoke 我的共事写了一篇英文的博客,对于如何应用 minikube 搭建本地的 k8s 环境的。 我很喜爱这篇文章,链接在这里:minikube-k8s。 该文章和本文并不是一对一的翻译的。有各自不同的角度去讲述,倡议你去浏览一下该篇文章,会有不一样的播种。 相干背景: 在日常开发测试中,咱们验证和k8s无关的性能的时候,并不需要生产环境规格的k8s集群。 比方(3 master+3 node),这种规格的集群,咱们集体个别不具备这种配置,也没有必要为了本地测试开发的验证而去专门搭建这样的集群(除非有非凡须要)。 本文则介绍一种利用 minikube 来搭建 k8s 本地开发测试环境的办法。本文是在 MacOS 并且是 Intel 芯片的机器上进行装置 minikube 的。 并且在装置中,指定了阿里云镜像,毋庸进行特地的上网形式的设置,不会有 gcr.io 下载慢或者无奈下载而必须应用一些非凡的上网设置办法的问题。且因为镜像在国内,下载速度也很快。 概要:本文讲述了在 MacOS Intel 机器上: 应用 minikube 别离以 vmware 作为 driver 和应用 docker 作为 driver 来装置 one node 的 k8s。 minikube 装置筹备工欲善其事,必先利其器。咱们先来下载 minikube: shellbrew install minikube如果你的 Mac 上没有装置 brew,请参考:Homebrew官网进行装置。接下来,咱们还要下载 kubectl: shellbrew install kubectl在 MacOS(intel 芯片)上,minikube 反对多种不同的 driver: DockerVirtualBoxVMWare FusionHyperKit接下来,咱们会采纳两种装置形式:一种应用 VM: Vmware Fusion, 另外还有 Docker 两种形式来进行。 ...

May 30, 2022 · 2 min · jiezi

关于容器:浅述容器和容器镜像的区别

笔者写过的和 Docker 容器技术的一些其余系列文章: Docker 实战教程之从入门到进步 (一)Docker 实战教程之从入门到进步 (二)Docker 实战教程之从入门到进步 (三)Docker 实战教程之从入门到进步 (四)Docker 实战教程之从入门到进步 (五)Docker 实战教程之从入门到进步 (六)Docker 实战教程之从入门到进步 (七)Docker 实战教程之从入门到进步 (八)Docker 技术三大要点:cgroup, namespace 和 unionFS, 从实践到实际在咱们探讨容器和容器镜像的区别之前,对于容器技术的初学者来说,有必要先去理解,为什么从事云原生开发须要学习容器技术? 随着企业数字化过程的不断深入倒退,云原生技术成为业界一个煊赫一时的话题。所谓云原生,以容器、微服务、DevOps 等技术为根底,提供对利用进行分布式部署和对立治理的平台和体系。云原生是一系列思维和工具的汇合。从其概念定义可看出,容器技术是云原生的基石。在云原生畛域工作的开发人员,如果不理解和把握容器技术,好比试图在浮沙堤上建筑高楼大厦个别。 什么是容器在介绍为什么咱们须要容器之前,请大家先回顾一下本人的第一个 Hello World 程序的诞生史。在咱们费尽含辛茹苦,解决各种本地开发工具配置(编译器,环境变量等等)的问题之后,终于看到了 Hello World 的输入,那份喜悦之情显而易见,但咱们也绝不会遗记在遇到各种各样的环境配置问题时的丧气和无助。笔者在基于本地部署(On-Premises)的企业级管理软件畛域工作十余年,遇到过一些同样版本的应用程序,在开发机和测试机上可能失常运行,部署到生产环境之后呈现故障的辣手问题,最初通过排查,这些问题都是因为运行环境的差别所导致。而容器技术作为一种轻量级、可移植和自蕴含的软件打包技术,使应用程序能够在简直任何中央以雷同的形式运行。采纳容器技术,开发人员在本人本地开发环境创立并测试好的容器,无需任何批改就可能在生产零碎的虚拟机、物理服务器或私有云主机上运行,从而可能彻底防止软件因为运行环境的差别而可能呈现的各种运行问题。初学者了解容器技术,能够从容器一词的字面含意动手。设想一下现实生活中的集装箱。咱们要把一批货物从一个中央运输到另一个中央,只须要把货物依照标准规定打包放入集装箱内,集装箱与集装箱之间不会相互影响,集装箱也并不关怀箱内到底装的是水果,衣物还是电子产品,所以这些货物的打包形式都遵循标准化规定。这些集装箱打包好之后,能够用通用的运输工具,比方汽车和货轮等进行运输。到了目的地之后,再用标准化的形式关上集装箱,取出外面的货物即可应用。 很多刚刚接触容器技术的敌人,不容易弄清楚容器,容器镜像和 Docker 这几个词的区别和分割。 咱们首先来看容器和容器镜像。举个例子,执行命令行 docker search nginx,搜寻后果的一条条记录就是一个个容器镜像。 所谓镜像,就是一个动态概念,一个镜像由若干只读层(read-only layer)形成。 上图右边是 Docker 镜像的外部实现细节,咱们能看到多个只读层叠加在一起,层与层之间通过指针关联,这些层可能在运行 Docker 的宿主机的文件系统上拜访到。Linux 的对立文件系统(union file system)技术将这些叠加的只读层合并成一个文件系统,该零碎为这些只读层提供了一个对立的视角,从而为 Docker 的用户暗藏了多层的存在。 从 Docker 用户的视角登程,一个 Docker 镜像只存在一个文件系统,即上图左边所示。这些文件系统的设计是 Docker 实现细节,个别状况下咱们不必去深究。但如果您足够好奇,应用命令 sudo tree 浏览目录 /var/lib/docker 即可: ...

May 12, 2022 · 1 min · jiezi

关于容器:SOFAServerless-体系助力业务极速研发

文|赵真灵(花名:有济)蚂蚁团体技术专家 刘晶(花名:飞廉) 蚂蚁团体技术专家以下内容整顿自 SOFAStack 周围年的分享SOFAServerelss 研发运维平台是蚂蚁团体随着业务倒退、研发运维的复杂性和老本一直减少的状况下,为帮忙利用又快又稳地迭代而研发。从细化研发运维粒度和屏蔽基础设施的角度登程,演进出的一套解决方案。 外围形式是通过类隔离和热部署技术,将利用从代码构造和开发者阵型拆分为两个档次:业务模块和基座,基座为业务模块提供计算环境并屏蔽基础设施,模块开发者不感知机器、容量等基础设施,专一于业务研发帮忙业务疾速向前倒退。 背 景以后 Serverless 的倒退有两个演进方向,一个是从面向函数计算的架构往在线利用演进,另一种是面向在线利用的架构往类函数计算方向演进。 SOFAServerless 体系抉择了后者,是从面向利用研发运维过程中遇到的一些问题开展的。在利用架构畛域,不可避免的问题是利用随着业务的复杂度一直减少,研发运维的过程中的问题会一直裸露进去。 首先咱们先看一下对于一般利用,研发和运维过程中的流程是什么样的? 如图所示,从需要到设计、开发、线下测试,再到公布线上的研发运维一直反馈、循环迭代的过程。能够简化为开发同学提交代码到代码仓库,在线下做并行的验证测试,测试通过之后在线上公布,公布过程是串行的,只可能有一个公布窗口,这样的过程在利用体量业务还不太简单的状况下问题,并不是很显著。 但当业务复杂度一直减少,一般利用迭代过程在会呈现一些新的问题,如下图: 治理老本高:需要治理、代码治理、人员治理工夫老本高:线上验证与公布相互阻塞;单次启动慢变更危险高:一次变更波及所有代码; 一次变更波及所有机器可扩展性不够另外,因为这些问题是因为多业务单元与研发工作耦合在某些单点上导致的,这些研发运维的老本随着业务的复杂度,呈现出指数增长的特点。 SOFAServerless 研发运维体系解决方案介绍对于这些问题,业界曾经倒退并演进出了多种利用架构,从单体架构 -> 垂直架构 -> SOA 架构 -> 散布式微服务架构 -> 服务网格架构等,咱们剖析这些演进过程为解决遇到的研发运维问题提出 SOFAServerless 研发运维体系,次要的外围思路是: 1.研发运维力度的细化通过细化的形式,让多人合作之间不相互 block;迭代的范畴变小,速度变快。 2.屏蔽基础设施屏蔽基础设施,让业务开发同学只关注代码服务和流量。 对于这两点,咱们采纳了 SOFAArk ClassLoader 类隔离和热部署能力,将利用拆分成基座和模块。 基座和模块 从这张图外面能够看到咱们拆分的状态,把一个一般的 JVM 利用拆出多个模块,进一步对模块进行了一些分工:基座和模块,对应的研发人员也分为基座开发者和模块开发者。 基座积淀通用的逻辑,为模块提供计算和环境,并会模块开发者屏蔽基础设施,让模块开发者不须要关怀容量、资源、环境。各个模块是独立的代码仓库,能够进行独立的研发运维,这样研发运维粒度失去细化,并且因为基座为模块屏蔽了环境与基础设施,模块开发者能够专一业务开发,进步整体效率。 如何共享和通信 利用如果只是做拆分,没有共享和通信能力是不残缺的计划也难以解决理论问题。对于共享和通信,基座作为共享的一层,能帮模块预热 RPC 数据库缓存通用类、通用办法、通用逻辑,能够供装置一些模块去复用。这样模块实现得比拟轻,所以模块的部署密度也能够做得很高。 对于模块通信,以后模块之间的通信能够反对任意的通信形式,比如说基座调模块、模块调基座模块和模块之间调用。因为模块通信是 JVM 内跨 ClassLoader 调用,与一般 JVM 内办法调用减少了序列化与反序列化的开销,目前这部分开销曾经优化到约等于 JVM 外部的办法调用。 在这一能力建设之后,能够较大升高模块的接入革新老本并扩充可实用的业务范围。 如何解决业务痛点治理老本 相较于原来的研发模式,研发人员拆分成不同小组,代码仓库也拆分出多个模块仓库,并且能够独立并行公布到线上,整个 pipelien 都能够做到独立进行。 如此一来,需要治理、代码治理、人员治理的老本就失去降落了,线上公布过程中也不会再有相互阻塞的问题存在。 ...

May 12, 2022 · 2 min · jiezi

关于容器:秒云助力上海金融信息技术应用创新联合攻关基地正式上线信创容器云平台

以后,新一轮科技反动和产业改革呈群体性冲破态势,产业倒退蕴藏着大量颠覆性翻新机会。同时,各国围绕要害核心技术的竞争日趋激烈,而要害核心技术是国之重器,决定着一个国家的产业竞争力和国家平安。 全栈信创,是在外围芯片、根底硬件、操作系统、中间件、数据服务器等畛域实现国产代替。信创产业是数据安全、网络安全的根底,也是“新基建”的重要内容,将成为拉动经济倒退的重要抓手之一。传统的IT架构或者云架构,个别依照芯片的架构来划分不同的资源池,治理艰难、运维简单,X86和非X86资源池无奈对立治理与经营,利用开发商国产化基础设施适配艰难,面临多种架构的信创产品适配效率低,短少对立的信创资源服务平台,妨碍了国产化利用的翻新倒退。 为了鼎力推动政府、国防、金融、交通等要害畛域的信息化产品尽快实现国产化代替,近日,上海市金融信息技术利用翻新联合攻关基地容器云平台正式上线,通过虚拟化和容器技术,为金融畛域的企业和用户提供容器云计算资源,为用户对立提供多场景的云主机根底运行环境和容器环境。 2019年9月,在上海市经信委、上海推动科技翻新核心建设办公室和上海市松江区的大力支持下,电科数字建成了上海市金融信息技术利用翻新联合攻关基地及相干实验室,并在此基础上与金融信创生态实验室建设起良好单干关系。上海实验室坐落于松江区电科数字金融云基地,领有1300平米场合和基于申威、鲲鹏、海光、龙芯、飞腾、兆芯及x86七个支流处理器平台的软硬件适配验证评估环境,设施完备水平在上海名列前茅,“一云七芯”金融信创试验云平台国内首创,经理论运行能够满足银行、保险、证券等用户发展适配验证的性能、性能与平安方面多重需要。 秒云作为金融信创攻关基地信创云体系中的对外提供服务的次要伎俩之一,将进一步推动金融业要害信息安全基础设施建设的攻关和翻新,建设行业标准与标准,打造一系列满足金融行业需要的平安可控体系技术解决方案。 秒云自主研发的“一云多芯”的独特创新性解决方案,同时反对不同架构的CPU芯片的混合部署,充分发挥不同体系架构CPU的能力劣势,满足客户细分场景对异构基础设施的理论需要,通过云基础设施屏蔽异构芯片的底层差别,实现异构CPU 资源对立池化、对立治理,最大化撑持各场景的信创金融云解决方案的落地。 秒云最大化爱护客户投资和建设的灵活性,客户的设施选型无硬性要求,可逐次批量洽购各种不同芯片架构的服务器平台,最终构建最为匹配用户业务需要,性能最佳的信创解决方案,升高繁多路线洽购危险。 秒云反对一个平台交融信创云和非信创云,对立治理、对立编排、对立调度,当业务运行在信创云环境呈现不稳固隐患时,实时动静切换到非信创云,在用户无感知的状况下实现业务的平滑切换,最大化升高用户国产化过程中的业务中断危险,最大化保障信创云基础设施的稳定性、可靠性、高性能。 金融信创攻关基地系统集成我的项目搭载秒云实现最宽泛适配自主可控服务器的信创容器云平台,多种国产化操作系统,为宽广适配用户服务。搭载麒麟、统信2款国产化操作系统和飞腾、龙芯、鲲鹏、海光、兆芯、申威以及规范x86共7种类型CPU,构建7+2一云多芯平台,为客户提供适配、迁徙、优化、测评的环境和服务。 秒云一套源码、一条流水线,在不同架构容器集群中运行流水线造成不同架构容器镜像,不同架构业务利用提供同一个服务,通过负载平衡设施实现跨集群流量散发,升高了企业云原生国产化技术门槛,满足X86与非X86架构利用并存,逐渐实现业务国产化替换,最终兼顾多种架构,实现多种架构利用并存。 秒云信创生态秒云始终非常重视国产化工作,2021年6月8日,在上海市经信委领导的金融信创及申威生态研讨会上,秒云作为联盟成员受邀缺席大会并发表展现了对于秒云技术在信创生态的摸索与利用实际。会上,秒云具体讲述了秒云在信创生态的摸索与实际,并展现了秒云在信创生态的研究成果与案例积攒。 申威始终踊跃布局软硬件生态建设,并联结业内优良企业成立了产业联盟,现领有成员单位100余家,波及芯片、硬件、软件、整机零碎各个环节。上海华诚金锐信息技术有限公司是中国电科团体惟一受权发展申威服务器产业化的整机厂商,负责中国电科申威服务器研发设计、生产制作、销售交付,是自主可控申威产业链的外围中坚力量,是中国电科申威服务器产业化的具体承担者和执行者。 秒云致力于打造国产化平台平安生态,外围产品与国内支流的国产化平台、操作系统、重点利用厂家实现了互相认证,从而帮忙信创生态企业用户解决运维难题,让IT运维更简略。通过退出申威产业联盟成员,秒云将来也将增强与联盟内相干企业在技术、产品、市场等多方面严密单干,围绕申威处理器产品产业化与生态建设携手共进。 秒云携手华诚金锐,独特打造基于申威芯片的信创容器云平台,独特实现1+1>2的效应。 随着IT国产化和网络信息安全建设步调的放慢,以及云计算、大数据等前沿利用的遍及与交融,企事业单位将所属业务搬上了云端,数字化、智能化成了趋势。然而业务上云部署难、运维老本低等因素给云平台的稳固运行带来诸多挑战。 目前,秒云自主研发产品曾经与4家国产芯片厂商、4家国产操作系统厂商、5家硬件服务器厂商实现兼容认证。 4家国产芯片厂商兼容认证 秒云曾经反对海光、兆芯、飞腾、鲲鹏等不同架构的国产处理器,且是国内惟一反对申威6B处理器的容器云平台; 4家国产操作系统厂商认证 秒云反对中标麒麟、河汉麒麟、统信UOS、深度零碎等国产操作系统; 5家国产服务器硬件兼容认证 秒云反对华为泰山、中科曙光、中科可控、长城、华诚金锐等国产服务器;

May 9, 2022 · 1 min · jiezi

关于容器:容器内的Linux诊断工具0xtools

原创:扣钉日记(微信公众号ID:codelogs),欢送分享,转载请保留出处。简介Linux上有大量的问题诊断工具,如perf、bcc等,但这些诊断工具,尽管功能强大,但却须要很高的权限才能够应用。 而0x.tools这个工具提供了一个很好的思路,通过采样/proc目录来诊断问题,对被测量程序简直无性能影响,且只有与指标过程领有同等级的权限,即可失常应用。 不要小看这个权限区别,在互联网大厂,开发同学个别只能获取到一个受限于容器内的shell环境,想要获取机器的root权限简直是不可能的。 装置# 下载源码$ git clone https://github.com/tanelpoder/0xtools.git# 装置编译器$ yum install -y make gcc# 编译并安装程序$ make && make install实际上0x.tools里的工具大多数是脚本,如psn工具是python脚本,因而间接将代码clone下来,而后执行bin/psn也是能够的。 psn工具psn工具用来观测零碎中以后沉闷的线程正在做什么,如线程在做什么零碎调用、写什么文件、阻塞在哪个内核函数下? 查看沉闷线程[tanel@linux01 ~]$ psnLinux Process Snapper v0.18 by Tanel Poder [https://0x.tools]Sampling /proc/stat for 5 seconds... finished.=== Active Threads ================================================ samples | avg_threads | comm | state ------------------------------------------------------------------- 10628 | 3542.67 | (kworker/*:*) | Disk (Uninterruptible) 37 | 12.33 | (oracle_*_l) | Running (ON CPU) 17 | 5.67 | (oracle_*_l) | Disk (Uninterruptible) 2 | 0.67 | (xcapture) | Running (ON CPU) 1 | 0.33 | (ora_lg*_xe) | Disk (Uninterruptible) 1 | 0.33 | (ora_lgwr_lin*) | Disk (Uninterruptible) 1 | 0.33 | (ora_lgwr_lin*c) | Disk (Uninterruptible) samples: 3 (expected: 100)total processes: 10470, threads: 11530runtime: 6.13, measure time: 6.03如上,默认状况下,psn采样/proc目录下每个线程的/proc/$pid/stat文件,采样5秒钟,将R(正在运行)或D(不可中断休眠)状态的线程的数据记录下来,并做汇总。 ...

May 7, 2022 · 5 min · jiezi

关于容器:Kindling为你的云原生系统打一剂疫苗

2020年初暴发的新冠疫情至今已有两年多,一时间人们谈疫色变,更可怕的是仍然没有完结的迹象,而且近期还呈现了反弹。两年多的工夫里,寰球上亿人被感化,更有几百万人被夺去了生命,这是产生在医学技术如此发达的古代社会,面对看起来如此渺小的病毒,人类仍然是大刀阔斧。将来,新冠病毒大概率是会跟流感病毒一样长期与人类共存,那么如何能力更平安地与新冠病毒共存就是个很重要的问题了。 张文宏医生说凑合新冠病毒有三大武器:①疫苗的充沛注射;②无效的抗病毒药物;③短缺的医疗资源。疫苗是预防,药物和医疗资源是医治。疫苗是排在第一位的,可见疫苗对于疾病防治的重要性。世界上被人类毁灭的第一个病毒--天花病毒,就是通过疫苗毁灭的。当初新生儿出世时都须要强制接种几种疫苗,以升高当前被感化的危险,但接种的疫苗是无限的,而病毒的品种却是繁多的,如果有一种疫苗,能够防治或升高被所有已知病毒感染的危险,对咱们来说无疑是件幸事。但这时候兴许你又会放心疫苗的安全性,一旦疫苗被证实是平安的,你应该很乐意接种吧。 既然疫苗如此重要,那在面对云原生畛域盘根错节的环境以及随时可能产生故障危险的状况下,是否很渴望有这样的“疫苗”呢? 开源我的项目KINDLING就致力于成为这样的“疫苗”。KINDLING是一款基于eBPF内核技术的云原生可观测性开源工具,不仅能够无侵入地采集所有内核数据,而且是低损耗并且语言无关的,能够实用于任何云原生零碎,相当于能够接种于任何人体的疫苗。不论多简单的零碎,任何类型的故障,通过KINDLING都能够疾速定界问题。 一方面,KINDLING的子项目--太空舱(https://github.com/Kindling-p...)(https://github.com/Kindling-p...)能够模仿目前已知的云原生系统故障,让大家对故障有个直观的意识。家喻户晓,疫苗的原理是先将灭活病毒注入体内,从而诱发免疫系统产生应激反应,产生抗体,这样在蒙受真正病毒入侵时,免疫系统就能够疾速毁灭病毒,防止身材被病毒破坏。而太空舱我的项目通过模仿各种故障,让大家能够针对故障提前准备应急预案(相当于有了抗体)。(太空舱我的项目介绍可阅读文章《太空舱我的项目--云原生故障模拟器》(https://segmentfault.com/a/11...));另一方面,KINDLING对于太空舱模拟出的故障都能够标准化疾速定界,从而升高故障的影响,也让大家对排障流程有个直观的意识。通过太空舱模仿故障,配合KINDLING的疾速定界能力,这样当真正产生故障时,就能够疾速复原,从而升高故障带来的影响,缩小损失。 KINDLING仍然在一直演进和欠缺中,十分欢送大家一起参加进来,不断完善这个我的项目,让KINDLING真正成为云原生畛域的“全能疫苗”。 KINDLING我的项目地址:KINDLING 在云可观测性方面有任何疑难欢送与咱们分割: 分割咱们 关注咱们 

April 28, 2022 · 1 min · jiezi

关于容器:解读华为云桌面究竟有何厉害之处

随着云计算的疾速倒退和政企业务迅速扩张,办公数字化转型呈现了新趋势,自主翻新和云化正在改变传统办公形式。基于手机和PAD的挪动轻办公逐步风行,挪动办公和固定办公场景相互交融。 传统的办公模式,企业洽购台式机、笔记本电脑等硬件终端,存在一次性老本高、洽购交付周期长、多地办公运维繁琐、数据安全无奈保障等问题。近年来,政企对办公场景提出了新的诉求,也始终在摸索办公桌面的新计划和数字化办公新入口。虚构桌面基础设施VDI在肯定水平上满足了企业挪动办公、平安办公的诉求,但仍存在终端类型少、初期投入及运维老本低等问题,随着公司业务扩大,部署及运维会越来越简单。 现在,近程办公、视频会议、跨PC+挪动办公利用、数据共享、在线教育、在线医疗、在线政务等业务高速倒退,进一步推动办公进入云上数字化时代。由此,华为云全新云原生桌面服务,华为云桌面Workspace应运而生,成为企业现代化办公的首选。因为它不仅满足企业挪动办公和平安办公的诉求,更是具备云计算的先天劣势,灵便的部署和极简的运维,并且反对多种终端接入,便捷调用云上办公服务,从而满足多场景的办公须要。它将彻底突破传统办公模式的枷锁,升高企业整体老本(TCO),让用户“拎包入住”。 部署资源疾速灵便企业应用传统电脑办公,一次性购买老本高,软硬件更新换代快,配置降级/变更繁琐,个别2-3年就会面临淘汰危险。华为云桌面是华为云上的SaaS化办公桌面服务,即买即用,可依据需要灵便申请和调整桌面的CPU、内存、磁盘等规格,分钟级部署。 运维治理简略高效用户的资源、权限、运维对立治理,从线下扩散运维变为云端对立运维,问题响应速度和效率晋升,大大降低运维工作量。通过标准化模板反对用户操作系统、业务利用的统一化、标准化,实现IT办公平台的归一化治理。 全方位防护数据安全病毒攻打、信息泄露、非法拜访、数据监听等办公平安问题简直是所有企业的困扰,尤其在近程办公已成为刚需。华为云桌面具备接入终端、传输管道、云平台三大环节平安机制,10项要害措施,实现数据不落地、行为可追溯、过程可审计,躲避企业办公中的各类数据安全危险。同时,通过多重强管控的安全策略,如显式/隐式桌面水印、外设管控、文件传输管控等,大幅缩小信息泄露和安全隐患。 挪动协同自在办公不受限于办公地点和设施,员工可随时随地一键中转办公空间。利用响应不依赖于终端的解决能力,而是间接利用云端桌面服务器的优越性能,大幅晋升利用处理速度和用户体验。通过华为云笼罩寰球的网络,在丢包<5%的不稳固状况下,仍可保障晦涩办公体验。 极致高清晦涩体验电商、游戏、工业仿真、服装设计等行业对办公终端的显色真实度有很高的要求。通过华为HDP高清传输协定(HUAWEI Delivery Protocol),华为云桌面可能为用户带来高清视觉享受下的晦涩办公体验,保障YUV444真彩无损显示、业余10bit色深柔滑细腻、4K/60帧高动静场景晦涩。 作为基于华为云云原生架构设计和构建,生于云、长于云的云桌面服务,华为云桌面可能便捷地调用云上的各种服务,实现配置动静变更、资源程度扩大、在线继续演进等能力,助力政企打造便捷、平安、低保护老本、高服务效率的云上办公零碎。华为云桌面是一个通用办公型云桌面,反对多种配置抉择,满足各类办公需要。华为云桌面不仅本身“硬”,而且通过“平台+生态”的模式,以凋谢的API&SDK,反对行业搭档进行标准化集成,疾速实现行业利用上云,为用户提供一站式行业办公桌面,更好地满足不同用户的个性化需要。

April 26, 2022 · 1 min · jiezi

关于容器:共建开源生态秒云加入开源GitOps产业联盟

近日,秒云(成都元来云志科技有限公司)正式退出「开源 GitOps 产业联盟」(Open GitOps Industry Alliance,简称:OGA联盟),并胜利入选《开源GitOps产业联盟生态图景》的“云计算——云原生”细分畛域。将来,秒云将携手其余联盟成员,一起推广GitOps技术落地、反对GitOps产业化倒退,为国内开源生态系统注入翻新能源。图:开源GitOps产业联盟会员证书 图:开源GitOps产业联盟生态图景1.0 OGA 联盟由极狐(GitLab)与云原生计算基金会(CNCF) 联结发动并成立,由GitOps技术行业标杆用户、服务商及专家被迫结成的全国性的非营利社会组织。 联盟聚焦GitOps、IaC、GitSecOps、CI/CD、云原生等前沿开源技术、方法论和理念,关注国内外各行业企业建设开源GitOps体系的胜利案例,为企业在数字化转型过程中的垂直行业场景建设以开源翻新技术为外围的开放平台。 秒云是国内首家专一于云原生运维的公司,自主研发的秒云·云原生智能运维中台,内置云原生容器治理底座,针对云原生利用进行构建、编排、部署、观测、治理等全生命周期交付治理,疾速、平安、牢靠的落地云原生利用。 一键即可部署及纳管Kubernetes,按需“插拔”的近 30+扩大性能组件,分钟级构建,通过算法中台、数据中台、可视化中台、利用中台、治理中台,零代码轻松定制各种运维场景,蕴含数据分析模型、图表、告警、全景视图、界面菜单……都可通过全图形化形式零代码按需定制,让运维人员具象化、清晰地看到以后零碎的状态,从而升高教训门槛和不确定性。 秒云一体化的解决了云原生环境设备适配、多集群、多云等问题, 在K8s生态成为企业云原生零碎常态化的时代,帮忙企业对立治理、智能运维、疾速构建扩散的云原生零碎环境,晋升多个云原生对立管理性、易用性和可观测性。让运维和研发可能更专一于交付和治理企业本身利用,帮忙企业“一秒入云、一键智维”。 此外,秒云还针对中国企业进行了深度定制,全面适配信创体系,反对国产化设施和x86“一云七芯”混合部署场景。自成立以来,凭借过硬的产品实力,已胜利利用于电力、运营商、教育、金融、工业制作、政府、公安等多个行业标杆企业。 此次退出OGA联盟,秒云将联合本身云原生技术,从“产”、“学”、“研”、“用” 全方位参加构建具备国内竞争力的开源生态,减速开源技术在中国的自主翻新倒退与落地实际。 对于秒云 MiaoYun秒云(成都元来云志科技有限公司)于2019年成立, 是国内首家专一于云原生运维的公司,总部位于成都,在西安、上海、北京、南京别离设有研发核心和营销中心。秒云产品定位于云原生一体化智能管运平台,最大化升高企业在云原生环境上的运维投入,让企业可能更专一于本身利用的开发和交付。 秒云一体化的解决了云原生环境设备适配、多集群、多云等问题,让企业各分支环境也能够轻松对立运维!在K8s生态成为企业云原生零碎常态化的时代,帮忙企业对立治理、智能运维、疾速构建扩散的云原生零碎环境,晋升多个云原生对立管理性、易用性和可观测性。 秒云针对中国企业进行了深度定制,全面适配信创体系,反对国产化设施和x86 “一云七芯”的混合部署场景。自成立以来,凭借过硬的产品实力,已胜利利用于电力、运营商、教育、金融、工业制作、政府、公安等多个行业标杆企业。

April 15, 2022 · 1 min · jiezi

关于容器:DevSecOps邂逅云原生云原生时代下的持续安全

文章首发于:前线Zone社区 作者:李祥乾 我明天次要分享云原生时代下的DevSecOps,分享一下咱们客户在云原生时代下的继续平安实际。 大略摘要: 平安可能对于很多业务开发与运维来说,是“麻烦”与“被动”。相比传统,云原生架构具备了一系列个性,使平安可能更低摩擦地内生于企业流程之中,内生于DevOps之中。心愿与大家探讨的是,在云原生架构下,在继续减速的业务迭代和CI/CD中,如何实际继续平安(Continous Security)。我目前在探真科技,咱们是一家做云原生平安的公司,是个To B的企业,我之前工作经验次要是互联网工作经验,波及的畛域是IT平安、业务平安,也做过一段时间的基础架构。 我的大略内容分为四个局部: 01:新的云原生,新的危险 02:平安落地的难处 03:云原生下的零摩擦实际 04:继续平安,做一个小结 首先新的云原生,新的危险。 首先云原生架构自身的特点,这外面列的几点,有些是来自于社区外面的一些分享,有些是咱们认为比拟重要的。 第一点标准化,标准化是一个十分重要的特点,对甲方乙方都很重要,传统的架构下各个公司的DevSecOps流程或者说开发和运维流程,概念上都差不多,然而具体到施行和实现上就千差万别。 然而新的云原生时代,其实Kubernetes或docker等围绕着Kubernetes这样一个社区,这部分的流程曾经造成了比拟好的标准化,所有的企业都须要去做构建镜像,须要镜像存储,须要CI/CD,须要Kubernetes或者是Kubernetes衍生的一些商业化版本,相干的运维操作其实也在API层面和概念层面都实现了标准化,这样有十分好的益处,就是社区外面的一些其余企业十分好的实际,都可能比拟的摩擦的、比拟疾速的,在咱们本人的流程和环境外面去做试验、落地,不像之前须要一些特地多的适配老本、金融老本。 自云原生社区成熟以来,Kubernetes这样的容器编排软件成熟以来,像AiOps这样的概念才真正的发达起来,对于咱们这种做企业服务的公司来说,咱们的一些平安能力和平安服务可能相对来说比拟低成本的在不同的企业做可复制性的计划。 不可变基础架构,咱们认为对平安来说也是一个十分重要的特点,对平安能力真正落地是一个比拟好的根底。 微服务化和继续交付,非常容易了解。 Operator化是社区外面比拟有名的张磊老师在他的分享外面提到的,Operator化的模式是K8S的一个重要的模式,是一种自定义资源和扩大K8S的一种十分重要的形式,也是实现很多扩大性能的一个重要的根底。 云原生下其实存在的平安危险是涵盖了传统架构下的平安危险,诸如WebShell、病毒、木马、反弹Shell,这些问题在新的架构下依然存在,相同云原生的指标外围指标是降本提效,因为降本提效就是更快的集成和交付带来的危险、供应链的危险,破绽危险的管制老本其实是加倍晋升的,因为单位工夫内交付的镜像,交付的新服务的速率都变大了,管制这些危险会与交付速度之间存在的抵触也会加强,因为原来大家都慢,多花点工夫解决问题,这些问题也不是什么问题。 云原生架构下次要基于容器的更灵便的隔离技术、容器网络这种软件定义网络,在物理层面下面减少了一层更灵便的虚拟化技术。其实这种虚拟化技术自身,比传统的虚拟机的隔离,它存在逃逸或者提权的危险会变得更大,像docker,runc包含k8s都暴露出了很多容器逃逸的破绽。 最近有一个比拟新的破绽,是用Linux的一些机制去逃逸Linux NameSpace来实现逃逸,也是最近比拟新的破绽,在这种隔离机制下,很多传统平安计划和能力是无奈失效的,比如说传统的网络防火墙,在容器网络下其实pod的迁徙是很频繁的,同时他的IP是动态分配的,传统基于IP的一些策略统统都会生效。更简单的代码必定会带来更多的bug,破绽就是这些外围组件的缺破绽和缺点的危险也大幅晋升了。 最初一个问题就是微服务化后,服务的数量,还有这些服务之间的调用关系的复杂度是呈几何比例去晋升的,对于安全策略的治理,平安运维老本,如何感知这些流量和变动,存在着微小的挑战。 从典型的DevOps流程看危险 ,比如说代码仓库层面,代码自身可能就会蕴含很多敏感的数据,比如说数据库明码,密钥,业务本人写的代码会存在破绽和bug,可能会被攻击者利用。 当开发人员开始测试环境测试的时候,从Jenkins或者gitlab ci这样的CI/CD工具外面会去拉取代码,去做构建镜像。一些蕴含着病毒和木马的镜像可能会在这个阶段就被推送到仓库。 仓库外面存储的所有沉闷的镜像,这些沉闷的镜像可能有几万个,甚至十几万个镜像,而后镜像可能还蕴含着几十万个破绽,这种破绽的治理老本对于平安和业务来说还是很高的,这么多破绽不大可能全修复了,老本太高,然而优先修复哪个就是问题? 接下来开发可能会通过多轮的代码提交、镜像测试,而后在测试环境外面做部署,做联调;而后交给QA验收之后,这个镜像会被mirror到网络隔离的另一个环境,比方生产环境的仓库,而后再去做部署交付。 在这个镜像的散发流程中,还存在一个危险,就是镜像可能会被篡改,可能会被替换掉。相当于是我可能在CI/CD阶段或者仓库阶段扫描,扫描认为他是个平安镜像,然而这个平安镜像在接下来的散发流程外面被篡改了,篡改之后的镜像可能会引入危险,然而相当于之前的措施就生效了。 在部署交付阶段,这个镜像也可能会被居心叵测的人去替换掉,比如说节点镜像的缓存就是一个可能被脱漏的点,就存在着肯定的危险镜像流入线上的一种可能性。在镜像的运行过程中,这些镜像破绽可能会被攻击者利用,这些破绽的攻打是否被检测到和治理,这方面也是平安须要解决的问题。 其实这种灵活性,减速的CI/CD,减速的迭代为平安带来的并不是只有懊恼。 如果从辩证的角度看这种灵活性,减速的业务迭代,是减速了继续集成和继续交付。 然而平安的经营和安全策略也须要去减速迭代。 平安须要实现更加灵便和深刻对危险和对集群资产的感知能力。 平安须要利用数据和机器学习来升高平安经营老本,进步经营效率。其实就是为平安人员缩小重复性的配置,进步他们的平安经营效率,让平安人员继续的关注在最须要关注的平安问题上。 平安须要更加灵便的策略执行和迭代 ,把固化的代码逻辑外面的策略变成数据、变成规定,这样的话数据是可继续迭代更新的,而后就可能蹭个热度,就是“低代码”。 咱们心愿的云原生平安,更心愿他的解释是云上的原生平安,而不是原生环境下的一个平安,就是Security in Cloud Native 。 第二局部是在平安的具体落地中和咱们在落地实际中遇到的一些相对来说比拟艰难的中央,平安落地难处在哪? 从业务视角来看,首先的观点可能是平安会让DevOps变慢。比如说零信赖须要去频繁的做健全、去做审批,比如说在Google的BeyondCorp这样的计划,整个落地耗时了六到七年。其余的企业对零信赖的认知可能还参差不齐,这个落地难度其实还是很高,或者说零信赖到底要不要落地? 对微隔离来说,微服务这么多,网络策略配置是很简单的,一旦少配一个,漏配一个,就可能会造成业务上的损失,而后他带来的报警也是很多,这个在咱们跟客户的落地实际中也是咱们遇到的问题。咱们在和Tigera做技术交换的时候,他们也提到,企业版的微隔离在企业从开始落地到根本实现一个闭环均匀工夫也差不对须要半年多,这其实是一个比拟大的老本。 镜像平安,我认为可能是更广泛,更容易了解的例子。镜像必定是很多,破绽必定比镜像多的更多,修复也修复不过去,扫描可能也比较慢。 你可能还会发现很多破绽是没法修复的,尽管他可能是高危破绽,然而官网还没有公布修复的补丁。 平安团队可能发现的问题,然而他们不肯定能帮忙业务开发和运维解决问题。 这个是咱们在一个金融客户外面的例子,在初期的扫描外面,他们沉闷的镜像规模在14000多左右,然而蕴含高危和重大破绽的镜像至多在一半以上,甚至到了百分之七十、八十。 也有用开源扫描器扫描过破绽,然而除了高危破绽有能力推动过几次,推动整体平安基线晋升是比拟艰难的。服务太多,镜像太多,收益不显性,边际老本越来越高。 相比于业务迭代的需要中,平安的需要必定不能override业务迭代需要,企业的外围能源还是业务的迭代,平安其实是管制业务的危险。 我感觉平安有两种逻辑: 一种是基于事中与预先的反抗与博弈逻辑。产生安全事件,须要紧急响应或者突发破绽的时候, 比如说去年的Log4j这种时候,平安人须要跟攻击者,或者说潜在的危险去做继续的反抗和博弈。 这种肯定水平上说是“擦屁股”,呈现问题了要去遏制危险,预先我要通过复盘去防止的危险。他的外围逻辑其实是危险管制,平安永远没法毁灭危险,绝对危险可能老本会很高。对于攻击者来说它也存在老本,这个最终我认为是老本的反抗,就是平安团队须要通过正当的老本去将危险管制到肯定水平下,在这个水平下攻击者须要付出,可能他不违心接受老本去取得一些利益,而后达到这个均衡之后,是这种反抗和博弈逻辑所谋求的一个指标。 另一种是基于事先和以ROI为核心的预防逻辑,就是Return On Investment,看中的其实是投入产出比,当企业产生过几次平安危险之后,企业必定会器重这种平安防护体系,包含这种纵深进攻的建设,去做流程平安,晋升整个企业的平安水位线。 ...

March 28, 2022 · 1 min · jiezi

关于容器:谷歌云对象存储攻防

文章首发于:前线Zone社区 本文次要介绍谷歌云对象存储攻防的形式。 01存储桶配置谬误-公开拜访 当创立的存储桶配置了allUsers领有GCS对象的读取权限时,该存储桶能够被任何用户公开拜访。 02Bucket爆破当不存在时拜访会提醒NoSuchBucket。 当存在时会出在上面状况,公开拜访和回绝拜访。 03Bucket Object 遍历当对allUsers配置了Storage Object Viewer 或者Storage Legacy Bucket Reader权限时就会将存储桶内容遍历进去并且能够读文件内容。 04任意文件上传和笼罩当存储桶配置了allUsers领有 Storage Legacy Bucket Owner、Storage Object Admin或者Storage Legacy Bucket Writer 权限时,任何用户都能够上传任意文件到存储桶并笼罩曾经存在的文件。 05SERVICE ACCOUNT透露Github代码中泄露网站JS代码 06Bucket IAM 策略可写 拜访权限管制为对立时,对象拜访权限齐全由存储桶级权限 (IAM) 进行管制。 间接拜访存储桶发现AccessDenied。 查看Bucket IAM策略。 上图标识局部示意所有的谷歌认证用户都有权有权获取和设置任意 IAM 策略,通过gsutil去批改IAM策略。 再次去拜访存储桶 07Object ACL可写 拜访存储桶对象时提醒AccessDenied 当拜访权限管制为精密管制时,查看Object ACL,发现所有谷歌认证用户都能批改Object ACL。 gsutil acl ch -u allUsers:R gs://new2_test/1.txt 批改ACL后任何用户都能够拜访。 ...

March 28, 2022 · 1 min · jiezi

关于容器:巧用对象存储回源绕过SSRF限制

文章首发于:前线Zone云平安社区 作者:KEVIL 0x01 前言笔者之前在Web破绽开掘指南 -SSRF服务器端申请伪造介绍了SSRF某些场景下的利用和绕过办法,有时开发对于SSRF的限度可能是简略的禁用内网地址来实现的,这时如果传入一个外网地址,将其重定向至内网地址,则能够绕过限度对内网服务器发出请求。 302跳转bypass常见的办法有: 自建服务器,当收到指标服务器的申请后增加一个Location响应头重定向至内网服务器,Tips中有提到过:https://zone.huoxian.cn/d/392线上平台生成短链接: 下面两种形式都有其弊病,前者须要间接搭建服务器环境,老本较高,后者在线平台生成的短链接个别都有工夫限度,在钻研对象存储时,笔者发现利用对象存储的动态网站托管及回源规定进行重定向也是一种可行的方法。 0x02 动态网站托管及回源配置动态网站托管性能容许用户将动态网站托管到OSS的存储空间(Bucket),并应用Bucket的拜访域名拜访这个网站。Bucket配置动态网站托管后,当客户端向OSS申请的数据不存在时,可通过设置回源规定确保其依然能够获取正确的数据。 在控制台进行图形化配置过程: 创立一个存储桶 开明私有读权限: 进入Bucket列表,在左侧导航栏,抉择根底设置 > 动态页面。进行如下配置: 在左侧导航栏,抉择根底设置 > 镜像回源。 创立如下回源规定,回源地址即须要重定向的内网地址(如果显示固定地址不能为空,可抓包批改或者输出空格即可创立胜利)。 拜访存储桶对外拜访的链接,随后便跳转至http://127.0.0.1/index.html

March 28, 2022 · 1 min · jiezi

关于容器:CSI-工作原理与JuiceFS-CSI-Driver-的架构设计详解

容器存储接口(Container Storage Interface)简称 CSI,CSI 建设了行业标准接口的标准,借助 CSI 容器编排零碎(CO)能够将任意存储系统裸露给本人的容器工作负载。JuiceFS CSI Driver 通过实现 CSI 接口使得 Kubernetes 上的利用能够通过 PVC(PersistentVolumeClaim)应用 JuiceFS。本文将具体介绍 CSI 的工作原理以及 JuiceFS CSI Driver 的架构设计。 CSI 的根本组件CSI 的 cloud providers 有两种类型,一种为 in-tree 类型,一种为 out-of-tree 类型。前者是指运行在 K8s 外围组件外部的存储插件;后者是指独立在 K8s 组件之外运行的存储插件。本文次要介绍 out-of-tree 类型的插件。 out-of-tree 类型的插件次要是通过 gRPC 接口跟 K8s 组件交互,并且 K8s 提供了大量的 SideCar 组件来配合 CSI 插件实现丰盛的性能。对于 out-of-tree 类型的插件来说,所用到的组件分为 SideCar 组件和第三方须要实现的插件。 SideCar 组件external-attacher监听 VolumeAttachment 对象,并调用 CSI driver Controller 服务的 ControllerPublishVolume 和 ControllerUnpublishVolume 接口,用来将 volume 附着到 node 上,或从 node 上删除。 ...

March 22, 2022 · 8 min · jiezi

关于容器:Gartner-发布中国IaaS-PaaS市场服务报告天翼云强势入选

近日,在Gartner 公布的 《Market Guide for Cloud Infrastructure and Platform Services, China》报告中,中国电信天翼云凭借突出的自主研发能力胜利入围,彰显出天翼云在IaaS+PaaS等云服务畛域的翻新实力。 据Gartner预测,截止2024 年底,中国用户在根底零碎和软件方面的收入将会有近 40% 的份额转向云服务。目前,我国私有云市场继续保持高速增长态势,各大经营厂商纷纷开始布局以IaaS+PaaS市场为主的私有云市场。其中,天翼云凭借本身云网交融劣势,一直降级网络架构,晋升本身竞争力,提前进行资源部署,目前已在各大云服务商中占据领先地位。本次入选Gartner中国IaaS + PaaS 服务市场指南,标记着天翼云的 IaaS 和 PaaS 产品能力曾经达到行业领先水平。 早在2017年,天翼云就建成了“2+31+X”云网交融资源布局。此外,天翼云还踊跃翻新研发布局,在云网交融根底上,打造天翼云大数据平台和AI开放平台,为客户提供云、网、数、智、安一体化解决方案,聚焦智慧城市、数字政府、工业制作、物流、金融、教育、交通等行业,为各行各业的数字化转型提供全方位的撑持和服务,帮忙更多企业实现数字化转型。目前,天翼云已名列国内混合云市场第一、寰球私有云IaaS市场份额排名第七,在全球电信运营商中排名第一。 在新基建浪潮之下,各大云服务商将继续施展云计算翻新技术和服务能力,为企业提供多种解决方案并进行翻新延展,减速企业上云步调,助推全行业驶入云时代快车道。

March 21, 2022 · 1 min · jiezi

关于容器:Containerd-入门基础操作

Containerd 被 Docker、Kubernetes  CRI 和其余一些我的项目应用 Containerd 旨在轻松嵌入到更大的零碎中。Docker 在后盾应用 containerd来运行容器。Kubernetes 能够通过 CRI 应用 containerd来治理单个节点上的容器。 生成默认配置 root@hello:~# containerd config default > /etc/containerd/config.tomlroot@hello:~# vim /etc/containerd/config.toml root@hello:~# cat /etc/containerd/config.tomlversion = 2root = "/var/lib/containerd"state = "/run/containerd"plugin_dir = ""disabled_plugins = []required_plugins = []oom_score = 0[grpc] address = "/run/containerd/containerd.sock" tcp_address = "" tcp_tls_cert = "" tcp_tls_key = "" uid = 0 gid = 0 max_recv_message_size = 16777216 max_send_message_size = 16777216[ttrpc] address = "" uid = 0 gid = 0[debug] address = "" uid = 0 gid = 0 level = ""[metrics] address = "" grpc_histogram = false[cgroup] path = ""[timeouts] "io.containerd.timeout.shim.cleanup" = "5s" "io.containerd.timeout.shim.load" = "5s" "io.containerd.timeout.shim.shutdown" = "3s" "io.containerd.timeout.task.state" = "2s"[plugins] [plugins."io.containerd.gc.v1.scheduler"] pause_threshold = 0.02 deletion_threshold = 0 mutation_threshold = 100 schedule_delay = "0s" startup_delay = "100ms" [plugins."io.containerd.grpc.v1.cri"] disable_tcp_service = true stream_server_address = "127.0.0.1" stream_server_port = "0" stream_idle_timeout = "4h0m0s" enable_selinux = false selinux_category_range = 1024 sandbox_image = "k8s.gcr.io/pause:3.2" stats_collect_period = 10 systemd_cgroup = false enable_tls_streaming = false max_container_log_line_size = 16384 disable_cgroup = false disable_apparmor = false restrict_oom_score_adj = false max_concurrent_downloads = 3 disable_proc_mount = false unset_seccomp_profile = "" tolerate_missing_hugetlb_controller = true disable_hugetlb_controller = true ignore_image_defined_volumes = false [plugins."io.containerd.grpc.v1.cri".containerd] snapshotter = "overlayfs" default_runtime_name = "runc" no_pivot = false disable_snapshot_annotations = true discard_unpacked_layers = false [plugins."io.containerd.grpc.v1.cri".containerd.default_runtime] runtime_type = "" runtime_engine = "" runtime_root = "" privileged_without_host_devices = false base_runtime_spec = "" [plugins."io.containerd.grpc.v1.cri".containerd.untrusted_workload_runtime] runtime_type = "" runtime_engine = "" runtime_root = "" privileged_without_host_devices = false base_runtime_spec = "" [plugins."io.containerd.grpc.v1.cri".containerd.runtimes] [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] runtime_type = "io.containerd.runc.v2" runtime_engine = "" runtime_root = "" privileged_without_host_devices = false base_runtime_spec = "" [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] [plugins."io.containerd.grpc.v1.cri".cni] bin_dir = "/opt/cni/bin" conf_dir = "/etc/cni/net.d" max_conf_num = 1 conf_template = "" [plugins."io.containerd.grpc.v1.cri".registry] [plugins."io.containerd.grpc.v1.cri".registry.mirrors] [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"] endpoint = ["https://registry-1.docker.io"] [plugins."io.containerd.grpc.v1.cri".image_decryption] key_model = "" [plugins."io.containerd.grpc.v1.cri".x509_key_pair_streaming] tls_cert_file = "" tls_key_file = "" [plugins."io.containerd.internal.v1.opt"] path = "/opt/containerd" [plugins."io.containerd.internal.v1.restart"] interval = "10s" [plugins."io.containerd.metadata.v1.bolt"] content_sharing_policy = "shared" [plugins."io.containerd.monitor.v1.cgroups"] no_prometheus = false [plugins."io.containerd.runtime.v1.linux"] shim = "containerd-shim" runtime = "runc" runtime_root = "" no_shim = false shim_debug = false [plugins."io.containerd.runtime.v2.task"] platforms = ["linux/amd64"] [plugins."io.containerd.service.v1.diff-service"] default = ["walking"] [plugins."io.containerd.snapshotter.v1.devmapper"] root_path = "" pool_name = "" base_image_size = "" async_remove = falseroot@hello:~# 配置镜像加速器 ...

March 21, 2022 · 6 min · jiezi

关于容器:天翼云成为首个加入openGauss社区的运营商云

近日,中国电信天翼云签订CLA(Contribution License Agreement, 奉献许可协定),正式退出openGauss 社区。 作为首个退出openGauss社区的运营商云,天翼云将通过交融社区资源,打造优质数据库产品生态链,实现各行业要害场景对数据库高牢靠、高性能、高平安的外围诉求,丰盛外围业务OLTP数据库生态。 openGauss是一款开源关系型数据库管理系统,内核源自PostgreSQL,深度交融华为在数据库畛域多年的教训,联合企业级场景需要,继续构建竞争力个性和打造高平安、高牢靠、高性能的企业级开源关系型数据库。 家喻户晓,天翼云位列寰球运营商云第一、中国混合云第一,身居中国政务云以及医疗云的领导者象限,已建成超过550个数据中心,250个CDN节点、315个云资源池,在云计算畛域领有不凡的影响力。天翼云为用户提供云主机、云存储、云备份、桌面云、专享云、混合云、CDN、大数据等全线产品,同时为医疗、教育、金融等行业打造定制化云解决方案,是各企业客户的首选云服务商。天翼云还为“互联网+”在各行业落地以及“公众守业、万众翻新”提供松软牢靠的承载。 数字化时代,信息爆炸产生宏大数据量,对这些数据的剖析则催生出海量的利用场景。依附弱小的计算能力,实现精准的数据分析,是反对各行各业实现数字化转型的根底方法和牢靠根据,数据库系统必将在这个过程中施展越来越大的效用。<

March 21, 2022 · 1 min · jiezi

关于容器:公有云市场百舸争流天翼云稳居第一梯队进入领导者象限

近日,计世资讯公布《2019-2020年中国私有云市场倒退情况钻研报告》,对私有云市场倒退现状以及将来趋势进行具体解读。以后,我国私有云市场正在迅猛发展,挑战者不断涌现,马太效应加剧,已造成以阿里云、腾讯云、天翼云等为首的一超多强格局,天翼云作为国内私有云市场巨头之一,胜利跻身领导者象限。 我国私有云市场继续保持高速增长态势,次要以提供基础设施服务(IaaS)为主。IaaS市场占据私有云市场份额超一半以上,参与者泛滥,市场格局已根本稳固。2019年,阿里云、腾讯云、天翼云、AWS云(中国)四大巨头共占据云市场超70%的份额,市场集中度在继续晋升,头部厂商市场份额在一直扩张。 随着互联网企业、电信运营商、局部IDC等经营厂商纷纷开始布局私有云市场,竞争更加充沛,马太效应显著,以IaaS+PaaS市场为主的私有云市场次要集中在市场Top4服务商中。2019年,天翼云作为四大云服务商之一,凭借本身的云网交融劣势,一直降级网络架构,晋升本身竞争力,曾经由挑战者象限进入领导者象限。 这与天翼云适应发展趋势,一直深入云网交融,增强科技自研相干。多年来,天翼云继续投入云网基础设施建设,一直夯实云网交融根底,造成了“2+4+31+X”云网边整体资源池布局,同时基于云网交融的数字化平台和开发生态,逐渐实现一体化云网基础设施、云网产品和云网经营体系。此外,天翼云正在踊跃翻新研发布局,在云网交融根底上,打造天翼云大数据平台和AI开放平台,为客户提供网、云、数、智、安一体化解决方案,进一步增强私有云、公有云、混合云和专属云的综合解决方案和定制服务,通过覆盖全国的属地化集成和开发团队,高效满足客户各类定制开发和交付需要。 将来,“AI+云”、云网交融、政企数字化转型等将成为私有云行业重要驱动因素。新基建浪潮之下,云计算市场风起云涌,天翼云身处这片数字化新蓝海中,在不断完善技术设施建设和服务的同时,还将进一步深入落实“5G+云+AI”策略,减速新型技术自主翻新研发,以更加凋谢的心态,踊跃寻求生态合作伙伴,助力政企减速实现数字化转型,全面推动数字经济蓬勃发展。

March 21, 2022 · 1 min · jiezi

关于容器:AHPA开启-Kubernetes-弹性预测之门

简介:阿里巴巴云原生团队和阿里达摩院决策智能时序团队合作开发 AHPA 弹性预测产品,该产品次要出发点是基于检测到的周期做“定时布局”,通过布局实现提前扩容的目标,在保障业务稳固的状况下,让你真正实现按需应用。作者:元毅、子白 导读在云原生容器时代,用户须要面对不同的业务场景:周期性的业务,Serverless 按需应用等。在应用主动弹性中, 会发现这样或那样的问题,其中最须要关注的是弹性滞后、冷启动问题。阿里巴巴云原生团队和阿里达摩院决策智能时序团队合作开发 AHPA 弹性预测产品,该产品次要出发点是基于检测到的周期做“定时布局”,通过布局实现提前扩容的目标,在保障业务稳固的状况下,让你真正实现按需应用。 背景用户对云弹性能力的冀望越来越高,这个冀望次要来自两方面。一是云原生概念的崛起,从 VM 时代到了容器时代,云的应用模式正在发生变化。二是新型业务模式的崛起,这些崛起的新型业务模式在设计之初就是基于云来建构的,人造就有对弹性的诉求。 有了云,用户不再须要本人从物理机、机房搭建基础设施,云给用户提供了十分弹性的基础设施。云的最大劣势就是能够给用户提供弹性的资源供应,特地是到了云原生时代,用户对弹性的诉求也越来越强烈。弹性需要强度在 VM 时代还是人工操作分钟级别的,在容器时代,曾经达到秒级的要求,用户面对不同的业务场景,对云的冀望和要求也正在发生变化: 周期性的业务场景:新型业务比方直播、在线教育和游戏,这些业务有一个很大的共同点就是有非常明显的周期性,这种周期性促使客户思考面向弹性的业务架构。再加上云原生的理念很天然的就想到按需弹起一批服务起来,用完就开释。 Serverless 的到来:Serverless 的核心理念是按需应用,主动弹性。用户不须要容量布局。但当你真正开始应用 Serverless 的时候,会发现这样或那样的问题,其中最须要关注的是弹性滞后、冷启动问题。对于响应时延敏感的业务,这是不可承受的。 那么面对下面的场景,以后 Kubernetes 中现有的弹性计划是否能够解呢? 传统弹性计划面临的问题个别在 Kubernetes 中治理利用实例数有三种形式:固定实例数、HPA 和 CronHPA 。应用最多的是固定实例数,固定实例数最大的问题就是在业务波谷时造成很显著的资源节约。为了解决资源节约的问题所以有了 HPA,但 HPA 的弹性触发是滞后的,这就导致资源的供应也会滞后,资源不能及时供应可能会导致业务稳定性降落。CronHPA 能够定时伸缩,看起来能够解决弹性滞后的问题,但具体定时粒度有多细、业务量有变动时须要频繁地手动调节定时弹性策略吗?如果这样做,这就会带来十分沉重的运维复杂度,也很容易出错。 AHPA 弹性预测AHPA(Advanced Horizontal Pod Autoscaler)弹性预测次要出发点是基于检测到的周期做“定时布局”,通过布局实现提前扩容的目标。但既然是布局就会有疏漏,所以须要对布局的实例数有一个实时调整的能力。所以本计划有两个弹性策略:被动预测和被动预测。被动预测基于达摩院 RobustPeriod 算法[1] 辨认周期长度而后利用RobustSTL 算法[2] 提起出周期性趋势,被动预测下个周期利用的实例数量;被动预测基于利用实时数据设定实例数量,能够很好的应答突发流量。此外,AHPA 还减少了兜底爱护策略,用户能够设置实例数量的上下界。AHPA 算法中最终失效的实例数是被动预测、被动预测及兜底策略中的最大值。 架构 弹性首先是要在业务稳固的状况下进行的,弹性伸缩的外围目标不仅是帮用户节省成本,更是加强业务的整体稳定性、免运维能力和构建外围竞争力。AHPA 架构设计的根本准则: 稳定性:保障用户服务稳固的状况下进行弹性伸缩 免运维:不给用户减少额定的运维累赘,包含:不在用户侧减少新的 Controller、Autoscaler 配置语义比 HPA 更清晰 面向 Serverless:以利用为核心,面向利用维度的设计,用户无需关怀实例个数的配置,按需应用、主动弹性。 架构如下: 丰盛的数据指标:反对包含 CPU、Memory、QPS、RT 以及内部指标等稳定性保障:AHPA 的弹性逻辑基于被动预热、被动兜底的策略,并联合降级爱护,保障了资源稳固。被动预测:依据历史预测出将来一段时间的趋势后果,实用于周期性的利用。 被动预测:实时预测。针对突发流量场景,通过被动预测实时筹备资源。 降级爱护:反对配置多个工夫区间范畴最大、最小实例。 多种伸缩形式:AHPA 反对伸缩形式包含 Knative、HPA 以及 Deployment:Knative:解决 Serverless 利用场景下,基于并发数/QPS/RT 弹性冷启动的问题 ...

March 14, 2022 · 2 min · jiezi

关于容器:天翼云SDWAN斩获首批SDWAN-20-SASE权威认证

近日,在中国通信标准化协会算网交融产业及规范推动委员会(TC621)的领导下,中国信息通信研究院算网交融团队颁布了第一批次SD-WAN Ready 2.0测试评估后果。此次测评基于《软件定义广域网络(SD-WAN)2.0 测试方法:SASE解决方案》、《软件定义广域网络(SD-WAN)2.0 测试方法:SASE服务》等规范,对天翼云自研SD-WAN进行了严格的测试。天翼云顺利通过了“SD-WAN Ready 2.0 SASE解决方案、SASE服务”两个模块的权威测试,成为首个通过该认证的云服务商,标记着天翼云SD-WAN在SASE、零信赖等多个方面的端到端解决方案、产品性能实现和服务能力全面对齐权威规范,达到业界领先水平。 云服务和网络技术的一直变革,全面推动着我国数字化转型,企业纷纷拥抱数字业务。而在此过程中,传统SD-WAN技术架构已无奈应答诸多新型挑战,其技术倒退逐渐迈入交融零信赖、SASE等平安技术以及IPv6等因素的2.0阶段。SD-WAN 2.0 作为云网交融畛域的翻新利用模式对产业数字化转型起到关键作用。 在此基础上,SD-WAN 2.0的规范体系“SD-WAN Ready 2.0”应运而生,它涵盖了多个维度的技术要求,其中包含总体技术要求、平安技术要求(要害安全设备、利用计划、零信赖、SASE)、服务质量要求、交融IPv6等。作为业界最早提出“云网交融”理念的电信运营商,以及建设网络强国和数字中国、保护网信平安的国家队主力军,中国电信踊跃适应寰球数字经济发展趋势,全面实施“云改数转”策略。天翼云SD-WAN正是在这样的背景下,将云网交融、平安可控作为职责使命,以打造云端交融安全策略、提供SASE平安防护为指标,鼎力推动科技翻新,为用户提供灵活多样、交融便捷、品质体验、安全可靠的综合服务。云网交融方面,天翼云SD-WAN针对企业分支互联、专线入云、混合云组网等场景业务需要,反对站点与云之间多点随选,并为用户提供高品质和高可靠性的转发能力;同时,天翼云凭借资源池平安增值服务,交融多厂家网元平安能力,打造了随选、弹性、牢靠的SASE平安服务,实现流量对立调度,DPI流量剖析后果采集、流量镜像、流控能力等,从接入到利用,实现端到端的平安网络连接。在治理和部署层面,用户无需自建管控平台,节省成本的同时,进步部署效率。天翼云SD-WAN为用户提供可视化治理界面,可能实现全网链路状态对立监控,做到近程一键开局和疾速上线、业务配置灵便下发。为了帮忙企业将网络的控制权集中管理起来,并缩短部署周期,天翼云SD-WAN领有着灵便的接入形式,反对企业各分支采纳Internet、专线、4\5G挪动网络等,能疾速搭建企业专网。与此同时,通过与天翼云深度集成,还可满足用户一键上云、多云互联、应用云内增值业务的需要,实现 “云+网+利用”的对立管控,助力企业云化降级。同时,依靠中国电信优质的骨干资源,天翼云SD-WAN通过智能选路性能保障业务的最优门路转发,确保业务的高传输品质和灵便调度。以后,天翼云SD-WAN凭借一站式云网交融、细粒度平安管控、可视化对立调度、灵便的接入形式、高牢靠业务传输的五大劣势在多个场景失去广泛应用。多分支互联场景,用户可通过部署天翼云SD-WAN自研终端,实现多点业务疾速开明,带宽按需调整,组网灵便调整,造成全网拓扑可视化监控。并能实现终端设备即插即用,为企业疾速搭建高性价比的专网通道。专线入云场景,为企业用户实现一步上云,满足各站点分支拜访云内公有利用,借助SD-WAN的疾速入云能力,可依靠天翼云为企业用户提供从IaaS到PaaS的立体化增值服务,实现从网络用户向云用户的转化。多云互联场景,通过编排器对现有SD-WAN、云间高速、云专线进行整合,构建对立管制面,为用户提供混合云、异构云、跨云灾备等场景的疾速部署及一体化管控需要,同时反对多厂商云业务接入,建设凋谢交融的云网生态。5G接入场景,天翼云SD-WAN自研终端反对5G接入能力,可实现5G高速率传输及大带宽保障,同时与有线链路造成牢靠备份机制,晋升网络稳健性。始终以来,天翼云SD-WAN宽泛服务于教育、医疗、政府、金融、互联网、能源、工业、批发等行业,为用户提供稳固牢靠、高速平安的网络接入环境,助力各行各业的信息化降级和“新基建”智慧转型。将来,天翼云将全情投入到SD-WAN产业生态的全面建设和倒退中来,继续精进,一直晋升,更好地为用户提供高效麻利的业务管控能力。同时,天翼云心愿更多产业链上下游的相干企业退出到“SD-WAN Ready”的基准测试中来,独特推动SD-WAN产业成熟落地,共建SD-WAN凋谢生态。

March 8, 2022 · 1 min · jiezi

关于容器:Docker-入门二三种进入-Docker-容器的方法

1. 应用 attach 命令连贯容器docker attach [容器名] 或者 [容器ID]attach 命令有如下毛病:1.1 当你从多个终端同时应用 attach 命令连贯到同一个容器后,多个终端显示的操作是同步的。也就是说你从A终端操作什么命令,在B终端也显示一样的命令和后果。同理,你在某个终端针对该容器的某个操作阻塞了或者异样了,那么其余的终端也同样不可操作了。1.2 在 attach 的连贯形式下应用 exit 退出容器后,该容器也会终止运行。 2. 应用 nsenter 命令连贯容器应用该命令连贯容器,用 exit 命令退出容器后,容器不会终止运行。2.1 nsenter 命令蕴含在 util-linux 外面,所以应用之前要先装置。 yum install -y util-linux2.2 应用 nsenter 命令连贯容器,须要获取容器的 PID。能够应用 inspect 命令获取容器的详情: docker inspect [容器名]或者[容器ID]获取 docker 的第一个过程的 PID: docker inspect --format "{{.State.Pid}}" mycentos通过该 PID 连贯容器: nsenter --target [容器第一个过程的PID] --mount --uts --ipc --net --pid写一个连贯容器的脚本,命名为 docker_login.sh,脚本内容如下: #!/bin/bash#此脚本用来登录任意容器。应用办法:./docker_login [容器名]或者[容器ID]docker_in(){ NAME_ID=$1 PID=$(docker inspect --format "{{.State.Pid}}" $NAME_ID) #nsenter --target $PID --mount --uts --ipc --net --pid nsenter --target $PID --mount --uts --ipc --net --pid /bin/bash #nsenter --target $PID --mount --uts --ipc --net --pid /bin/bash 2>/dev/null #nsenter --target $PID --mount --uts --ipc --net --pid /bin/bash >/dev/null 2>&1 #nsenter --target $PID --mount --uts --ipc --net --pid /bin/bash >/dev/null 2>&1 & if (test $? -ne 0) then nsenter --target $PID --mount --uts --ipc --net --pid /bin/sh fi}docker_in $13. 应用 exec 命令连贯容器docker exec -it [容器名] /bin/bash应用该命令连贯容器,exit 退出后容器依然持续运行。 ...

March 7, 2022 · 1 min · jiezi

关于容器:国内唯一阿里云容器服务进入-Forrester-领导者象限

简介:近日,国内权威咨询机构 Forrester 公布《 The Forrester WaveTM: Public Cloud Container Platforms, Q1 2022 》报告,报告显示,阿里云进入寰球公共云容器平台"领导者"象限,这是中国云计算厂商首次进入该象限。 作者:ACK 近日,国内权威咨询机构 Forrester 公布《 The Forrester WaveTM: Public Cloud Container Platforms, Q1 2022 》报告,报告显示,阿里云进入寰球公共云容器平台"领导者"象限,这是中国云计算厂商首次进入该象限。 图1 阿里云进入寰球 Forrester 2022 Q1公共云容器平台"领导者"象限 (图片起源:TheForresterWave™:PublicCloudContainerPlatforms,Q12022查看报告全文:https://reurl.cc/3jYNVl) Forrester 是寰球最权威的 IT 征询评测机构之一,针对本次入选的 8 家国内最重要的容器平台服务商,从产品、策略、市场体现三个维度,14 个规范 29 项评估细则进行了深入研究剖析和评分,评测规范审慎严苛。 当先的超大规模容器服务实际,减速千行百业拥抱云原生阿里巴巴技术架构的云原生演进已历经 15 年。自 2011 年起,阿里巴巴开始推动团体利用容器化落地,以解决其外围业务老本和运维效率的问题。凭借超过十年的容器技术储备和实战经验,阿里云容器服务领有对超大集群的撑持能力,并在国内率先实现了单集群 1 万节点 1 百万 Pod 的规模冲破,可帮忙企业轻松应答一直减少的规模化需要。 2020 年的双 11,阿里团体就实现 100% 利用云原生化,电商微服务、中间件等利用,以及搜寻、大数据、 AI 业务全副运行在对立的容器平台根底之上,1 小时内扩大超百万容器,任务调度效率达每秒 2 万个,大促成本升高 50%,规模化利用交付效率晋升了 100%。在宽泛撑持团体利用云原生化的同时,阿里云容器服务也为云上上万企业实现现代化利用革新降级提供服务,帮忙包含互联网到批发、金融、制作、交通等在内的越来越多行业,利用云原生技术减速翻新。 图2 阿里云云原实际历程 Forrester 报告评估: ...

February 28, 2022 · 1 min · jiezi

关于容器:PHP中最低级别的错误类型总结

deprecated是最低级别的谬误,示意“不举荐,不倡议”。比方PHP5中应用的ereg系列的正则匹配函数就会报此类谬误。这种谬误个别因为应用不举荐的、过期的函数或语法造成的。其虽不影响PHP失常流程,但个别状况下倡议修改。其次是notice。这种谬误个别是语法中存在不当的中央。如应用变量然而未定义就会报此错。最常见的是在数组索引是字符时没有加引号,PHP就视为一个常量,先查找常量表,找不到再视为变量。尽管PHP是脚本语言,语法要求不严,然而依然倡议对变量进行初始化。这种谬误不影响PHP失常流程。warning是级别比拟高的谬误,在语法中呈现很不失当的状况时才会报此谬误,比方函数参数不匹配。这种级别的谬误会导致得不到预期后果,须要批改代码。更高级别的谬误是fetal error。这是致命谬误,间接导致PHP过程终结,前面的代码不再执行。这种问题非改不可高级别的谬误是语法解析谬误prase error。下面提到的谬误都属于PHP代码运行期间谬误,而语法解析谬误属于语法查看阶段谬误,这将导致PHP代码无奈通过语法查看。这里只是列举了最常见的几个,php手册一共有16个级别的谬误。 $date = date('Y-m-d');;if(ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",$date,$regs)){echo $regs[1]."-".$regs[2]."-".$regs[3];}else{echo "没有匹配到";}//Deprecated(在php5版本),Fatal error(在php7版本) if($i > 2020){echo '$i没有初始化!!!',PHP_EOL;}//Notice $arr = array('arr'=>1,2,3);echo $arr[arr];//Warning $res = array_sum($arr,1);//Warning echo fun();//Fatal error echo "最高级别谬误';//Parse error下面的代码演示了php常见的几个谬误级别,如果没有输入残缺的话,能够看看php.ini配置文件看看是否如下设置 error_reporting=E_ALL | E_STRICTdisplay_errors=On其中的error_reporting是指定谬误级别,display_errors就不用说了。

February 28, 2022 · 1 min · jiezi

关于容器:一步步基于Rocky-Linux-搭建K3s集群

K3S介绍K3s 是一个轻量级的 Kubernetes 发行版,是一个开源的用于治理云平台中多个主机上的容器化的利用。因在内存占用方面只是Kubernetes一半的大小,故简写为 K3s。 在本文中,我将展现如何一步步基于Rocky Linux搭建K3S服务集群。 第 1 步:为搭建做筹备咱们先在Virtualbox上新建三台实例,并且设置网络为桥接模式如图: 而后启动,期待装置实现 在本文中,咱们别离在三台实例上通过编辑 /etc/hosts 配置好IP tee -a /etc/hosts<<EOF192.168.1.90 master192.168.1.91 node1192.168.1.92 node2EOF为不便前面辨别查看节点信息,咱们须要配置一下每一台机器的 hostname应用hostnamectl命令,hostnamectl set-hostname name ,再通过hostname或者hostnamectl status命令查看更改是否失效 [root@localhost ~]# hostnamectl set-hostname master #这里是设置master[root@localhost ~]# hostnamemaster敞开防火墙以及selinux [root@master ~]# sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config[root@master ~]# systemctl stop firewalld && systemctl disable firewalld Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.应用dnf命令将所有软件包更新到最新版本 [root@master ~]# dnf update -y[root@master ~]# reboot这里须要正文敞开swap替换分区 [root@master ~]# cat /etc/fstab ## /etc/fstab# Created by anaconda on Sat Feb 26 09:13:56 2022## Accessible filesystems, by reference, are maintained under '/dev/disk/'.# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.## After editing this file, run 'systemctl daemon-reload' to update systemd# units generated from this file.#/dev/mapper/rl-root / xfs defaults 0 0UUID=a4c1024b-862b-49f9-befa-8e1cefd2e7b5 /boot xfs defaults 0 0# /dev/mapper/rl-swap none swap defaults 0 0(可选)跟我一样有强迫症的同学,能够应用这条命令主动筛选并删除以后零碎老版本的内核,而后重启[root@master ~]# dnf remove $(rpm -qa | grep kernel | grep -v $(uname -r))第 2 步:装置K3s在以后master实例当中,执行 ...

February 26, 2022 · 3 min · jiezi

关于容器:为什么在-Apple-Silicon-上装-Docker-这么难

图为外部 Wiki,咱们尝试过各种不同的 Docker 开发环境最近公司的很多共事都换上了搭载 M1 Pro 或 M1 Max 的新款 MacBook Pro,尽管日常应用的软件如 Chrome、Visual Studio Code 和 Slack 都曾经适配得很好了,但面对 Docker 却犯了难。 家喻户晓,Docker 用到了 Linux 的两项个性:namespaces 和 cgroups 来提供隔离与资源限度,因而无论如何在 macOS 上咱们都必须通过一个虚拟机来应用 Docker。 在 2021 年 4 月时,Docker for Mac(Docker Desktop)公布了 对 Apple Silicon 的实验性反对,它会应用 QEMU 运行一个 ARM 架构的 Linux 虚拟机,默认运行 ARM 架构的镜像,但也反对运行 x86 的镜像。 QEMU 是一个开源的虚拟机(Virtualizer)和仿真器(Emulator),所谓仿真器是说 QEMU 能够在没有来自硬件或操作系统的虚拟化反对的状况下,去模仿运行一台计算机,包含模仿与宿主机不同的 CPU 架构,例如在 Apple Silicon 上模仿 x86 架构的计算机。而在有硬件虚拟化反对的状况下,QEMU 也能够应用宿主机的 CPU 来间接运行,缩小模仿运行的性能开销,例如应用 macOS 提供的 Hypervisor.Framework。 ...

February 25, 2022 · 3 min · jiezi

关于容器:Sysdig-2022云原生安全和使用报告发现超过75的运行容器存在严重漏洞

报告引自:Sysdig 2022 Cloud-Native Security and Usage Report 前不久,《Sysdig 2022年云原生平安和应用报告》正式公布。该报告显示,随着云原生技术的一直成熟,越来越多的企业步入了云原生化的过程,然而因为很多曾经应用云原生技术的企业急于求成,云原生的平安和应用体验大打折扣,这也为后续运行埋下了不少的安全隐患。此外,因为业务的经营管制存在滞后性,不合理的布局可能会造成微小的容器容量资源节约。这也阐明了,云和容器的采纳曾经进入了一个全新的阶段,然而一些问题也因而显现出来,与缺乏经验的团队一起疾速口头很可能会减少危险和老本。 第五份年度报告揭示了各种规模和跨行业的寰球Sysdig客户如何应用和爱护云和容器环境。这种实在的实时数据提供了对每年运行的数十亿个容器的应用状况的洞察,包含应用趋势以及安全性、合规性、运行时和云实际。 报告要点: 75%的正运行容器中存在“高危”或“重大”破绽企业为了疾速倒退而承当了肯定的危险;然而,在生产中运行的85%的镜像至多蕴含一个可修补的破绽。此外,75%的镜像含有重大水平为 "高危 "或 "重大"的可修补破绽。这意味着相当大的危险接受程度,这对高敏捷性的经营模式来说并不常见,但可能十分危险。每4个账户中就有近3个蕴含裸露的S3存储桶73% 的云账户蕴含裸露的 S3 存储桶,36%的现有S3存储桶对公众凋谢拜访。与关上的存储桶相干的危险量依据存储在那里的数据的敏感性而有所不同。然而,很少须要让存储桶放弃关上状态,这通常是云团队应该防止的捷径。27%的用户领有不必要的root权限,大多数没有启用MFA云平安最佳实际和AWS的CIS基准表明,企业应防止应用根用户进行治理和日常工作,但27%的企业依然这样做。48%的企业没有在这个高度特权的账户上启用多重身份验证(MFA),这使得企业在账户凭据泄露或被盗时更容易被攻打。每个集群在云服务提供商账单上超支40万美元以上在疾速变动的 Kubernetes 环境中,容量治理和布局很艰难,并且容器能够应用多少资源的限度可能无奈定义。 60% 的容器没有定义CPU限度,51%没有定义内存限度。在那些有 CPU 限度的集群中,均匀有34%的CPU内核资源未应用。如果不理解集群的应用状况,企业可能会因为适度调配而造成资金节约,或者因为耗尽资源而导致性能问题。咱们来算一算,思考到 Amazon Web Services CPU 定价的均匀老本,一个领有 20个Kubernetes集群的企业因为 CPU资源未被充分利用,每年可能要多破费40万美元。其余发现:在企业的云环境中,非自然人角色超过了自然人,只有12% 的角色调配给自然人用户。非自然人角色能够由用户承当来执行特定的工作,也能够由应用程序、服务提供者或其余第三方工具应用。这里的最佳实际是遵循起码权限准则,明确地为每个角色调配起码的必要权限。但大失所望,因为更高的权限能够使操作更容易、更快,大多数用户和角色都被授予过多的权限,这就会给企业减少肯定的危险。容器密度在2021年再次增长,同比增长了近15%,四年内增长了360%。随着容器密度的减少,设置资源限度变得更加重要,然而因为DevOps团队急于扩大云环境,通常没有遵循最佳实际。以root身份运行的容器持续减少。48%的图像在运行前被扫描,然而76%的容器以root身份运行,比去年减少了31%。对最佳实际的迟缓采纳可能表明,尚未倒退其DevSecOps流程的企业宽泛采纳容器技术,而有特权的容器更容易被攻击者毁坏。安全性高于一切:灵雀云ACP的云原生平安实际在云原生安全策略方面,Sysdig认为,云原生平安防护的外围在于规定。规定定义和保护,都须要平安人员基于本身安全策略的规定进行定义和保护,因为规定的定制化还可能存在规定被绕过的状况,只有融入到具体情况千差万别的生产环境中,平安经营团队继续地采纳多种检测伎俩穿插验证、造成闭环,能力真正无效发挥作用。 灵雀云在云原生平安实际时也秉持着同样的安全策略。为了更好地帮忙企业用户实现云原生转型的平稳过渡,实现数字化转型,灵雀云始终把产品和服务的安全性放在首位,通过以下几点构筑了弱小的云原生平安防线: 欠缺的用户安全策略为确保用户登录平安,灵雀云ACP反对设置用户安全策略,包含明码平安、用户禁用、用户锁定、明码告诉、访问控制等策略。晋升平台用户的安全性,升高歹意攻打危险。无效的容器平安治理灵雀云ACP反对容器平安能力,零碎提供弱小的内置规定库,通过对容器的零碎调用行为进行监控,当容器产生存在安全隐患的行为时则触发告警,并可主动向平安负责人发送平安规定告警音讯,以便相干人员及时排除安全隐患、修复安全漏洞,确保零碎的容器运行时平安。服务化的IT平安治理反对中小型企业的多租户治理场景,实现细粒度权限管制和自助IT治理;对立治理和监控不同基础设施环境上的资源,通过平安审计机制,保障系统安全性。全生命周期的DevSecOps在利用的整个生命周期内确保安全性;实现平安防护自动化,以爱护整体环境和数据;同时在构建/测试/部署过程中通过配置安全策略(比方镜像破绽扫描策略、代码平安扫描策略)来保障利用整体的安全性;通过主动执行对立的平安质量标准,从而确保组织交付更平安的软件;反对集成实用于容器的安全性扫描程序。理解更多:关注“灵雀云”微信公众号,具体理解灵雀云ACP如何帮助您实现云原生平安构建,与灵雀云工程师一起布局探讨,云原生平安最佳实际。发送“云原生平安”至“灵雀云”微信公众号,下载残缺的《Sysdig 2022年云原生平安和应用报告》。

February 17, 2022 · 1 min · jiezi

关于容器:阿里云容器服务差异化-SLO-混部技术实践

简介:阿里巴巴在“差异化 SLO 混合部署”上曾经有了多年的实践经验,目前已达到业界领先水平。所谓“差异化 SLO”,就是将不同类型的工作负载混合运行在同一节点,充分利用工作负载对资源 SLO 需要特色的不同,晋升资源整体应用效率。本文将重点介绍相干技术细节和应用办法,让用户能够充沛享受差异化 SLO 带来的技术红利。 作者:佑祎 背景介绍阿里巴巴在“差异化 SLO 混合部署”上曾经有了多年的实践经验,目前已达到业界领先水平。所谓“差异化 SLO”,就是将不同类型的工作负载混合运行在同一节点,充分利用工作负载对资源 SLO 需要特色的不同,晋升资源整体应用效率。本文将重点介绍相干技术细节和应用办法,让用户能够充沛享受差异化 SLO 带来的技术红利。 资源模型作为通用的计算资源托管框架,Kubernetes 托管了多种类型的业务负载,包含在线服务、大数据、实时计算、AI 等等。从业务对资源品质需要来看,这些业务能够分为“延时敏感型”(Latency Sensitive,简称 LS)和“资源消耗型”(Best Effort,简称 BE)两类。 对于 LS 类型,为了确保资源的稳定性(可能应答突发的业务流量,可能应答机房容灾后带来的流量增长),一个牢靠的服务通常会申请较大的资源 request 和 limit,这也是 Kubernetes 集群资源分配率很容易做到 80% 以上但利用率却低于 20% 的次要起因,也是 Kubernetes 引入 BestEffort QoS 类型的起因。 为了充分利用这部分已调配但未应用的资源,咱们将上图中的红线定义为 usage,蓝色线到红色先预留局部资源定义为 buffered,绿色笼罩局部定义为 reclaimed,如下图所示: 这部分资源代表了可动静超卖的资源量,也就是∑reclaimed(Guaranteed/Burstable)。将这部分闲暇资源分配给 BE 类型的业务,就能够充分利用工作负载对资源运行品质需要不同的特色,晋升集群整体资源利用率。 阿里云容器服务 Kubernetes 版(Alibaba Cloud Container Service for Kubernetes,以下简称 ACK)差异化 SLO 扩大套件提供了将这部分超卖资源量化的能力,动静计算以后的reclaimed资源量,并以规范扩大资源的模式实时更新到 Kubernetes 的 Node 元信息中。 # Nodestatus: allocatable: # milli-core alibabacloud.com/reclaimed-cpu: 50000 # bytes alibabacloud.com/reclaimed-memory: 50000 capacity: alibabacloud.com/reclaimed-cpu: 50000 alibabacloud.com/reclaimed-memory: 100000低优的 BE 工作在应用 reclaimed 资源时,只需在 Pod 减少“qos”和“reclaimed-resource”的表述即可,其中 qos = LS 对应高优先级,qos = BE 对应低优先级;reclaimed-cpu/memory 为 BE Pod 的具体资源需求量。 ...

February 16, 2022 · 3 min · jiezi

关于容器:双龙贺岁龙蜥-LoongArch-GA-版正式发布

简介:Anolis OS 8.4 LoongArch 正式版公布产品包含 ISO、软件仓库、虚拟机镜像、容器镜像。 简介继Anolis OS LoongArch 预览版公布后,现迎来龙蜥 LoongArch 正式版首发,该正式版在预览版的根底上提供了 AppStream、PowerTools 等仓库。Anolis OS 8.4 LoongArch 版是龙蜥社区发动的我的项目,完满地反对 LoongArch 体系架构,是打造国产化生态环境中重要的一项成绩。 龙芯指令系统(LoongArch®)是龙芯中科基于二十年的 CPU 研制和生态建设积攒推出的新指令集,具备较好的自主性、先进性与兼容性的新平台。包含基础架构局部和向量指令、虚拟化、二进制翻译等扩大局部,近 2000 条指令。 公布内容Anolis OS 8.4 LoongArch 正式版公布产品包含 ISO、软件仓库、虚拟机镜像、容器镜像。 ISO列表:https://mirrors.openanolis.cn... loongarch64架构的装置 ISO 镜像 虚拟机镜像列表:https://mirrors.openanolis.cn... loongarch64架构的虚拟机镜像 容器镜像列表:docker pull openanolis/anolisos:8.4-loongarch64 软件仓库列表:https://mirrors.openanolis.cn...https://mirrors.openanolis.cn...https://mirrors.openanolis.cn... 亮点反对图形界面和多种装置场景应用 docker-ce 20.10.3 为默认的容器管理工具应用 lbrowser 浏览器和 evolution 邮件客户端,lbrowser 基于 chromium 内核开发,反对 npapi 插件性能,反对国家商用明码算法模块和国产平安协定模块,修复目前已知所有安全漏洞。内核更新到 4.19.190-4硬件撑持 已知问题 镜像地址主机镜像: https://mirrors.openanolis.cn... 容器镜像: docker pull openanolis/anolisos:8.4-loongarch64配置 EPEL 仓库: cat > /etc/yum.repos.d/epel.repo << EOF[epel]name=epelbaseurl=http://pkg.loongnix.cn/loongnix-server/8.3/epel/loongarch64/release/Everything/gpgcheck=0EOF配置容器仓库: ...

February 11, 2022 · 1 min · jiezi

关于容器:构建制品不一致后续工作都是白费-研发效能提升36计

简介:本篇文章,咱们从软件交付的终态登程,提出了不可变构建的概念。在软件开发的过程中,咱们怎样才能享受产业生态的红利,实现软件交付过程的标准化呢?软件交付当中的集装箱应该是什么样的? 专栏策动|雅纯意愿编辑|冯朝凯、橙蜂 之前咱们举了《集装箱扭转世界》(作者:马克.莱文森)中的一个例子,书中提到上世纪五六十年代,集装箱的应用,使得整体货运老本升高了95%,大部分的码头工人都面临着就业。 这件事件看起来很简略,但却给经济全球化带来了十分大的影响。前面美国企业的订单能够下到中国、以及中国成为“世界工厂”,都与之有很大的关系。集装箱的背地是标准化和基于统一标准的产业链,这里有两点比拟重要的,一个是标准化,另外一个是不可变。 那么,在软件开发的过程中,咱们怎样才能享受产业生态的红利,实现软件交付过程的标准化呢?软件交付当中的集装箱应该是什么样的? 如何保障软件交付过程的标准化近十几年,软件交付状态产生了很大的变动,从最开始买物理机、建机房到虚拟机再到当初的容器。这两头为什么会产生这样的变动呢? 容器自身的底层技术是namespace和cgroup,然而这两个货色在十几二十年前就呈现了。最早利用这些技术的是对资源利用率和隔离有明确诉求的云厂商,比如说阿里云不心愿跑在机器上不同用户的货色相互串,最好的方法就是能限度每个用户的资源,如CPU、内存等。有了这个诉求,就会用LXC等形式去隔离,去限度资源。然而这还是没有产生容器。为什么呢?问题是各个云厂商只能在本人外部做,然而不能对外散发。所以Docker的平凡之处并不是在底层做了多大地翻新,而是提供了一个能够对外散发的容器镜像。 容器镜像是一个散发的模式,咱们能够把容器镜像分发给他人,或者是让他人继承咱们的镜像。同时Docker又提供了Dockerfile。Dockerfile容许咱们通过一个文件的模式去形容镜像。一旦可能定义镜像就能够合作了。有了这样的能力当前,容器就很快被大家所承受了。所以容器的承受看起来如同是技术倒退的过程,其实是随着云原生、云市场的倒退必然带来的后果。 咱们很多人认为的“集装箱”就是容器,这个容器很多时候咱们都认为是docker容器。在K8s外面反对很多个容器运行,大部分的状况都是用docker容器。docker容器的劣势就是方才说的两点:镜像和Dockerfile。这两点使得docker镜像能够像集装箱一样做散发。 此外,容器还提供了很好的资源隔离,能够在比拟小的粒度上进行隔离。虚拟机尽管也做了隔离,然而它的粒度比拟大。不仅如此,容器还提供了十分弹性的资源管理形式,这点比虚拟机和物理机都有十分大的改善。实质上它就是物理机上的一个过程,这是它和虚拟机的实质的差异。 理解了软件集装箱是什么后,而后咱们再来理解下容器镜像的组成。 如上图所示,这张图十分形象地展现了容器镜像的内部结构。当咱们本人执行dockerbuild构建镜像的时候,你会发现它进去的日志有很多hash值,一层一层的。实际上它是由很多层组成的,咱们通过LXC或者其余的技术,把容器的过程创立进去,这个过程通过namespace和cqroup做了资源隔离和限度。容器镜像都有一个BaseImage,咱们晓得运行一个程序,对操作系统的环境是要求的,比方依赖的library等。这个程序如果轻易在一台物理机和虚拟机部署,会随着机器的环境不同而不同,有可能导致危险。所以容器镜像给了一个根本镜像,把这个货色放外面了。再往上是Addemacs和Addapache,这两层咱们会在Dockerfile中去写。而后最下面的是Writable,就是咱们在容器Container运行的时候真正能够去写的货色。 那么容器镜像的特点是什么呢?它是分层的,每一层都是能够复用的,咱们在某个机器上有很多个容器,如果Base镜像一样,只有下一次就行了。能够看到镜像的大小是所有的层堆起来的,堆的货色越少,这个镜像就会越小。容器镜像有一个最小的镜像叫scratch,就是一个最原始的根底镜像。这外面简直什么都没有,基于它构建一个十分十分小的容器的话,可能就是几兆的大小。然而如果你基于CentOS根底镜像可能就是上G的大小。 容器镜像有一个十分重要的概念叫“One process per container”(容器生命周期=过程生命周期)。咱们能够认为容器就是K8s上的一个过程,如果把K8s比作操作系统,那么容器就是它下面运行的一个过程。过程的生命周期是能够被治理的。尽管容器有这么多的长处,但理论在用的时候也会遇到很多的问题。 上面咱们聊一聊容器镜像的一些常见的问题和倡议。 容器镜像常见问题及实际倡议容器镜像常见的问题: 把所有的货色都装到一个容器外面,把容器当虚拟机来用。把ENTRYPOINT设置为systemd:systemd治理的过程运行的后果和状态和的容器状态是不统一的,有可能外面的过程曾经僵死了,或者Crash了,然而systemd还活着,从内部看起来这个容器没问题。私有化部署的时候带一堆导出的镜像tar包。tar包是不分层的,它不晓得外面是有很多层。每次把根底镜像下发到整个集群,导致网络变得特地拥挤咱们的实际倡议是: 尽量采纳轻量的根底镜像和确定的镜像版本。通过分层来复用镜像内容,防止反复拉取。防止采纳systemd,包含supervisord和相似这样的daemon治理服务来做ENTRYPOINT。采纳本地的dockerregistry等以层为粒度来离线拷贝镜像。防止同时要做大量的pull,可采纳P2P的形式(如应用dragonfly)晋升镜像散发效率。容器镜像能够实现软件交付过程的标准化。标准化是伎俩不是目标,标准化是帮忙咱们更高效的复用的技术。 回到软件交付的终态,咱们的目标是心愿提供一个稳固可预期的零碎。 而达成这个指标的前提是,要有确定的运行环境和软件制品。确定的环境是指代码(及其依赖)、构建环境、构建脚本与预期统一的产出软件制品,这一点如何做到咱们前面再作分享。咱们先看如何保障软件制品的一致性。 如何保障软件制品的一致性要保障软件制品的一致性,软件制品应该有确定的格局、惟一的版本、可能追溯到源码、可能追溯到生产和生产过程,这样能力使继续交付更好地服务于企业的制品治理与开发。 在制品构建过程中,常常会遇到一些问题。例如利用的代码库里没有Makefile,package.json,go.mod而没法确定依赖,或者制品能构建胜利但缺失几个依赖,又或是在本人的开发环境运行失常而在生产环境呈现了开发环境没有的bug。导致这些问题呈现的起因是因为构建自身是可变的,当你构建可变时,就会带来一系列的问题。为此,咱们须要通过不可变构建来使制品与预期统一。 要实现不可变构建,咱们须要保障有: 雷同的代码雷同的构建环境雷同的构建脚本雷同的代码 例如程序员开发时,不在依赖形容文件(如go.mod,package-lock.json,pom.xml,requirements.txt等)中指定依赖的版本,则会默认应用最新的版本作为依赖,这样产出的制品会随着依赖的更新而不能保持一致,这将带来齐全不在预期内的危险。 雷同的构建环境 对于构建环境来说,Dockerfile能够用来在容器平台下形容环境,通过Dockerfile咱们能为制品应用统一的环境。很多时候咱们并不需要在运行中应用构建环境的很多依赖,而构建镜像的体积往往比拟惊人,这个时候咱们就须要将构建环境与运行环境离开,以失去尽可能轻量的镜像制品。 雷同的构建脚本 对应的,应用雷同的,与代码实现无关的构建脚本也是十分重要的,在Dockerfile的环境中必须指定确定的环境依赖版本。 只有在同一份代码(及同一个依赖)、同样构建环境的形容、和同样构建脚本的环境下,所产生的软件制品才是雷同的。这里强调的是说所有的货色都要保障一致性,如果说三者是一样的话,那产生进去的制品也是一样的,即便构建工夫不同,产出的制品也是雷同的。 做好不可变基础设施,首先要标准化最终交付制品的状态,并且明确此交付状态的运维治理形式。而要保障不可变,那首先要做好不可变的构建,而后能力有统一的软件制品。 NOTE:构建准确性,永远比构建更快重要。制品的构建信息不精确,导致构建制品不统一、版本不可控,所有后续的工作都是节约。 如何晋升构建效率在构建这块,一个须要关注的点的是如何晋升构建效率。咱们先看一个简略的计算问题: 这是一个十分大的数据,也是十分大的损耗。很多时候一个我的项目的工程效率太低的起因就是因为构建太慢。构建耗时过长使得制品迭代十分慢,性能更新和bug修复也会受到影响。 那咱们如何晋升构建的效率呢?上面是咱们的一些实际倡议: 1个根本准则:保障构建的准确性,构建的准确性永远优于构建的效率。只有在保障准确性的前提下晋升效率才有意义。 5点倡议: 利用瘦身:查看利用的依赖状况,利用包体积是否过大,依赖项是否过多,是否去除不必要的依赖,是否构建更小的镜像。分层构建:底层的货色先构建进去当前被下层所复用,而后就能够做增量式的了。构建缓存:构建过程中拉取依赖是很耗时的,要防止反复拉取。网络优化:次要是保障代码、构建机器和制品库之间的低网络延时。代码和构建机器是否是在同一个低时延链路中。例如代码在Github上而应用云效构建,此时的延时绝对于内网会高出许多。仓库镜像:仓库镜像能够极大地缩小拉取依赖项的工夫。在国内的网络环境下,如果从源仓库获取依赖,可能延时会十分长,这时能够应用镜像网络升高延时。例如nodejs开发者常应用淘宝的npm镜像源,而Python开发者应用清华的镜像源。对于企业来说也能够构建本人的镜像仓库以晋升可靠性与升高延时。云效也应用了镜像仓库,来缩小拉取的工夫。(小编举荐:云效流水线Flow 是一款云原生时代的流水线工具,通过容器技术让企业解脱对虚拟机构建环境的依赖。您甚至能够依据您的应用需要,在同一条流水线上应用不同的构建环境。此外,云效流水线Flow 还提供了各种语言的容器环境,满足不同的构建应用场景。点击文末浏览原文,理解详情) 总结本篇文章,咱们从软件交付的终态登程,提出了不可变构建的概念。心愿通过:雷同的源码+雷同的环境+雷同的构建脚本=>带来统一的软件制品。而这些货色都是保留在源代码里的,所以源代码的治理十分重要。 下篇文章,咱们将分享如何对源代码进行无效治理。 原文链接本文为阿里云原创内容,未经容许不得转载。

February 10, 2022 · 1 min · jiezi

关于容器:Lazada-容器深度优化之旅

作者:魏扼(文射)、范磊(蓄能) 近年来东南亚数字经济继续倒退,Lazada在买家和商家数量上持续放弃了强劲的持续增长态势。2020年的11.11有超过4000万个消费者、超过40万的商家和品牌来到Lazada平台,往年11.11当天有超过80万品牌和商家参加,Lazada 越南首小时同比去年销售额翻番,Lazada 新加坡首小时销售额较素日增长10倍! 一连串业务数据爆涨的背地,是流量的快速增长,容器作为H5业务的承载,也服务了越来越多H5业务:会场、Flash sale,Lazmall、钱包等等,因而,H5页面的用户体验受到更大的挑战。 在过来一年里,Lazada容器团队深耕H5容器优化,在面对线上弱网用户占比高,低端机型散布广等状况下,咱们采纳预渲染计划针对性优化了大促会场页面,独创性使用预热计划优化日常GCP页面和ICMS页面,同时对页面数据进行预取,动态资源提前缓存等计划,对头部H5页面流量业务进行深度优化,最终晋升H5业务的用户体验及业务转化。 问题剖析2020 D11大促当日,会场录屏首屏工夫9383ms,用户体验非常蹩脚,大部分用户无法忍受而间接退出页面,导致流量散失重大。 先剖析咱们关上会场页面的残缺链路,包含如下阶段: 整个流程工作沉重,网络开销大,导致页面渲染被拉到十分晚,首屏工夫长也就不奇怪了。 再分析线上用户的网络和用户机型的散布状况,如下图所示: 从上图能够看到线上大盘用户挪动网络占比高,低端机型占比大,特地是印尼用户,挪动网络稳定性状况更差,低端机型占比突出。那么针对低端机型以及弱网用户的优化成为咱们重点攻坚方向。 优化计划监控体系建设工欲善其事必先利其器,线上用户间隔咱们十分边远,他们的真实情况是怎么的,咱们很难体验到。那么只能从监控着手,对页面加载的各环节进行埋点上报,从具体的数据来掂量用户实在体验状况。对此,咱们将H5页面的加载环节进行了划分,具体参考如下: 包含路由、容器创立、页面加载、页面渲染、用户退出等环节,对每个环节进行埋点,将页面加载状态,工夫点、本环节耗时等信息上报到DP2和UT,并建设实时监控: 路由和容器初始化监控 页面加载监控 首屏工夫监控 容器预热:空间换工夫会场页面由GCP平台搭建进去的,剖析发现每个页面都会执行雷同的js,每个页面只有大量的业务js执行和渲染,通过探讨和验证,把公共的根底js形象进去,和业务js隔离,在用户关上页背后就将这些资源提前加载到webview中,一方面缩小用户点击后页面须要加载的资源,一方面提前对公共js、css进行了解析和预处理。 预热计划上线后,首屏工夫降到2s内,BDay预热命中率36%,通过埋点剖析,发现预热文档加载存在以下问题: 应用预热容器时, 预热工作未启动, 次要是唤端场景;预热未实现,预热耗时较长均匀耗时5000+ms,或者预热失败;应用预热容器时, 预热工作启动, 然而前端没有回调预热实现, 而过程存在保活机制, 一旦第一次没有回调, 预热webview可能始终不会被应用, 也不会重启预热工作, 除非重启过程;命中了预热容器, 前端未回调首屏, 导致不会再次创立新的预热容器, 下次启动页面无奈命中;未匹配预热规定。预热工夫提前针对预热文档加载耗时的问题,咱们把预热机会提前到首页可交互后,尽可能早地开启预热页面的加载,同时咱们将主文档资源通过ZCache提前缓存到本地,缩小网络传输。 预热重试机制预热启动机会在首页可交互,预热实现后,前端会告诉客户端预热实现事件,用户关上一个Web页面时,会判断是否预热实现,实现了才会去应用。这两头可能就会存在预热失败的状况导致客户端没有收到预热实现的告诉。另外在关上一个Web页面实现上屏之后,前端会回调一个首屏告诉,此时会触发预热一个新的WebView,通过数据分析,发现局部用户没有收到首屏告诉,导致下一次关上页面无奈命中预热。 针对上述情况,咱们提出了预热重试机制来晋升预热的命中率。次要是两种预热重试的场景, 第一种是首页闲时预热重试; 第二种是关上页面后预热重试,定义超时工夫,默认为10s,超时工夫到了之后会查看是否实现预热,没有实现预热则会触发一次新的预热,最多重试次数为3次。具体流程如下图: 预热链接匹配通过分析线上数据,发现某些GCP页面预热命中率为0,起因是命中预热须要匹配Web页面的链接与预热的主文档链接,须要Web页面链接的host和path与预热主文档的host和path要完全一致,然而因为种种原因,线上会存在host和path与预热主文档的不一样,导致无奈命中预热。针对这种状况,通过Orange配置下发正则匹配规定,页面链接只有匹配上了规定就能够应用预热容器,而不只是匹配繁多的预热主文档链接,同时配置对立整合了GCP页面和ICMS页面。 匹配规定示例: prehot_regex={"id":[{"url":"https://pages.lazada.co.id/wow/gcp/route/lazada/id/upr_1000345_lazada/channel/id/upr-router/id_upr?lzd_open_type=pre_hot&at_iframe=1","type":"gcp","prehot_regex":"^https://((pages)|(www)|(pre-wormhole)).lazada.co.id/wow/gcp/route/lazada/id/upr_1000345_lazada/channel/id/upr-router/id_upr"}],"my":[{"url":"https://pages.lazada.com.my/wow/gcp/route/lazada/my/upr_1000345_lazada/channel/my/upr-router/my?lzd_open_type=pre_hot&at_iframe=1","type":"gcp","prehot_regex":"^https://((pages)|(www)|(pre-wormhole)).lazada.com.my/wow/gcp/route/lazada/my/upr_1000345_lazada/channel/my/upr-router/my"}],"sg":[{"url":"https://pages.lazada.sg/wow/gcp/route/lazada/sg/upr_1000345_lazada/channel/sg/upr-router/sg?lzd_open_type=pre_hot&at_iframe=1","type":"gcp","prehot_regex":"^https://((pages)|(www)|(pre-wormhole)).lazada.sg/wow/gcp/route/lazada/sg/upr_1000345_lazada/channel/sg/upr-router/sg"}],"ph":[{"url":"https://pages.lazada.com.ph/wow/gcp/route/lazada/ph/upr_1000345_lazada/channel/ph/upr-router/render?lzd_open_type=pre_hot&at_iframe=1","type":"gcp","prehot_regex":"^https://((pages)|(www)|(pre-wormhole)).lazada.com.ph/wow/gcp/route/lazada/ph/upr_1000345_lazada/channel/ph/upr-router/render"}],"th":[{"url":"https://pages.lazada.co.th/wow/gcp/route/lazada/th/upr_1000345_lazada/channel/th/upr-router/th?lzd_open_type=pre_hot&at_iframe=1","type":"gcp","prehot_regex":"^https://((pages)|(www)|(pre-wormhole)).lazada.co.th/wow/gcp/route/lazada/th/upr_1000345_lazada/channel/th/upr-router/th"}],"vn":[{"url":"https://pages.lazada.vn/wow/gcp/route/lazada/vn/upr_1000345_lazada/channel/vn/upr-router/vn?lzd_open_type=pre_hot&at_iframe=1","type":"gcp","prehot_regex":"^https://((pages)|(www)|(pre-wormhole)).lazada.vn/wow/gcp/route/lazada/vn/upr_1000345_lazada/channel/vn/upr-router/vn"}]}通过一系列优化,咱们大盘GCP页面和Flash sale页面预热命中率晋升到60%左右,主会场预热命中率靠近70%。 容器预渲染:极致用户体验为了进一步极致的晋升用户体验,达到真正的直出成果,咱们针对大促会场做了一个预渲染的前置动作,通过和首页模块的通信交互,容器端和前端的事件通信、上报屏蔽、流量管制等,提前预渲染会场页,在真正上屏的时候瞬开会场,此时整体会场自定义首屏工夫就是趋于0。 优化前后录屏成果,请点击查看:Lazada 容器深度优化之旅 录屏中优化前的是去年双十二期间页面,优化后应用的是BDay期间的页面,页面构造有变动,但加载的资源量级相当,从录屏成果看,优化后的体验,无论是预热还是预渲染比优化前都有质的晋升。 对于预渲染,咱们曾经在后盾实现了页面的加载和渲染操作,实践上应该是只须要合成上屏即可,然而录屏中有看到白屏过程,通过视频分帧能够看到,进场动画的时候的确是白屏状态: 通过试验,比照其余页面(如https://www.baidu.com) 命中预渲染的成果,发现它并没有白屏的过程。这两头的区别在于,会场页面上获取预渲染容器的同时,会发送一个上屏事件给前端,前端再去做一些软刷新等工作,这个软刷新工作会有业务js执行,导致阻塞了内核渲染流程,咱们将上屏告诉异步提早后,两头白屏工夫就少很多,录屏成果请点击查看:Lazada 容器深度优化之旅 在7.7大促期间对会场页面做测试,比照从点击到首屏的耗时,数据如下: 提早上屏告诉状况下的录屏耗时优化了12%,用户体感会有较大晋升。 SSR:唤端性能晋升利器预热/预渲染可极致优化用户从首页进入会场的体验问题,然而线上还存20%-40%用户是通过唤端冷却间接进入到会场落地页,这种状况下,是没有足够工夫来进行预热和预渲染的,所以晋升唤端页面加载速度是一个亟需解决的问题。 从前端角度来剖析,页面加载分为几个步骤:主文档加载、外围js加载、数据申请、页面渲染、上屏展现、图片申请展现,这几个步骤都是串行的,波及到大量资源文件的网络传输和js解析执行。通过和前端同学探讨, SSR是一个潜在的优化计划,将数据在服务端就召回并解析渲染成动态HTML,那就只须要下载一个主文档就能进行上屏展现,加上图片申请展现,就只须要两轮数据交互,从客户端角度看,缩小了3个数据交互环节,大大降低了数据传输量和连贯申请次数。 会场SSR计划 SSR与非SSR比照视频,点击查看:Lazada 容器深度优化之旅 ...

February 9, 2022 · 1 min · jiezi

关于容器:金融云原生漫谈七|云原生时代从传统运维到智能运维的进阶之路

在金融行业数字化转型的驱动下,国有银行、股份制银行和各级商业银行也纷纷步入容器化的过程。 如果以容器云上生产为指标,那么整个容器云平台的设计、建设和优化对于银行来说是一个微小的挑战。如何更好地利用云原生技术,帮忙银行实现麻利、轻量、疾速、高效地进行开发、测试、交付和运维一体化,从而重构业务,推动金融科技的倒退,是个长期课题。 本期云原生漫谈,将和您独特摸索,云原生时代智能运维的进阶之路。 随着金融业务的疾速倒退,撑持业务的IT基础设施的变动节奏也大大放慢。 金融IT运维团队对IT基础设施运维的工作,比以往任何时候都要更加艰巨。外围是保障生产平安经营,并进步软硬件环境的交付品质。然而在明天的金融IT 3.0时代,IT需要变得越来越强,变动越来越快,服务器等数量爆增,治理起来日益繁冗。同时,运维治理规模的不断扩大,运维人员的一直裁减,使得日常运维工作面临着双重的压力与危险。 以容器、微服务为代表的云原生技术催生了新一代云原生运维技术体系,能够帮忙金融企业最大化开释运维效力。基于多年来的实践经验,咱们对于来自金融行业一线的运维问题进行了答复: 相较于虚拟机,容器的运维和监控有什么优劣势?为什么说基于K8s的容器是实现智能运维的必然选择?高并发场景下,如何实现容器的主动扩缩容?如何快、准、狠地排查容器中的利用问题?容器的智能运维有无成功实践案例?心愿本篇文章能为您提供借鉴。 相较于虚拟机,容器的运维和监控有什么优劣势?从运维的角度来看,容器的轻量化使得运维更加灵便高效,更不便利用自动化来晋升运维效率。 相较于传统运维,容器能够实现: 更疾速部署和交付:对于利用零碎的部署能够极大地节省时间老本和人力老本;更标准化交付物:容器的规范交付物为镜像,蕴含应用程序和依赖环境,一次构建屡次应用,大大简化了利用交付模式;更高效的资源利用:容器不须要虚拟机额定的管理程序,依赖内核运行,在运维资源开销上要低的多;更加麻利的迁徙和扩大:容器能够跨操作系统、跨环境运行,实现无缝迁徙的成果,以及高并发场景下的主动扩缩容。从监控的角度来看,轻量化的容器也带来了监控的复杂度,特地是大量容器运行的平台如何排错和根因剖析。 因为容器是黑盒运行,在运维中容器问题的诊断比较复杂;因为容器运行的密度比拟大,须要面对的运维实体和对象数量会很宏大;因为容器的本身个性,容器的创立、销毁等生命周期过程,各类运维数据的采集是个挑战。另外容器启动后,监控零碎怎么发现,同时须要对其做哪些数据采集,这些问题都是容器监控自动化过程须要解决的。 在监控这个畛域,除了目前比拟热门的纯软件层全链路监控以及混沌工程,倡议应该联合硬件的监控和检测实现端到端的监控和测试,以晋升平台的稳定性和效力。 为什么说基于K8s的容器是实现智能运维的必然选择?随着容器的一直成熟,越来越多的金融企业抉择利用容器来搭建业务零碎。可是,大家在实际操作中发现,像 Docker 之类的容器引擎,更适宜治理大量容器,而现在的云原生利用、机器学习工作或者大数据分析业务,动辄就要应用成千盈百的容器, K8s就自然而然地成为了实现智能运维的必然选择。 首先是 K8s 采纳申明式 API,让开发者能够专一于利用本身,而非零碎执行细节。比方,在 Kubernetes 之上,提供了 Deployment、StatefulSet、Job 等不同类型利用负载的形象。申明式 API 是云原生重要的设计理念,有助于将零碎复杂性下沉,交给基础设施进行实现和继续优化。 此外,K8s 提供了可扩展性架构,所有 K8s 组件都是基于统一的、凋谢的 API 进行实现和交互。开发者也可通过 CRD(Custom Resource Definition)/ Operator等形式提供畛域相干的扩大,极大拓宽了 K8s 的利用场景。 最初,K8s 提供平台无关的技术形象:如 CNI 网络插件, CSI 存储插件等等,能够对下层业务利用屏蔽基础设施差别。 高并发场景下如何实现容器的主动扩缩容?首先,倡议先做好容器云平台配套的监控、日志的建设,再去建设主动扩缩容的自动化能力。 个别能够在高并发场景下应用 K8s 的Horizontal Pod Autoscaling(以下简称HPA), 通过HPA性能,能够实现容器的主动弹性扩缩容性能。对于K8s集群来说,在高并发场景下HPA能够实现多种纬度的自动化性能,例如当工作负载回升的时候,能够创立新的实例副原本保障业务零碎稳固运行,当工作负载并发降落的时候,能够销毁正本实例来缩小资源耗费。以后的主动伸缩的指标包含:CPU,内存,并发数,网络传输等。 此外,从整体施行的角度来看,倡议聚焦于场景驱动,先从某个业务利用开始逐渐试点和推广,运维团队逐渐积攒到各个场景下业务利用的扩缩容的触发指标、阀值和评估扩缩容功效,最终实现全面的主动扩缩容。 如何快、准、狠地排查容器中的利用问题?倡议能够从以下三个层面来排查容器中的利用问题: 业务层面通常咱们说的微服务链路追踪、流量追踪用来解决业务层的问题 说的微服务链路追踪、流量追踪用来解决业务层的问题,失常状况下会引入服务网格平台,益处是不会受开发语言限度(当然SpringCloud也是能够,只是局限在Java利用里),可实现链路追踪,发现业务API调用关系,对解决业务故障拍错很有帮忙。 容器层面容器层面的问题解决相当于传统状况下对包、配置、过程、OS等进行剖析和调优,这点通过切入容器环境进行排障剖析。值得一提的是在灵雀云的产品中,提供对容器debug的独特性能,能够通过长期增加debug容器到指标pod中的形式对指标容器进行各类测试,防止间接登录进入业务容器而导致危险或业务容器中没有须要的debug工具。 网络和数据包层面能够通过trace、tcpdump、流量镜像等形式对数据包剖析,这点通常须要CNI插件反对,个别的calico、flannel都无奈做到,能够思考采纳开源的Kube-OVN插件作为容器CNI,能够无效帮忙解决网络层排障的问题。 容器的智能运维有无成功实践案例?咱们以某大型车企的云原生容器利用为例,2018年,在高并发拜访、高吞吐量以及车辆的车联网接入需要推动下,其智能网联利用做微服务的革新和利用容器化,“智能网联开发院”和“数字化部门”联结起来对整个平台架构进行了相应的设计,在平台建设中外围痛点就是须要引入一个微服务的治理平台,以及一个业务利用的治理平台,来撑持整个智能网联平台的开发须要。 我的项目依靠于灵雀云ACP治理平台,配合微服务治理平台,实现了业务利用的运行以及业务利用治理的工作。我的项目一期实现局部服务器的纳管,造成计算资源池,为业务利用提供部署资源。同时,通过微服务治理性能,实现为业务利用的不同部门或者不同开发团队,适配相应的容器化集群。 当然,平台的落地并不能只是把工具提供给了客户,让客户更好地用起来,也是一个十分大的挑战,尤其对于微服务这样比拟新的概念来说。灵雀云在我的项目当中也为客户提供了微服务治理咨询服务,对于微服务的拆分,微服务革新,以及如何更好地应用平台的各种性能都提供了有针对性的咨询服务。 通过几年的致力,该车企的营销数字化业务的不同业务零碎都逐步迁徙到这个平台上来。这么大规模的平台和业务利用,运维人员可能只须要3~5集体。 对于他们来说,能失去的收益,首先就是对立业务零碎的开发架构,第二是对立了业务零碎的部署架构,第三是极大地缩小了简单的业务零碎运维,大量的人员就能够反对大量的业务零碎的运维工作,同时,通过平台的资源主动伸缩、微服务治理能力,实现了智能化的业务运行、运维和业务治理。 搭建云原生运维体系非欲速不达,须要循序渐进,在平安可控的根底上逐渐扩大。在技术层面,适合的云原生技术平台能够帮忙企业开释运维的微小压力,并保障平安稳固。咱们置信,在数字化转型的大背景下,缩小人力参加的智能运维势必会成为将来IT运维的倒退方向。咱们也期待着可能帮忙更多企业实现云原生时代的智能运维进阶。

February 8, 2022 · 1 min · jiezi

关于容器:基于-Prometheus-的边缘计算监控实践

监控作为边缘计算基础设施的重要组成部分,是边缘稳定性的基本保障。本文次要介绍火山引擎边缘计算的监控实际,分享火山引擎如何进行监控技术选型以及构建监控服务体系。次要内容如下: 边缘计算监控初衷基于 Prometheus 的监控零碎落地实际总结01 边缘计算监控初衷监控作为边缘计算基础设施的重要组成部分,是边缘稳定性的基本保障。在面对低时延、高带宽、异构汇聚等特点的边缘环境时,如何更加清晰的展现出边缘集群的运行状态,应答边缘环境复杂多变的线上挑战?为此,火山引擎边缘计算须要构建一套欠缺的边缘计算监控和服务体系。 02 基于 Prometheus 的监控零碎火山引擎边缘计算采纳了云原生架构,而 Prometheus 作为云原生时代的指标监控利器,有其先天的劣势。相较于其余监控计划,Prometheus 具备以下长处: 原生反对 Kubernetes(以下简称 K8s) 监控,具备 K8s 对象服务发现能力,而且外围组件提供了 Prometheus 的采集接口;基于 HTTP 的 pull 形式采集时序数据,能够满足边缘多集群的监控需要;无依赖存储,反对 local 和 remote 存储模式;提供有数据查询语言 PromQL,用户能够间接通过 PromQL 从 Prometheus 里查问到须要的聚合数据。反对多种多样的图表和界面展现,比方 Grafana 等。基于 Prometheus 的监控零碎的架构如图所示,这里具体分享一下数据源和 Prometheus Server 两局部。 数据源 在监控零碎中,数据源局部蕴含: node-exporter:采集物理节点指标;<!----> kube-state-metrics:采集k8s相干指标,包含资源应用状况,以及各种对象的状态信息;<!----> cadvisor:采集容器相干指标;<!----> apiserver, etcd, scheduler, k8s-lvm,gpu 等外围组件的监控数据;<!----> 其余自定义 metrics,通过在 pod yaml 文件 annotations 增加 prometheus.io/scrape: "true" 可实现主动抓取提供的 metrics;Prometheus Server Prometheus Server 是 Prometheus 最外围的模块。它次要蕴含抓取、存储和查问这3个性能: 抓取:Prometheus Server 通过服务发现组件,周期性地从 Exporter 中通过 HTTP 轮询的模式拉取监控指标数据。<!----> ...

January 18, 2022 · 2 min · jiezi

关于容器:基于-ASK-EB-构建容器事件驱动服务

简介:本篇文章以“在线文件解压场景”为例为大家展现经典 EDA 事件驱动与容器如何搭配应用。 作者:冬岛、肯梦 导读EDA 事件驱动架构( Event-Driven Architecture ) 是一种零碎架构模型,它的外围能力在于可能发现零碎“事件”或重要的业务时刻(例如交易节点、站点拜访等)并实时或靠近实时地对相应的事件采取必要口头。那么 EDA + 容器能擦出怎么的火花呢?本篇文章将率领大家一起在云上借助 ASK 容器服务 + EB 能力构建一套残缺的事件驱动架构。 本篇文章以“在线文件解压场景”为例为大家展现经典 EDA 事件驱动与容器如何搭配应用。 服务架构在线文件解压以 EB OSS 事件告诉为驱动点,架构计划如下: EDA 架构的外围是对事件的利用,OSS 事件默认能够通过云服务总线实现采集,自定义告诉事件。本场景是通过 EventBridge 把 OSS 上传文件的事件实时传递给 ASK 中的服务,而后 ASK 中的服务对上传的 ZIP 文件进行下载、解压和再次回传到 OSS。 用到的云服务: ASK:Serverless 容器服务是一款基于阿里云弹性计算基础架构,同时齐全兼容 Kubernetes 生态,平安、牢靠的容器产品。 EB:EventBridge 事件总线是一款无服务器事件总线服务,反对阿里云服务、自定义利用、SaaS 利用的事件接入,实用于轻松构建松耦合、分布式的事件驱动架构。 OSS:对象存储服务,提供海量、平安、低成本、高牢靠的云存储服务。 场景实际OSS、ASK 以及 EventBridge 三个云产品的操作步骤如下: OSS 资源配置在 OSS 控制台创立相干地区的 Bucket,并记住 Bucket 门路信息。 zip:搁置须要解压的zip包 unzip:搁置解压后的文件 创立一个能够操作 OSS 文件的用户,并生成 ak/sk 。 关上 RAM 控制台[1],点击「创立用户」。 ...

January 12, 2022 · 2 min · jiezi

关于容器:快速学习Docker怎么限制容器可用的CPU

问题Docker是怎么限度容器CPU的?当容器设置--cpus=1时,是限度容器只能应用某一个CPU吗?那当cpus配置为小数时,又是怎么限度的? 实际步骤: 在一台有4个CPU的主机上创立容器时,通过--cpus=2限度容器最多能够应用主机上的2个CPU。通过stress命令创立4个忙碌的过程耗费CPU资源,通过docker stats命令能够看到容器CPU的负载为200%,即单个CPU负载的两倍。在主机上通过top命令,能够看到主机上的CPU应用状况是:4个CPU都是50%。论断Docker限度容器应用CPU,实际上限度的是应用CPU的工夫片,内核通过过程耗费的CPU工夫片来统计出过程占用CPU的百分比。另外:Docker反对通过--cpuset-cpus指定固定的CPU。 参考Docker: 限度容器可用的 CPU

January 12, 2022 · 1 min · jiezi

关于容器:基于-ASK-EB-构建容器事件驱动服务

作者:冬岛、肯梦 导读 EDA 事件驱动架构( Event-Driven Architecture ) 是一种零碎架构模型,它的外围能力在于可能发现零碎“事件”或重要的业务时刻(例如交易节点、站点拜访等)并实时或靠近实时地对相应的事件采取必要口头。那么 EDA + 容器能擦出怎么的火花呢?本篇文章将率领大家一起在云上借助 ASK 容器服务 + EB 能力构建一套残缺的事件驱动架构。 本篇文章以“在线文件解压场景”为例为大家展现经典 EDA 事件驱动与容器如何搭配应用。 关注【Apache RocketMQ】公众号,获取更多相干信息! 服务架构在线文件解压以 EB OSS 事件告诉为驱动点,架构计划如下: EDA 架构的外围是对事件的利用,OSS 事件默认能够通过云服务总线实现采集,自定义告诉事件。本场景是通过 EventBridge 把 OSS 上传文件的事件实时传递给 ASK 中的服务,而后 ASK 中的服务对上传的 ZIP 文件进行下载、解压和再次回传到 OSS。 用到的云服务: ASK:Serverless 容器服务是一款基于阿里云弹性计算基础架构,同时齐全兼容 Kubernetes 生态,平安、牢靠的容器产品。EB:EventBridge 事件总线是一款无服务器事件总线服务,反对阿里云服务、自定义利用、SaaS 利用的事件接入,实用于轻松构建松耦合、分布式的事件驱动架构。OSS:对象存储服务,提供海量、平安、低成本、高牢靠的云存储服务。场景实际OSS、ASK 以及 EventBridge 三个云产品的操作步骤如下: OSS 资源配置在 OSS 控制台创立相干地区的 Bucket,并记住 Bucket 门路信息。 zip:搁置须要解压的zip包 unzip:搁置解压后的文件 创立一个能够操作 OSS  文件的用户,并生成 ak/sk 。关上 RAM 控制台 [1] ,点击「创立用户」。 输出「登陆名称」和「显示名称」并勾选 「Open API 调用拜访」而后点击确定即可创立一个用户身份。 ...

January 6, 2022 · 2 min · jiezi

关于容器:跟着Docker学分层复用思想

作者:三十 起源:恒生LIGHT云社区 Docker是如何组织存储的dokcer在组织存储内容时很奇妙的利用了分层复用的思维。所以咱们能够以此为案例学习一下该思维。 1.镜像分层一个Docker镜像在构建的过程中分了很多层,每一层都是只读的。联合上面例子进行阐明: # syntax=docker/dockerfile:1FROM ubuntu:18.04LABEL org.opencontainers.image.authors="org@example.com"COPY . /appRUN make /appRUN rm -r $HOME/.cacheCMD python /app/app.py这个Dockerfile中会有4条指令扭转了文件系统并创立了新层。 FROM指令从ubuntu:18.04的镜像中创立了根底层。LABEL指令仅仅批改了镜像的元数据,不会创立新层。COPY指令将执行本次构建的当前目录中的内容增加到镜像当中,会创立一个新层记录扭转。第一个RUN指令,构建了程序并将后果输入到镜像中,会创立一个新层记录扭转。第二个RUN指令,删除了缓存目录,会创立一个新层记录扭转。CMD指令定义了容器中运行的指令,只是批改了镜像的元数据,并不会创立新层。这里每层都只记录与其上一层的不同。当咱们创立一个容器的时候,这是就会创立一层可写层,也叫容器层。对于正在运行中的容器的内容的变动都会记录在该层中。下图形容了该关系: 2.容器分层容器和镜像的不同次要是最顶层的可写层的不同,所有对于容器的写操作都会记录在这层中,如果容器被删除,那么这个可写层也会被删除,然而镜像会被保留。 留神:如果想要多个容器共享雷同的数据,能够通过Docker Volumes实现。 每个容器都有其本人的可写层,所有的变换都会被寄存在其中,所以多个容器可共享同一个镜像。下图形容了该关系: 留神 :此处还有个细节,多个镜像可能共用雷同的层,比方两个镜像中有雷同的层,那么在构建或是拉取的时候发现本地以存在,则不会再次构建或拉取。所以计算镜像大小的时候,不能仅通过 docker images命令显示出的大小来汇总求和,该值有可能大于理论值。 3.容器在磁盘占用的空间能够通过 docker ps -s命令,来看正在运行中的容器占用的空间(局部值)。两个列的不同代表的内容: size: 容器的可写层占用的磁盘大小virtual size: 蕴含了容器可写层和只读镜像的大小。容器占用磁盘空间的其它路径: 容器产生的日志文件。应用Volume和bind mounts挂载的内容。容器的配置文件内存中的内容(如果开启了swapping)Checkpoints(如果应用了该性能)4.Copy-on-Write(CoW)策略Docker中的存储驱动都是采纳该策略。 CoW策略可能最大效率的共享和复制文件。如果一个文件在镜像的更低层存在,那么其下层(包含可写层)须要读取该内容则能够间接应用该文件。当须要对其进行批改时,会复制该文件到该层并进行批改。这最大限度的缩小了IO和每个后续层的大小。 4.1共享使镜像更小当咱们应用 docker pull拉取镜像或是应用一个本地没有的镜像创立容器的时候,该镜像会被分层的存储到本地Dockers存储区域中。在linux中通常是 /var/lib/docker。 咱们能够去 /var/lib/docker/<storage-driver>目录下看咱们已拉取各层镜像。比方应用 overlay2存储驱动。 这么多层,咱们能够通过 docker image inspect来查看某个镜像蕴含哪些层 docker image inspect --format "{{json .RootFS.Layers}}" redisdocker image inspect --format "{{json .RootFS.Layers}}" mysql:5.7 通过下面查看咱们能够看到redis和mysql5.7使用了同一层,这样共享雷同层就大大节俭了存储镜像的空间,同时也晋升了拉取镜像的速度 。 咱们能够通过 docker image history命令来查看镜像分层状况,以redis为例 ...

December 31, 2021 · 1 min · jiezi

关于容器:Docker-大势已去Podman-即将崛起

Podman 简介什么是Podman? Podman 是一个开源的容器运行时我的项目,可在大多数 Linux 平台上应用。Podman 提供与 Docker 十分类似的性能。正如后面提到的那样,它不须要在你的零碎上运行任何守护过程,并且它也能够在没有 root 权限的状况下运行。 Podman 能够治理和运行任何合乎 OCI(Open Container Initiative)标准的容器和容器镜像。Podman 提供了一个与 Docker 兼容的命令行前端来治理 Docker 镜像。 Podman 官网地址:https://podman.io/ Podman和Docker的次要区别是什么?dockers在实现CRI的时候,它须要一个守护过程,其次须要以root运行,因而这也带来了安全隐患。podman不须要守护程序,也不须要root用户运行,从逻辑架构上,比docker更加正当。在docker的运行体系中,须要多个daemon能力调用到OCI的实现RunC。在容器治理的链路中,Docker Engine的实现就是dockerddaemon,它在linux中须要以root运行,dockerd调用containerd,containerd调用containerd-shim,而后能力调用runC。顾名思义shim起的作用也就是“垫片”,防止父过程退出影响容器的运训podman间接调用OCI,runtime(runC),通过common作为容器过程的管理工具,但不须要dockerd这种以root身份运行的守护过程。在podman体系中,有个称之为common的守护过程,其运行门路通常是/usr/libexec/podman/conmon,它是各个容器过程的父过程,每个容器各有一个,common的父则通常是1号过程。podman中的common其实相当于docker体系中的containerd-shim。 图中所体现的事件是,podman不须要守护过程,而dorker须要守护过程。在这个图的示意中,dorcker的containerd-shim与podman的common被归在Container一层。 Podman的应用与docker有什么区别?podman的定位也是与docker兼容,因而在应用下面尽量凑近docker。在应用方面,能够分成两个方面来说,一是零碎构建者的角度,二是使用者的角度。 在零碎构建者方面,用podman的默认软件,与docker的区别不大,只是在过程模型、过程关系方面有所区别。如果习惯了docker几个关联过程的调试办法,在podman中则须要适应。能够通过pstree命令查看过程的树状构造。总体来看,podman比docker要简略。因为podman比docker少了一层daemon,因而重启的机制也就不同了。 在使用者方面,podman与docker的命令根本兼容,都包含容器运行时(run/start/kill/ps/inspect),本地镜像(images/rmi/build)、镜像仓库(login/pull/push)等几个方面。因而podman的命令行工具与docker相似,比方构建镜像、启停容器等。甚至能够通过alias docker=podman能够进行替换。因而,即使应用了podman,依然能够应用docker.io作为镜像仓库,这也是兼容性最要害的局部。 Podman 常用命令容器podman run 创立并启动容器podman start #启动容器podman ps #查看容器podman stop #终止容器podman restart #重启容器podman attach #进入容器podman exec #进入容器podman export #导出容器podman import #导入容器快照podman rm #删除容器podman logs #查看日志镜像podman search #检索镜像docke pull #获取镜像podman images #列出镜像podman image Is #列出镜像podman rmi #删除镜像podman image rm #删除镜像podman save #导出镜像podman load #导入镜像podmanfile #定制镜像(三个) podman build #构建镜像 podman run #运行镜像 podmanfile #罕用指令(四个) COPY #复制文件 ADD #高级复制 CMD #容器启动命令 ENV #环境变量 EXPOSE #裸露端口部署 Podman//装置podman[root@localhost ~]# yum -y install podman//仓库配置[root@localhost ~]# vim /etc/containers/registries.conf[registries.search]registries = ['registry.access.redhat.com', 'registry.redhat.io', 'docker.io'] //这个是查找,从这三个中央查找,如果只留一个,则只在一个源里查找unqualified-search-registries = ["registry.fedoraproject.org", "registry.access.redhat.com", "registry.centos.org", "docker.io"] //这里也要改为一个[registries.insecure]registries = [10.0.0.1] //这里写那些http的仓库,比方harbor//配置加速器[registries.search]registries = ['https://l9h8fu9j.mirror.aliyuncs.com','docker.io']应用 Podman应用 Podman 十分的简略,Podman 的指令跟 Docker 大多数都是雷同的。上面咱们来看几个罕用的例子: ...

December 24, 2021 · 5 min · jiezi

关于容器:容器虚拟化网络漫谈上

当咱们装置好 Docker 后,它会为咱们解决好所有与网络虚拟化无关的事,但在这背地,Docker 实际上是利用了多个 Linux 提供的个性来实现这所有,这也是当初 Docker 刚公布时被批评为「新瓶装旧酒」的起因,因为实际上 Docker 只是包装了操作系统的能力并提供了一套易用的 API,并没有创造什么新货色。 ps: 当然我并不批准这个观点 :)这篇文章中会大量应用 ip 这个命令,ip 命令来自于 iproute2 包,个别零碎会默认装置,如果没有的话,请自行装置,此外 ip 命令因为须要批改零碎网络设置所以须要 root 权限,所以请不要在生产环境或者重要的零碎中尝试,以防产生预期外的谬误。 一、Linux NamespaceNamespace 是 Linux 提供的一种对于零碎全局资源的隔离机制;从过程的视角来看,同一个namespace中的过程看到的是该namespace本人独立的一份全局资源,这些资源的变动只在本 namespace 中可见,对其余namespace没有影响。Docker 就是采纳namespace 机制实现了对网络,过程空间等的隔离。不同的 container属于不同namespace,实现了container 之间的资源相互隔离,互不影响。 通过 namespace 能够隔离容器的过程 PID、文件系统挂载点、主机名等多种资源。不过咱们明天只关注网络 namespace,简称 netns。它能够为不同的命名空间从逻辑上提供独立的网络协议栈,具体包含网络设备、路由表、arp表、iptables、以及套接字(socket)等。使得不同的网络空间就都如同运行在独立的网络中一样。 首先咱们先尝试创立一个新的的 netns: ip netns add netns1接下来咱们检查一下这个 netns 的路由表、Iptables及网络设备等信息: [root@centos ~]$ ip netns exec netns1 routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface[root@centos ~]$ ip netns exec netns0 iptables -LChain INPUT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target prot opt source destinationChain OUTPUT (policy ACCEPT)target prot opt source destination[root@centos ~]$ ip netns exec netns1 ip link list1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00能够看到,因为是新创建的 netns,以上所有信息都为空,只存在一个状态为 down 的 lo 设施 ...

December 22, 2021 · 8 min · jiezi

关于容器:Docker汇总

留神:这里倡议装置在CentOS7.x以上的版本,在CentOS6.x的版本中,装置前须要装置其余很多的环境而且Docker很多补丁不反对更新。 Docker筹备及装置yum 包更新到最新 sudo yum update -y装置须要的软件包, yum-util 提供yum-config-manager性能,另外两个是devicemapper驱动依赖的 sudo yum install -y yum-utils device-mapper-persistent-data lvm2设置yum源为阿里云 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo装置docker后查看 sudo yum install docker-ce -y;docker -v;配置镜像减速设置docker配置文件docker装置后默认没有daemon.json这个配置文件,须要进行手动创立。配置文件的默认门路:/etc/docker/daemon.json mkdir -p /etc/docker;cd /etc/docker;vi daemon.json;Docker 官网和国内很多云服务商都提供了国内加速器服务,例如:网易:https://hub-mirror.c.163.com七牛云加速器(举荐):https://reg-mirror.qiniu.com {"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]}#重新启动服务systemctl daemon-reload;systemctl restart docker;#查看减速是否失效docker info;Docker的启动与进行systemctl 命令是零碎服务管理器指令#启动dockersystemctl start docker#进行dockersystemctl stop docker#重启dockersystemctl restart docker#查看docker状态systemctl status docker#开机启动systemctl enable docker#查看docker概要信息docker info#查看docker帮忙文档docker --help镜像查看镜像 docker images#字段解释REPOSITORY:镜像名称TAG:镜像标签IMAGE ID:镜像IDCREATED:镜像的创立日期(不是获取该镜像的日期)SIZE:镜像大小这些镜像都是存储在Docker宿主机的/var/lib/docker目录下搜寻镜像 #如果你须要从网络中查找须要的镜像,能够通过以下命令搜寻docker search 镜像名称#字段解释NAME:仓库名称DESCRIPTION:镜像形容STARS:用户评估,反馈一个镜像的受欢迎水平OFFICIAL:是否官网AUTOMATED:主动构建,示意该镜像由Docker Hub主动构建流程创立的拉取镜像 #拉取镜像就是从地方仓库中下载镜像到本地docker pull 镜像名称#例如,我要下载centos7镜像docker pull tutum/centos删除镜像 #按镜像ID删除镜像docker rmi 镜像ID#删除所有镜像docker rmi `docker images -q`容器查看容器 ...

December 22, 2021 · 2 min · jiezi

关于容器:让容器跑得更快CPU-Burst-技术实践

简介:让人厌恶的 CPU 限流影响容器运行,有时人们不得不就义容器部署密度来防止 CPU 限流呈现。咱们设计的 CPU Burst 技术既能保障容器运行服务质量,又不升高容器部署密度。CPU Burst 个性已合入 Linux 5.14,Anolis OS 8.2、Alibaba Cloud Linux2、Alibaba Cloud Linux3 也都反对 CPU Burst 个性。 作者:常怀鑫、丁天琛 让人厌恶的 CPU 限流影响容器运行,有时人们不得不就义容器部署密度来防止 CPU 限流呈现。咱们设计的 CPU Burst 技术既能保障容器运行服务质量,又不升高容器部署密度。CPU Burst 个性已合入 Linux 5.14,Anolis OS 8.2、Alibaba Cloud Linux2、Alibaba Cloud Linux3 也都反对 CPU Burst 个性。 在 K8s 容器调度中,容器的 CPU 资源下限是由 CPU limits 参数指定。设置 CPU 资源下限能够限度个别容器耗费过多的 CPU 运行工夫,并确保其余容器拿到足够的 CPU 资源。CPU limits 限度在 Linux 内核中是用 CPU Bandwidth Controller 实现的,它通过 CPU 限流限度 cgroup 的资源耗费。所以当一个容器中的过程应用了超过 CPU limits 的资源的时候,这些过程就会被 CPU 限流,他们应用的 CPU 工夫就会受到限制,过程中一些要害的提早指标就会变差。 ...

December 20, 2021 · 3 min · jiezi

关于容器:让容器跑得更快CPU-Burst-技术实践

作者:常怀鑫、丁天琛 **让人厌恶的 CPU 限流影响容器运行,有时人们不得不就义容器部署密度来防止 CPU 限流呈现。咱们设计的 CPU Burst 技术既能保障容器运行服务质量,又不升高容器部署密度。CPU Burst 个性已合入 Linux 5.14,Anolis OS 8.2、Alibaba Cloud Linux2、Alibaba Cloud Linux3 也都反对 CPU Burst 个性。在 K8s 容器调度中,容器的 CPU 资源下限是由 CPU limits 参数指定。设置 CPU 资源下限能够限度个别容器耗费过多的 CPU 运行工夫,并确保其余容器拿到足够的 CPU 资源。CPU limits 限度在 Linux 内核中是用 CPU Bandwidth Controller 实现的,它通过 CPU 限流限度 cgroup 的资源耗费。所以当一个容器中的过程应用了超过 CPU limits 的资源的时候,这些过程就会被 CPU 限流,他们应用的 CPU 工夫就会受到限制,过程中一些要害的提早指标就会变差。 面对这种状况,咱们应该怎么办呢?个别状况下,咱们会联合这个容器日常峰值的 CPU 利用率并乘以一个绝对平安的系数来设置这个容器的 CPU limits ,这样咱们既能够防止容器因为限流而导致的服务质量变差,同时也能够兼顾 CPU 资源的利用。举个简略的例子,咱们有一个容器,他日常峰值的 CPU 使用率在 250% 左右,那么咱们就把容器 CPU limits 设置到 400% 来保障容器服务质量,此时容器的 CPU 利用率是 62.5%(250%/400%)。 ...

December 15, 2021 · 3 min · jiezi

关于容器:对容器镜像的思考和讨论

阿里云OPSX镜像站:https://developer.aliyun.com/mirror/?utm_content=g_1000303593 前言常言道,startup 有 startup 的好,大厂有大厂的好,那么大厂到底好在哪呢?拿硅谷老牌大厂们 FLG 来说,如果要问最令人思念的是什么?Free food 和基础设施(Infrastructure)肯定是会上榜的,两者均极大晋升了宽广利用开发者的幸福指数。那么能不能“让天下没有难做的利用”呢?请大家把眼光投向正在衰亡的云原生生态。 在云原生生态中,容器服务包含了镜像和容器引擎两个局部。其中容器镜像作为外围的云原生利用制品,打包了残缺的操作系统和利用运行环境,利用的迭代也因为应用了这种不可变架构而变得更简略,更频繁。 本文将围绕着容器镜像这一外围,分享它的相干常识和业界的思考与实际。 容器镜像的概念1)容器镜像容器镜像有一个官网的类比,"生存中常见的集装箱",尽管领有不同的规格,但箱子自身是不可变的(Immutable),只是其中装的内容不同。 对于镜像来说,不变的局部蕴含了运行一个应用软件(如 mysql)所须要的所有元素。开发者能够应用一些工具(如 Dockerfile)构建出本人的容器镜像,签名并上传到互联网上,而后须要运行这些软件的人能够通过指定名称(如 example.com/my-app)下载、验证和运行这些容器。 2)OCI 规范镜像标准在 OCI 规范镜像标准出台之前,其实有两套宽泛应用的镜像标准,别离是 appc 和 docker v2.2,但“合久必分,分久必合”,有意思的是两者的内容曾经在各自的倒退中逐渐异化了,所以 OCI 组织因势利导地在 docker v2.2 的根底上推出了 oci image format spec,规定了对于符合规范的镜像,容许开发者只有对容器打包和签名一次,就能够在所有的容器引擎上运行该容器。 这份标准给出了 OCI image 的定义: This specification defines an OCI Image, consisting of a manifest, an image index (optional), a set of filesystem layers, and a configuration.3)容器的工作流程一个典型的容器工作流程是从由 developers 制作容器镜像开始的(build),而后上传到镜像存储核心(ship),最初部署在集群中(run)。 容器镜像技术倒退中遇到的问题不得不说,容器镜像的设计是很出彩的,首先它蕴含了“残缺的操作系统就是一个包”的优良思维,带着大家跳出了安装包的思路,又提出了诸如 dockerfile 这样的晋升开发者体验的 killer features,还能利用分层构造来节约工夫空间。 不过,"金无足赤,人无完人",优良的设计并不等于优良的实际,上面来聊一聊问题具体出在哪。 1. 容器镜像使用者1)问题一:启动容器慢容器启动慢的状况广泛产生在当用户启动一个很大 size 的容器镜像时,因为在容器筹备阶段须要三步(以 overlayfs 为例): ...

November 29, 2021 · 2 min · jiezi

关于容器:Rainbond通过插件整合SkyWalking实现APM即插即用

作者:张震一. 简介SkyWalking 是一个开源可察看性平台,用于收集、剖析、聚合和可视化来自服务和云原生基础设施的数据。反对分布式追踪、性能指标剖析、利用和服务依赖剖析等;它是一种古代 APM,专为云原生、基于容器的分布式系统而设计。 本文整合的指标要达成,运行在Rainbond上的利用,通过开启Rainbond的SkyWalking插件,主动对接SkyWalking Server,灵便开启APM,不须要时敞开插件,实现即插即用的APM。 二. 整合架构SkyWalking对服务进行监控时服须要在被监控服务中启用agent服务,而SkyWalking agent须要配置到利用的启动命令,尽管对利用代码无侵入,但配置过程须要侵入利用。Rainbond通过插件实现对利用的无侵入,将SkyWalking的agent制作成Rainbond的 初始化类型插件,在利用容器启动之前将agent的jar包拷贝到利用容器,利用容器就能加载agent并连贯SkyWalking Server,整个过程对利用容器无侵入,且拓展性强。对接其余APM也能够用相似形式,应用用户通过替换插件实现对接不同的APM工具。 下图展现了在Rainbond中应用SkyWalking对利用进行监控的构造 三. Agent插件实现原理Rainbond插件体系是绝对于Rainbond利用模型的一部分,插件次要用来实现利用容器扩大运维能力。因为运维工具的实现有较大的共性,因而插件自身能够被复用。插件必须绑定到利用容器时才具备运行时状态,用以实现一种运维能力,比方性能剖析插件、网络治理插件、初始化类型插件。 具备运行时的插件的运行环境与所绑定的组件从以下几个方面保持一致: 网络空间 这个一个至关重要的个性,网络空间统一使插件能够对组件网络流量进行旁路监听和拦挡,设置组件本地域名解析等。存储长久化空间 这个个性使得插件与组件之间能够通过长久化目录进行文件替换。环境变量 这个个性使得插件能够读取组件的环境变量。SkyWalking与Rainbond交融的过程中,咱们应用到了初始化类型插件,顾名思义这是一个在利用容器启动前可能进行初始化动作的的插件,其基本原理是利用 Kubernetes 的 init容器 实现的,Pod可能蕴含多个容器,利用运行在这些容器外面,同时Pod也可能有一个或者多个先于利用容器启动的init容器,只有init容器运行胜利后才会运行利用容器,在Rainbond中开明了该类型插件的组件会在利用容器启动之前运行插件中已定义的工作直至实现。所以只需定义在利用容器启动前,应用初始化类型容器将agent所需数据拷贝至对应目录下,这样后续服务则能够间接应用这些数据。 四. 通过Rainbond一键装置SkyWalking咱们已将SkyWalking制作为利用并公布至利用市场,用户可基于开源利用商店一键装置。 装置 Rainbond;在开源利用商店搜寻SkyWalking,点击装置即可一键装置; 3.装置实现,后续可通过Rainbond治理和运维SkyWalking。 SkyWalking 服务端在架构上分为四个局部:探针服务、后端服务、存储服务和 UI: 平台后端(oap-server) 反对数据聚合、剖析和流解决,包含跟踪、指标和日志。存储(elasticsearch-7.13.4) 通过凋谢/可插拔接口存储SkyWalking 数据。反对 ElasticSearch、H2、MySQL、TiDB、InfluxDB。UI(skywalking-ui) 是高度可定制的基于 Web 的界面,容许 SkyWalking 最终用户可视化和治理 SkyWalking 数据。探针(agent) 收集数据并依据 SkyWalking 要求从新格式化数据(不同的探针反对不同的起源)。五. 应用SkyWalking对微服务进行监控事后筹备环境领有一套被监控服务,本文中示例利用为Spring Cloud微服务框架 Pig,咱们已将Spring Cloud-pig制作为利用并公布至利用市场,用户可基于利用市场一键装置。配置服务反对SkyWalking监控部署插件在Rainbond团队界面点击插件后进入插件界面,点击新建插件,创立初始化类型插件 源码地址:https://github.com/goodrain/s... 插件构建胜利后即可应用,为pig服务的各组件开明此插件即可。 挂载存储为pig服务的各组件挂载存储,使其与插件共享该存储。 挂载门路为/tmp/agent,挂载类型为共享存储;该存储为初始化插件及该组件提供共享存储,共享同一份数据。 增加环境变量为pig各组件增加环境变量。 变量解释: 变量值简介-Dskywalking.agent.service_name=**在SkyWalking UI中展现的服务名-Dskywalking.collector.backend_service=Host:PortSkyWalking oap-server的拜访地址,用来接管skywalking trace数据-javaagent:/tmp/agent/skywalking-agent.jar指定须要注入的jar包地址增加环境变量当前更新组件即可失效。 建设依赖关系将须要监控的各组件建设与SkyWalking oap-server服务的依赖关系,使其可能通过127.0.0.1的地址连贯oap-server,具体原理请参考服务间通信;或者开启oap-server的对外地址,在被监控端填写该地址,则无需建设依赖关系。 拜访SkyWalking拜访 skywalking-ui 对外端口,进入可视化界面。 ...

November 29, 2021 · 1 min · jiezi

关于容器:云原生时代下的容器镜像安全上

大家好,我是张晋涛。 Kubernetes 作为云原生的基石,为咱们带来了极大的便利性,越来越多的公司也都将 Kubernetes 利用到了生产环境中。然而,在享受其带来的便利性的同时,咱们也须要关注其中的一些安全隐患。 本篇,我将为你重点介绍容器镜像平安相干的内容。 通常状况下,咱们提到容器镜像平安,次要是指以下两个方面: 镜像本身内容的平安;镜像散发过程的平安;镜像本身内容的平安要聊镜像本身内容的平安,那咱们就须要晓得镜像到底是什么,以及它其中的内容是什么。 镜像是什么咱们以 debian镜像为例,pull 最新的镜像,并将其保留为 tar 文件,之后进行解压: ➜ ~ mkdir -p debian-image➜ ~ docker pull debianUsing default tag: latestlatest: Pulling from library/debian647acf3d48c2: Pull complete Digest: sha256:e8c184b56a94db0947a9d51ec68f42ef5584442f20547fa3bd8cbd00203b2e7aStatus: Downloaded newer image for debian:latestdocker.io/library/debian:latest➜ ~ docker image save -o debian-image/debian.tar debian➜ ~ ls debian-image debian.tar➜ ~ tar -C debian-image -xf debian-image/debian.tar ➜ ~ tree -I debian.tar debian-image debian-image├── 827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc.json├── b331057b5d32f835ac4b051f6a08af6e9beedb99ec9aba5c029105abe360bbda│ ├── json│ ├── layer.tar│ └── VERSION├── manifest.json└── repositories1 directory, 6 files解压实现后,咱们看到它是一堆 json 文件和 layer.tar文件的组合,咱们再次对其中的 layer.tar进行解压: ...

November 27, 2021 · 3 min · jiezi

关于容器:容器服务ACK容器网络文件系统CNFS快速搭建NGINX网站体验有礼

介绍如何在半小时内,通过阿里云容器ACK服务和容器网络文件系统CNFS服务搭建一个简略的弹性、高可用NGINX网站。,11 月 9 日至 11 月 23 日期间,实现部署即可取得“TOMY 多美卡合金车模一辆”。 地址:https://developer.aliyun.com/adc/series/activity/1111 体验指标本文介绍如何在半小时内,通过阿里云容器ACK服务和容器网络文件系统CNFS服务搭建一个简略的弹性、高可用NGINX网站。在实现本文的所有操作后,您将取得一个单网页的网站,用户的申请将会被打散到多个容器节点上,并且依据业务负载主动扩缩容,即便某个容器节点宕机也不会影响用户拜访。另外您还能够将本地编辑的网页疾速更新到网站上。 背景常识本教程应用到的云产品如下: 云服务器ECS 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳固牢靠、弹性扩大的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您洽购IT硬件的后期筹备,让您像应用水、电、天然气等公共资源一样便捷、高效地应用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS继续提供创新型服务器,解决多种业务需要,助力您的业务倒退。 文件存储NAS 阿里云文件存储(Network Attached Storage,简称 NAS)是面向阿里云 ECS 实例、E-HPC 和容器服务等计算节点的文件存储服务。NAS 提供了简略的可扩大文件存储以供与 ECS 配合应用,多个ECS实例能够同时拜访 NAS 文件系统,并且存储容量会随着您增加和删除文件而主动弹性增长和膨胀,为在多个实例或服务器上运行的工作负载和应用程序提供通用数据源。 容器服务Kubernetes版 阿里云容器服务Kubernetes版ACK(Alibaba Cloud Container Service for Kubernetes)是寰球首批通过Kubernetes一致性认证的服务平台,提供高性能的容器利用治理服务,反对企业级Kubernetes容器化利用的生命周期治理,让您轻松高效地在云端运行Kubernetes容器化利用。 容器网络文件系统CNFS 传统的共享文件系统存在短少容量配额的准确管制、无奈复原误删文件、缺失存储卷容量性能等监控指标、无平安加密及小文件读写提早等问题。阿里云容器服务ACK推出了容器网络文件系统CNFS晋升NAS文件系统的性能,QoS管制。阿里云容器服务应用容器网络文件系统CNFS(Container Network File System),将阿里云的文件存储形象为一个K8s对象(CRD)进行独立治理,包含创立、删除、形容、挂载,监控及扩容等运维操作。 本教程七个步骤,实现前六个步骤即可实现弹性高可用的NGINX网站,最初两个步骤验证网站的弹性和高可用属性。 步骤一:创立资源步骤二:挂载文件系统NAS到ECS服务器步骤三:上传文件到NAS步骤四:应用CNFS托管NAS文件系统步骤五:创立NGINX利用步骤六:拜访测试网站步骤七:验证服务高可用步骤八:验证弹性扩缩容网站整体架构如下图: 体验筹备体验需应用本人的账户开明以上服务ECS资源地址 挂载文件系统NAS到ECS服务器阿里云文件存储NAS是一个可共享拜访,弹性扩大,高牢靠,高性能的分布式文件系统。它能够为容器提供长久化的存储服务。在接下来的操作里,您的网页文件将会被保留在NAS文件系统中,当容器pod被创立后即可间接调用NAS里的文件,并且在pod被销毁后,NAS里的文件也会持续留存。 1.双击关上虚构桌面的Firefox ESR浏览器,在RAM用户登录框中点击“下一步”,复制云产品资源列表中子用户明码,粘按CTRL+V把明码粘贴到明码输区,登陆子账户(后续在远程桌面里的粘贴操作均应用CTRL + V快捷键)。2.复制以下NAS文件系统控制台地址,在FireFox浏览器关上新页签,粘贴并拜访NAS文件系统控制台。https://nasnext.console.aliyu...3.在概览页面中,单击文件系统>文件系统列表。 4.在文件系统列表页面,切换到资源所在地区。阐明 : 参考如下图片切换地区到华北2(北京)。 5.在文件系统列表页面,单击指标NAS实例文件系统ID。 6.在文件系统详情页,单击挂载应用。 7.在挂载应用页签, 单击指标挂载点操作列的挂载。 8.在挂载到ECS对话框,ECS实例抉择云产品资源列表中的ECS实例,挂载门路设置为/mnt,单击挂载。 返回如下页面,待挂载状态为已挂载,示意NAS已胜利挂载到ECS上。 上传文件到NAS应用ACK集群搭建NGINX服务后,在您关上网站首页时,容器就会从NAS文件系统中读取这一步上传的网页文件,返回给浏览器。在网站搭建实现后,您能够通过同样的办法更新NAS里的文件。 1、点击浏览器右侧 ,切换至Web Terminal。 ...

November 12, 2021 · 2 min · jiezi

关于容器:阿里云ECI如何6秒扩容3000容器实例

简介: 2021年云栖大会现场,阿里云工程师演示了在6秒工夫内胜利启动3000个ECI,并全副进入到Running状态。本文将为你揭开阿里云ECI是如何做到极速扩容的。 引言 依据最新CNCF报告,有超过90%的用户在生产环境应用容器,并且有超过80%的用户通过Kubernetes治理容器。是不是咱们的生产环境上了K8s就完满解决了利用部署的问题?IT界有句俗语,没有什么是万能的,K8s也不是万能的,K8s解决了利用的编排和调度,但没有解决资源容量的限度、没有解决容器的平安隔离,以及昂扬的运维老本。 传统K8s的问题和窘境资源效率低 这个资源柱状图来自阿里云一个客户,业务的流量高峰期CPU大略在7000-8000核,在流量低谷期只有几百核CPU的应用。如果在做IT布局或者购买资源时,依照峰值流量去布局资源,会导致重大的资源节约。但如果依照使用量去实时布局ECS资源,又会导致在面对一些突发流量时无奈及时扩容,影响服务的稳定性。 资源隔离弱容器应用零碎内核的namespace进行资源隔离,但内核仅反对UTS、IPS等6种namespace隔离。咱们遇到过一个客户,须要在测试环境批改某个业务Docker的工夫,后果导致一台机器上所有的容器工夫都被批改。还有定制内核参数、IO偏心分享等场景,也有雷同的问题。 同时,容器平安也始终被大家诟病,例如特权容器间接能够看到机器上所有的磁盘数据。 运维老本高云原生为IT带来了很多便当,但同时云原生也让整个IT运维变得越来越简单。一个K8S容器集群,至多须要部署高可用Master、网络插件、镜像仓库、日志服务,以及监控组件。即使辛苦把这些组件装置实现,也要面对后续每天各种运维、告警的解决,运维每天是各种的救火。 阿里云弹性容器实例ECI应运而生有没有一种免运维、并且可能按需应用的平安的容器解决方案呢?阿里云弹性容器实例应运而生了。 阿里云弹性容器实例(简称ECI,Elastic Container Instance)是阿里云联合容器和Serverless技术提供的容器运行服务。通过应用ECI,在阿里云上部署容器时,无需购买和治理云服务器ECS,能够间接在阿里云上运行Pod和容器,省去了底层服务器的运维和管理工作。简略来说,一个ECI就是一个Pod,能够被K8s编排和调度。 阿里云弹性容器实例特地实用于突发的业务流量,或者短周期的工作运行。那么ECI和客户本人去购买ECS,在ECS里运行Docker有什么区别呢?最大的区别在于如果应用ECI,整个容器的运行时会将由阿里云来运维。 ECI有以下长处: 底层资源由阿里云托管,用户不再须要治理底层VM(虚拟机)。复用整个阿里云的弹性计算资源池,保障短缺的库存。低成本,按秒计费,从Pod开始创立时免费。启动快,秒级启动底层平安沙箱。兼容性强,齐全兼容K8s。阿里云弹性容器实例采纳社区的Virtual Kubelet计划与K8s集成,当集群内有Pod创立并调度到Virtual Kubelet时,Kubelet就会调用ECI接口,启动ECI。 ECI与业务零碎的对接形式包含: (举荐)通过阿里云容器服务Serverless Kubernetes(ASK)部署业务,提供无需运维的Kubernetes集群能力,底层Pod资源全副应用ECI承载。(举荐)通过阿里云容器服务Kubernetes(ACK)部署业务,为ACK集群提供额定的海量弹性能力。通过Virtual Node对接用户在ECS上自建的Kubernetes集群,提供方便快捷的弹性计算资源。通过Virtual Node对接用户在线下IDC自建的Kubernetes集群,提供云上的有限弹性计算能力。通过OpenAPI间接对接业务零碎,低成本的随时创立或开释ECI业务容器。 ECI极速启动实例:6秒钟3000个容器实例在2021年云栖大会现场,阿里云Serverless容器服务弹性容器实例公布了极速启动实例新个性。弹性容器实例在解决上述利用部署问题的根底上,翻新的提供极速启动的产品个性。现场演示了在6秒工夫内胜利启动3000个ECI,并全副进入到Running状态。 阿里云是如何做到6秒钟启动3000个容器实例? 一方面,通过大量用户级别的创立历史数据,利用机器学习找出用户创立Pod的法则,通过预测预调度、资源复用等伎俩,节俭ECI的调度、创立工夫,同时应用了阿里云袋鼠沙箱容器作为引擎,辅以overlay网络、存储计划,将单ECI实例冷启动工夫压缩到了3秒以下,针对袋鼠引擎后续会有专门文章进行具体的介绍,也敬请大家期待。 另一方面,在镜像拉取维度,通过镜像缓存把容器镜像做成快照,免去每次启动Pod拉取容器镜像的动作,例如阿里云的达摩院AI团队局部镜像能够达到几百G,如果依照传统形式拉取须要十几分钟,通过ECI的镜像缓存计划能够实现Pod秒级启动。 展望未来阿里云弹性容器实例提供了从Runtime、GuestOS、底层计算、网络、存储资源的免运维全托管服务,并在2021年云栖大会上公布了极速的实例启动速度,帮忙客户快捷的实现业务零碎扩缩容。 随着云厂商服务边界的进一步上移,ECI冀望通过规模化、集约化的资源调度和端到端的Runtime设计,提供相比客户自建容器资源池更好的弹性、性能和老本能力,这将是将来1-2年阿里云弹性容器实例继续摸索的方向。 原文链接本文为阿里云原创内容,未经容许不得转载。

November 11, 2021 · 1 min · jiezi

关于容器:跨越行业绊脚石阿里云函数计算发布-7-大技术突破

简介: 2021 云栖大会现场,阿里巴巴研究员、阿里云智能云原生利用平台总经理 丁宇(叔同)重磅公布了函数计算的 7 大技术创新和冲破,减速古代利用架构的变革。 Serverless 的实质是通过屏蔽底层的计算资源,来实现业务层开发的专一度和自由度。但越是往上形象,云厂商在底层的实现就越是简单。函数计算将服务进一步拆分到函数的颗粒度,这势必会给开发、运维、交付等带来新的挑战,例如如何对函数进行端云联调、如何对函数进行可观测和调试、如何优化 GB 级别的镜像冷启动?这些以往在服务的颗粒度时,都不是问题的事件,成了 Serverless 大规模落地企业外围生产业务的绊脚石。 2021 云栖大会现场,阿里巴巴研究员、阿里云智能云原生利用平台总经理 丁宇(叔同)重磅公布了函数计算的 7 大技术创新和冲破,减速古代利用架构的变革。 Serverless Devs 2.0:业内首发 Desktop,反对端云联调、多环境部署开源近一年, Serverless 开发者平台 Serverless Devs 2.0 版本正式公布。相比 1.0 ,2.0 在性能、应用体验实现全方位晋升,业内首发桌面客户端 Serverless Desktop,对桌面客户端进行了精密设计兼具美感和实用主义,具备更强的企业级服务能力。 作为业内首个反对支流 Serverless 服务/框架的云原生全生命周期治理的平台,Serverless Devs 致力于为开发者打造 Serverless 利用开发一站式服务,Serverless Devs 2.0 提出多模式调试计划,包含买通线上线下环境;本地对接线上环境并进行调试的端云联调计划、本地间接进行开发态调试的本地调试计划、以及云端运维态调试的在线调试/近程调试计划等。新版本减少多环境部署部署能力,Serverless Devs 2.0 已反对一键部署框架 30 余种,包含 Django,Express,Koa,Egg,Flask,Zblog,Wordpress 等。 业内首发实例级别可观测和调试实例是函数资源最小的可被调度的原子单位,类比容器的 Pod。Serverless 将异构根底资源高度形象,因而“黑盒问题”是 Serverless 大规模遍及的外围落地之痛。业内同类产品均没有透出“实例”概念,也从未在可观测性能中将 CPU、内存等指标透出,但可观测就是开发者的眼睛,没有可观测,何谈高可用呢? 函数计算重磅公布实例级别可观测能力,对函数实例进行实时监控和性能数据采集,并进行可视化展现,为开发者提供函数实例端到端的监控排查门路。通过实例级别指标,您能够查看 CPU 和内存应用状况、实例网络状况和实例内申请数等外围指标信息,让“黑盒”不黑。同时,函数计算将通过凋谢局部实例登录权限,做到既能观测,还能调试。 业内首发固定数量、定时、水位主动伸缩的实例预留策略函数计算冷启动受到多个因素影响:代码和镜像大小、启动容器、语言运行时初始化、过程初始化、执行逻辑等,这依赖用户和云厂商的双向优化。云厂商会主动为每个函数调配最合适的实例数量,并进行平台侧的冷启动优化。但对于某些在线业务时延十分敏感,云厂商无奈代替用户进行更深层的业务优化,如对代码或依赖进行精简、编程语言的抉择、过程的初始化、算法优化等。 业内同类产品广泛是采纳预留固定实例数量的策略,即让用户配置 N 个并发值,除非手动调整,否则在调配了 N 个实例后不会再伸或者缩。这种计划只解决了局部业务高峰期的冷启动延时,但大大增加了运维老本和资源老本,对红包大促等带有不定期峰谷的业务,其实并不敌对。 因而,函数计算率先将局部实例资源的调度权限授予用户,容许用户通过固定数量、定时伸缩、按水位伸缩、混合伸缩等多维度的实例预留策略,来预留适量函数实例,别离满足业务曲线绝对安稳(如 AI/ML 场景)、峰谷时间段明确(如游戏互娱、在线教育、新批发等场景)、突发流量无奈预估(如电商大促、广告等场景)、业务混淆(如 Web 后盾、数据处理等场景)等不同场景的诉求,从而升高冷启动对时延敏感型业务的影响,真正实现弹性和性能兼顾的终极目标。 ...

November 1, 2021 · 1 min · jiezi

关于容器:阿里云容器服务多项重磅发布高效智能安全无界的新一代平台

简介: 在云原生带来的云计算将来趋势下,容器曾经成为用户应用云的新界面。阿里云容器产品公布近 7 年以来,已成长倒退为企业的云原生操作系统,技术和服务能力日趋成熟,但翻新从未止步。日前,阿里云研究员 & 云原生团队负责人丁宇在阿里云计算峰会上发表容器服务 ACK 全面降级 ACK Anywhere,这一重要降级意味着 ACK 有能力在企业任何须要云的中央,提供对立的容器基础设施能力。 2021 年 10 月 21 日,在云栖大会·云原生峰会现场,阿里云资深技术专家、容器服务负责人易立深度分享了阿里云在容器技术畛域的最新进展与摸索,以及 ACK Anywhere 背地的思维及落地能力,同时发表多项重要降级和全新公布,使阿里云容器服务全面倒退为高效、平安、智能、无界的下一代云原生操作系统。 易立,阿里云资深技术专家、容器服务研发和产品负责人 逾越鸿沟,容器减速云原生普惠阿里云对云原生的定义是“应云而生”的软件、硬件和架构。容器技术和服务能够为企业业务倒退带来三大外围价值: 麻利高效。通过容器能够更好的反对 DevOps,优化研发和交付流程,同时晋升利用的弹性与资源效率,使企业 IT 架构从容应对环境变动,升高计算成本;增强韧性。容器能够升高用户迁云老本,同时更好地撑持微服务利用架构的部署与交付,使基础设施和利用架构具备更强的韧性,更好地爱护业务的连续性;减速交融翻新。越来越多的新技术,如 5G、AIoT、AR/VR 等,正在减速数字世界跟物理世界的交融。而无处不在的容器技术可能减速这样的交融计算新形态。 阿里云容器服务撑持了团体 100% 利用的云原生化,同时为云上上万企业实现现代化利用革新降级提供降级服务。从互联网到批发、金融、制作、交通,越来越多的行业在利用翻新的云原生技术解决他们的业务问题。与此同时,容器也在撑持着更多行业场景翻新,比方在智能驾驶畛域,仿真模仿须要海量的算力。只有云计算与云原生技术可能满足业务算力的弹性、规模和效率的需要。 六大降级,开释容器技术极致潜能优化资源调度能力,全面反对新一代云原生芯片 阿里云往年重磅公布第 7 代弹性计算实例,笼罩了从 Intel、AMD 到 ARM 全新一代云原生芯片,使单节点计算密度继续晋升、单核计算成本继续降落。另一方面,随着利用部署密度减少,必然带来利用对 CPU 资源的争抢、跨 NUMA 内存拜访等问题继续重大,导致计算效力升高。 为此,阿里云容器服务 ACK Pro 针对新一代云原生芯片优化了资源调度,能够更好地依据芯片外围架构优化过程和布局,晋升缓存命中率,升高跨 NUMA 内存拜访,在内存密集型场景下实现 20% 至 30% 的性能晋升。 同时,阿里云容器服务正在与 Intel 单干,独特打造软硬一体化的资源隔离保障计划,通过引入 RDT,HWDRC 等技术能够依据利用的 QoS 动静调整 L3 缓存带宽,将低优先级工作对高优先级工作的影响管制在 5% 以内,让多种利用负载的混布具备更高稳定性。 软硬协同、一体优化的新一代容器网络立体 阿里云容器网络 Terway 带来全新一代容器网络立体降级。通过与阿里云洛神网络深度交融,基于神龙芯片 offload 虚拟化网络开销,并在 OS 内核中通过 eBPF 实现容器 Service 转发和网络策略,真正实现零损耗、高性能。相比Flannel等开源容器网络计划,在小包压测场景中 Terway 吞吐量晋升 30%,报文提早降落 50%。 ...

October 27, 2021 · 2 min · jiezi

关于容器:在Openjdk-8-中如何合理使用容器-memory-资源

 前言将 Java 利用容器化尽管更好地解决了可移植性问题,但也存在着一些不敌对的状况,比方低版本的JDK(低于Java 8u131)并不能辨认 CGroup 资源限度。这将导致JVM读取的是宿主机的全副CPU和内存,一但容器应用资源超过限度则会被 docker 杀死。 在 kubernetes 中,咱们会显示在 yaml 文件中配置CPU、内存申请和限度,咱们心愿容器中的JVM过程可能自动识别到 CGroup 资源限度,获取到正确的内存和CPU信息从而自行动静调整。 JVM 参数配置以下操作皆在一台 4C 16G 服务器上进行。 版本低于 8u131JDK 版本低于 8u131 版本的 JVM 不会自动识别到 CGroup 资源限度,须要手动设置初始堆大小以及最大堆大小,否则会依照宿主机的全副内存设置默认值: 配置最大堆大小 -Xmx,默认值:内存的1/4配置初始堆大小 -Xms,默认值:内存的1/64未配置JVM参数能够看到 Max. Heap Size (Estimated): 3.48G,未能正确辨认 CGroup 资源限度 $ docker run --rm -m 2GB openjdk:8u121-alpine java -XshowSettings:vm -versionVM settings: Max. Heap Size (Estimated): 3.48G Ergonomics Machine Class: server Using VM: OpenJDK 64-Bit Server VMopenjdk version "1.8.0_121"OpenJDK Runtime Environment (IcedTea 3.3.0) (Alpine 8.121.13-r0)OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)配置JVM参数配置 -Xmx 和 -Xms 后即可达到咱们想要的后果 ...

October 18, 2021 · 2 min · jiezi

关于容器:活动-连续-3-天企业容器应用实战营上海站来啦

作为云原生技术倒退的基石,以容器、Kubernetes 为代表的技术屏蔽了基础设施差别,作为底座推动了以利用为核心的混合云 2.0 架构到来,满足了用户诉求。同时企业在经营效率、研发效率、运行老本以及零碎容错性、可维护性等方面,也提出了更高的要求。 在阿里巴巴云原生化的历程中,简单的业务类型、大规模化利用场景成为了其促成云原生技术创新演进,减速云原生成长的最好土壤。同时,阿里云也将云原生大规模生产落地最佳实际积淀下来,以开源的形式奉献给社区,促成云原生生态的倒退和凋敝。 为了帮忙企业和开发者在云原生和容器化利用的摸索过程上少走弯路,2021 年 10 月 14 日-16 日,阿里云容器服务团队将来到上海,间断 3 天,面向企业客户、生态搭档和开源开发者,围绕入手体验、场景摸索、开源实际分享发展线下流动,推动更多企业和开发者成为云原生“实战派”。 DAY 1 云原生容器手动实际面向对象:企业容器用户参加形式:定向邀请(闭门)工夫:2021 年 10 月 14 日 09:00-18:00地点:上海徐汇西岸阿里核心 云原生趋势下,利用容器化正在快速增长,Kuberntes 已成为云原生时代新的基础设施。整体规划上,如何设计一套高效稳固企业级容器计划?在落地 K8s 时,都有哪些不可漠视的技术问题?本次,阿里云诚挚邀请各位关注容器的企业,光临阿里上海园区一起入手体验,基于神龙服务器搭建您的云上容器平台。 DAY 2 “原启打算”云原生生态特训营面向对象:阿里云云原生生态搭档 参加形式:定向邀请(闭门)工夫:2021 年 10 月 15 日 09:30-17:00地点:上海市浦东新区南泉北路 447 号 Kubernetes 曾经无处不在,容器正在和更多技术畛域相结合,为企业业务翻新开释更大价值。当容器遇到 Serverless,将有哪些新的利用场景期待咱们摸索? DAY 3 KubeMeet 开发者沙龙:云原生利用治理面向对象:Kubernetes 开发者参加形式:凋谢报名,限额100人工夫:2021 年 10 月 16 日 13:00-18:00地点:上海徐汇西岸国内人工智能核心 7 楼百鸣山庄 随同着 Kubernetes 生态逐步完善,越来越多的大型互联网终端企业开始退出到云原生梯队中,云原生利用治理与交付正在成为 Kubernetes 之上重要的价值聚焦点。10 月 16 日,KubeMeet 将来到上海,分享在混合云趋势下,如何基于 OAM/KubeVela、OpenKruise、OCM 等开源我的项目,帮忙企业和开发者应答云原生利用治理痛点。 10 月 16 日 【KubeMeet 开发者沙龙·云原生利用治理专场】正在凋谢报名,流动现场,你不仅能理解当下最受开发者欢送的开源我的项目最新进展、企业应用实际,结交酷爱开源的开发者搭档,还有大量 KubeVela 社区、OpenKruise 社区精美周边派发,连忙报名吧! ...

October 11, 2021 · 1 min · jiezi

关于容器:新一代容器平台ACK-Anywhere来了

5G、AR、AIoT 等场景在推动新一代云架构的演进,而容器重塑了云的应用形式。 近日,阿里云容器服务全面降级为ACK Anywhere,让企业在任何须要云的中央,都能取得统一的容器基础设施能力。 早在2015年,阿里云就公布了国内首个容器服务ACK(Alibaba Cloud Container Service for Kubernetes),尔后通过不断完善产品布局,阿里云现已成为Gartner报告中“容器产品布局最欠缺的云服务厂商”。 此次阿里云容器服务ACK的全面降级意味着公共云能力向本地化进一步延长,客户在自建的数据中心内也能体验到低成本、低提早、本地化的公共云产品。 阿里巴巴研究员、阿里云云原生利用平台负责人丁宇示意:此次降级的ACK Anywhere 领有“统一体验、弹性算力、能力下沉、简化容灾”四大外围能力,让企业在任何业务场景下应用容器服务时,都能实现对立集群治理、对立资源调度、对立数据容灾和对立利用交付。 统一的体验通过 ACK Anywhere,用户能够充分利用机房中的存量机器,通过公共云纳管实现对立流量治理,对立利用生命周期治理,升高混合云治理老本。 更强的弹性ACK Anywhere 提供了灵便的、从本地扩容到云端的能力。实现一个Kubernetes 集群跨客户自有数据中心和阿里公共云秒级伸缩,帮忙企业从容应对周期性或突发业务流量顶峰,并且,只为业务峰值弹性付费。 丰盛的产品通过ACK Anywhere,企业岂但能够将成熟的云原生可观测、平安防护能力部署到用户环境,更能够将云端先进的中间件、数据分析和AI能力下沉到本地,满足企业对产品丰盛度和数据管控的要求。 保障业务连续性ACK Anywhere 实现了备份、容灾、迁徙一体化,反对Kubernetes集群配置与数据卷的备份与复原,全面晋升零碎稳定性和业务连续性。 除了本次降级的ACK Anywhere 之外,阿里云容器产品家族还有两位新成员退出: ◎ ACK ONE:ACK ONE 是一个企业级多地区/多集群容器治理平台,为客户多地区部署云原生利用,提供统一的治理、交付、运维体验,帮忙企业轻松构建多地区/多集群业务零碎。 ◎ ACK Distro 发行版:ACK Distro 为异构 IaaS 而生,反对多种芯片体系架构和异构硬件环境。企业通过ACK Distro 本地部署,就能享有与ACK一样平安、牢靠的企业级能力。 应用ACK Distro 搭建的集群,还可被云原生Stack 或私有云 ACK 平滑治理,实现资源管理统一,策略合规统一,流量管控统一,利用部署统一。 从云到边,从公共云到混合云,从在线业务到离线计算,从AI到大数据……容器和云原生已成为千行百业数字翻新背地的技术力量。 丁宇示意,阿里云云原生致力于为政务、制作、交通、互联网、金融、批发等千行百业,提供数字化翻新的技术底座。

October 9, 2021 · 1 min · jiezi

关于容器:ICMP-与ping命令的关系

日常开发中,咱们常常会碰到查问网络是否畅通以及域名对应 IP 地址等小需要,这时候用的最多的应该就是 ping 命令了。 那你晓得 ping 命令是怎么工作的吗?明天,咱们就来一起意识下 ping 命令及其对应的 ICMP 协定。 ICMP 协定 ICMP 全称 Internet Control Message Protocol,指互联网管制报文协定。 网络自身是不牢靠的,数据包在传输过程中,可能会产生很多突发事件并导致数据传输失败。而网络层的 IP 协定是一个无连贯的协定,它不会解决网络层的故障,因而,咱们须要其它的协定,在数据包传输呈现故障时,能将故障信息传回来,这样能力对应解决相干问题。 就像在电视剧里看到的现代和平一样,打仗的时候须要通过斥候来传递战局状况,进而更好的管制战局。而 ICMP 报文在网络世界中就充当“斥候”这样的角色。 ICMP 报文是封装在 IP 包外面的。因为传输指令的时候,必定须要源地址和指标地址。它自身格局非常简单,如下图: Exploring ICMP Port Number with ExampleExploring ICMP with Examples ICMP 报文有很多的类型,不同的类型有不同的代码,最罕用的类型是被动申请,代码为 8,被动申请的应答,代码为 0。从大的方面看能够分为 查问报文类型和过错报文类型。 查问报文类型 咱们常常在电视剧里听到这样的话:来人,后方战事如何?斥候回来没?一有状况,立即通报。 相似这种主帅发动,被动查看敌情的状况,就对应着 ICMP的查问报文类型。例如,常见的 ping 命令就是查问报文,是一种被动申请,并且取得被动应答的 ICMP 协定。因而,ping 命令收回的包也是合乎 ICMP 协定格局的,只不过它在前面减少了本人的格局。 对 ping 的被动申请,进行网络抓包,称为 ICMP ECHO REQUEST。同理,被动申请的回复,称为ICMP ECHO REPLY。比起原生的 ICMP,这外面多了两个字段,一个是标识符,另一个是序号。这不难理解,大帅派出去两队斥候,一队是找谁要的,一队是侦察战况的,要有个标识能力辨别。 ...

September 11, 2021 · 2 min · jiezi

关于容器:Docker使用简介二私有镜像仓库创建及数据持久化

一、制作自定义镜像1.1 、基于centos镜像应用commit创立新的镜像文件1 ) 应用镜像启动容器 [root@docker01 ~]# docker run -it docker.io/centos[root@19def71b0bd4 /]# ifconfig //默认没有装置net-tools等工具bash: ifconfig: command not found2)装置测试软件 [root@19def71b0bd4 /]# yum -y install net-tools iproute psmisc vim-enhanced[root@19def71b0bd4 /]# ifconfigeth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255 ether 02:42:ac:11:00:02 txqueuelen 0 (Ethernet)......[root@docker01 ~]# exit3 ) 另存为另外一个镜像 [root@docker01 ~]# docker ps -aq19def71b0bd4[root@docker01 ~]# docker start 19def71b0bd4 //能够简写为19,要保障唯一性[root@docker01 ~]# docker commit 19de docker.io/myos:latest //另存为镜像为myos:latestsha256:349b5158c391cb47c34fad6592a4e3eec2978501485048dc4d95f722275b190e[root@docker01 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmyos latest 349b5158c391 9 seconds ago 273MBnginx latest 7e4d58f0e5f3 4 weeks ago 133MBbusybox latest 6858809bf669 4 weeks ago 1.23MBcentos latest 0d120b6ccaa8 2 months ago 215MBcentos v2 0d120b6ccaa8 2 months ago 215MB[root@docker01 ~]# docker run -it docker.io/myos:latest //应用新镜像启动已装置net-tools等工具[root@03b80f6d88d2 /]# ifconfigeth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.3 netmask 255.255.0.0 broadcast 172.17.255.255 ether 02:42:ac:11:00:03 txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 01.2、基于centos镜像应用Dockerfile文件创建一个新的镜像文件Dockerfile语法格局:– FROM:根底镜像– MAINTAINER:镜像创建者信息(阐明)– EXPOSE:凋谢的端口– ENV:设置环境变量– ADD:复制文件到镜像– RUN:制作镜像时执行的命令,能够有多个– WORKDIR:定义容器默认工作目录– CMD:容器启动时执行的命令,仅能够有一条CMD ...

September 9, 2021 · 4 min · jiezi

关于容器:部署prometheusoperator

次要参考KubeSpray我的项目对prometheus-operator的部署流程,尝试手工部署prometheus-operator。 kubeproary部署prometheus-opeartor的流程部署流程: 部署promethues-operator deploy;部署prometheus的其它组件, 如node-exporter、kube-state-metrics;# cat tasks/prometheus.yml---- name: Kubernetes Apps | Make sure {{ prometheus_config_dir }} exists file: path: "{{ prometheus_config_dir }}" state: directory- name: Kubernetes Apps | Render templates for Prometheus-operator-deployment template: src: "{{ item}}.yaml.j2" dest: "{{ prometheus_config_dir }}/{{ item }}.yaml" with_items: - prometheus-operator-deployment- name: copy prometheus operators to {{ kube_config_dir }} copy: src: "{{ item }}.yaml" dest: "{{ prometheus_config_dir }}/{{ item }}.yaml" with_items: - 0namespace-namespace - prometheus-operator-0alertmanagerCustomResourceDefinition - prometheus-operator-0podmonitorCustomResourceDefinition - prometheus-operator-0prometheusCustomResourceDefinition - prometheus-operator-0prometheusruleCustomResourceDefinition - prometheus-operator-0servicemonitorCustomResourceDefinition - prometheus-operator-0thanosrulerCustomResourceDefinition - prometheus-operator-clusterRoleBinding - prometheus-operator-clusterRole - prometheus-operator-serviceAccount - prometheus-operator-service - prometheus-rules- name: Kubernetes Apps | apply prometheus-operator kube: kubectl: "{{ bin_dir }}/kubectl" filename: "{{ prometheus_config_dir }}/{{ item }}.yaml" state: "latest" register: result until: result is succeeded retries: 10 delay: 6 with_items: "{{ prometheus_operators }}"- name: Kubernetes Apps | Render templates for Prometheus template: src: "{{ item}}.yaml.j2" dest: "{{ prometheus_config_dir }}/{{ item }}.yaml" register: prometheus_reg with_items: - alertmanager-alertmanager - alertmanager-secret - alertmanager-serviceAccount - alertmanager-serviceMonitor - alertmanager-service - kube-state-metrics-clusterRoleBinding - kube-state-metrics-clusterRole - kube-state-metrics-deployment - kube-state-metrics-serviceAccount - kube-state-metrics-serviceMonitor - kube-state-metrics-service - node-exporter-clusterRoleBinding - node-exporter-clusterRole - node-exporter-daemonset - node-exporter-serviceAccount - node-exporter-serviceMonitor - node-exporter-service - prometheus-adapter-apiService - prometheus-adapter-clusterRoleAggregatedMetricsReader - prometheus-adapter-clusterRoleBindingDelegator - prometheus-adapter-clusterRoleBinding - prometheus-adapter-clusterRoleServerResources - prometheus-adapter-clusterRole - prometheus-adapter-configMap - prometheus-adapter-deployment - prometheus-adapter-roleBindingAuthReader - prometheus-adapter-serviceAccount - prometheus-adapter-serviceMonitor - prometheus-adapter-service - prometheus-clusterRoleBinding - prometheus-clusterRole - prometheus-kubeControllerManagerPrometheusDiscoveryService - prometheus-kubeSchedulerPrometheusDiscoveryService - prometheus-operator-serviceMonitor - prometheus-prometheus - prometheus-roleBindingConfig - prometheus-roleBindingSpecificNamespaces - prometheus-roleConfig - prometheus-roleSpecificNamespaces - prometheus-serviceAccount - prometheus-serviceMonitorApiserver - prometheus-serviceMonitorCoreDNS - prometheus-serviceMonitorKubeControllerManager - prometheus-serviceMonitorKubelet - prometheus-serviceMonitorKubeScheduler - prometheus-serviceMonitor - prometheus-service- name: Kubernetes Apps | Add policies, roles, bindings for Prometheus kube: kubectl: "{{ bin_dir }}/kubectl" filename: "{{ prometheus_config_dir }}/{{ item.item }}.yaml" state: "latest" register: result until: result is succeeded retries: 10 delay: 6 with_items: "{{ prometheus_reg.results }}"手工部署prometheus-operator提前给master-node打tag因为prometheus抉择部署在master节点上 ...

September 3, 2021 · 2 min · jiezi

关于容器:电子商务搜索基准

工具与资源核心帮忙开发者更加高效的工作,提供围绕开发者全生命周期的工具与资源https://developer.aliyun.com/... 介绍电子商务搜寻基准是第一个具备个性化举荐的电子商务搜寻零碎的端到端利用基准。帮忙人们深刻理解电商搜寻工作负载的特点,为行业搜寻零碎提供更好的设计抉择。以及提供电子商务在线搜寻服务的软件系统。因而,这些零碎中的任何一个都能够用来建设这个基准的可行性。基准的特点:• 应用真实世界的数据集提供数据生成器并生成各种规模的合成数据。• 提供一个由淘宝真实世界用户日志驱动的工作负载生成器。• 提供模仿淘宝搜寻零碎的电子商务搜寻模型eSearchEngineModel。• 评估单个组件的整体性能和性能。电子商务搜寻基准建设在 docker 镜像之上。如上图所示,benchmark由7个docker镜像组成: aliesearch-search-planneraliesearch-查问-布局器aliesearch-tf-servingaliesearch-ha3aliesearch-ranking-servicealiesearch-jmeter-imagealiesearch-基准-cli其中,图片 1~5 形成电子商务搜寻模型eSearchEngineModel,aliesearch-benchmark-cli是Data Generator,aliesearch-jmeter-image将Workload Generator生成的工作负载驱动到电子商务搜寻模型eSearchEngineModel。 筹备依赖须要以下构建工具:• 毕业 4.x• 里手 3.x• 码头工人 17.09+• jdk8留神:确保您能够在不sudo运行的状况下应用 dockersudo usermod -aG docker $USER 建造build.sh在eSearchEngineModel目录中运行以构建和公布图像等。• 编译和构建 docker 镜像./build.sh build将 docker 镜像公布到指定的近程 docker 从新定位。如果只在本地运行,能够跳过这一步。./build.sh push ${repo_name} 运行基准笔记:必须须要正确的 java 最大内存大小值,否则 docker 图像将无奈工作。您能够通过运行将其设置为长期sudo sysctl -w vm.max_map_count=262144或者您能够通过间接/etc/sysctl.conf在主机上编辑文件来将其设置为永恒,增加如下一行:vm.max_map_count = 262144而后运行sysctl -p 独立运行示例1、 appctl.sh将此目录复制到您的工作目录;2、 通过运行拉取所有镜像:(如果您只在本地运行,请跳过此步骤。) sudo ./appctl.sh pull通过运行以下命令启动所有图像并主动导入默认数据: sudo ./appctl.sh start通过在任何 docker 中运行以下命令来查看所有图像是否已筹备好工作: sudo docker exec -it aliesearch-jmeter-image bash curl -H 'Content-Type:application/json;charset=UTF-8' -d' {"uid":"798", "page":0, "query":"68"}' ${search_planner_ip}:8080/search通过 jmeter 运行示例试验:• 运行以下命令登录到“jmeter-image”:sudo docker exec -it aliesearch-jmeter-image bash• 运行通过运行来启动压力测试过程:cd apache-jmeter-5.1.1./bin/jmeter -n -t search_stress.jmx -l result -e -o report ...

September 3, 2021 · 2 min · jiezi

关于容器:容器技术和虚拟机的差异和联系

容器技术和虚拟机的差别和分割,在理解之前,咱们须要理解虚拟机是什么,虚拟机有什么用,以及容器是什么,容器有什么用? 1.虚拟机什么:虚拟化硬件 虚拟化硬件指的是一个模拟硬件计算机系统的软件,具备残缺的硬件零碎性能,由软件模仿并在齐全隔离的环境中运行。能够在物理计算机中实现的事件也能够在虚拟机中实现。 在计算机中创立虚拟机时,须要将物理机的局部硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有本人的CMOS、硬盘和操作系统,能够像操作物理机一样操作虚拟机。在容器技术呈现之前,这个行业的在线名人是虚拟机。 虚拟机技术的代表是VMWare和OpenStack。 2.容器是什么?容器有什么用?:虚拟化操作系统层是一个规范的软件单元 随处运行:容器能够用配置文件和相干的依赖库打包代码,以确保在任何环境中的统一操作。 资源利用率高:容器提供过程级隔离,能够更精密地设置CPU和内存利用率,进而更好地利用服务器的计算资源。 疾速扩大:每个容器能够作为独自的过程运行,能够共享底层操作系统的系统资源,能够放慢容器的启动和进行效率。 容器技术的代表是灵雀云容器技术和虚拟机的差别和分割 容器技术比虚拟机所占的空间更加小 只管虚拟机能够隔离许多“子计算机”,但它们占用的空间更大,但启动速度也更慢。虚拟机软件可能要花钱,比方VMWare; 容器技术不须要虚拟化整个操作系统,只须要虚拟化一个小规模的环境,相似于“沙盒”; 运行空间,虚拟机个别须要几GB到几十GB的空间,而容器只须要MB甚至KB; 让咱们看一下比拟数据: 与虚拟机相比,容器更轻更快,因为它应用底层的Linux操作系统在隔离的环境中运行。虚拟机的Hypervisor创立了一个十分强的边界来避免应用程序冲破它,而容器的边界则没有那么强。 物理机部署不能充分利用资源,造成资源节约。虚拟机部署时,虚拟机自身会占用大量资源,造成资源节约,此外,虚拟机的性能也很差。然而,容器化部署是灵便的、轻量级的并且具备良好的性能。 虚拟机属于虚拟化技术,而灵雀云所采纳的Docker这样的容器技术属于轻量级虚拟化

August 24, 2021 · 1 min · jiezi