关于容器服务:秒级弹性探索弹性调度与虚拟节点如何迅速响应瞬时算力需求

<article class=“article fmt article-content”><h2>前言</h2><p>在后面的文章《弹性调度助力企业灵便应答业务变动,高效治理云上资源》中,咱们介绍了阿里云容器服务 ACK 弹性调度为了帮忙客户解决在应用云上弹性资源时,面对的“难以差异化管制业务资源使用量,缩容时局部业务 Pod 未开释”等挑战,提供了依照多级资源的优先程序进行调度,以及依照定义的优先程序进行缩容的能力。</p><p>本文将介绍弹性调度如何应用虚构节点来满足您的业务弹性需要。</p><p>企业在施行利用弹性过程中,弹性速度和弹性地位是重点关注的两个外围指标。</p><p>对于谋求高可用以及稳定性的企业来说,麻利的弹性可能在业务流量突增时,保证系统的连续性与稳定性。同时,通过跨多地区部署利用,能够在地域性故障产生时,无效地维持服务的继续可用性。</p><p>对于大数据处理工作的企业来说,疾速的弹性可能缩短工作执行工夫,放慢利用的迭代速度。同时,集中部署在单个地区,则能够缩小利用之间的网络通信时延,从而进一步晋升数据处理效率。</p><p>显然,这两个指标对于确保企业业务的稳固高效运行至关重要。</p><p>然而,许多企业在面对疾速到来的业务流量顶峰和日益增长的大数据算力需要时,现行的分钟级主动伸缩节点池的弹性响应曾经无奈满足需要。并且,通过正当的部署策略,实现预期的弹性地位,也颇具挑战。</p><p>为此,阿里云推出弹性容器实例(Elastic Container Instance,ECI),以十秒级的弹性速度,有效应对突发流量的弹性需要。同时,阿里云容器服务 Kubernetes 版(ACK)利用虚构节点技术实现与 ECI 弹性资源的无缝集成,使得业务可能在集群内灵便动静地调用 ECI 资源,迅速应答弹性挑战。此外,容器服务 ACK 的弹性调度性能在将业务调度到 ECI 上时,还能维持业务的亲和性配置不变,确保利用运行的稳固和高效。</p><h2>应用虚构节点实现秒级弹性</h2><p>为了在 ACK 中应用 ECI,须要在 ACK 集群中装置虚构节点组件。</p><blockquote><p>在 ACK Pro 版集群中,能够通过组件治理页面部署 ack-virtual-node 组件,该组件默认被托管,不占用 Worker 节点资源。</p><p>在 ACK 专有版集群中,能够通过利用市场页面部署 ack-virtual-node 组件,装置胜利后会在 kube-system 命名空间下创立一个名为 ack-virtual-node-controller 的 deployment,该 deployment 会运行在您的 Worker 节点上。</p></blockquote><p>装置胜利后用户能够通过 kubectl get no 命令在集群中查看到若干虚构节点,代表虚构节点装置胜利。</p><p>虚构节点装置胜利之后,能够应用弹性调度性能配置 ECI 的应用策略,以下是“优先调度 ECS,当 ECS 资源应用完后应用 ECI 资源”的示例。</p><pre><code>apiVersion: scheduling.alibabacloud.com/v1alpha1kind: ResourcePolicymetadata: name: testspec: strategy: prefer units: - resource: ecs - resource: eci</code></pre><p>配置了以上 ResourcePolicy 之后,在 default 命名空间下的所有 Pod 都将遵循以下的调度规定:优先应用 ECS,ECS 资源用完后应用 ECI。</p><p>须要留神的是:以上配置会使得 ECS 节点上的抢占性能生效,如果须要同时放弃在 ECS 上的抢占能力,请配置 preemptPolicy=BeforeNextUnit,如果须要限定失效的业务范围,请按需配置 selector。</p><p>以下是理论应用成果:</p><p>首先,提交一个 Deployment,8 个业务 Pod 中仅有 7 个业务 Pod 可能被胜利调度。</p><p></p><p>此时,提交 ResourcePolicy,并将 Deployment 的正本数减少到 10,新的正本将全副运行在 ECI 上。</p><p></p><p>通过统计业务 Pod 的创立工夫以及 startTime,能够看到这里新 Pod 的创立工夫在 13 秒,远远低于主动伸缩节点所需的弹性工夫。</p><p></p><h2>升高大数据工作通信时延</h2><p>若您的集群配置了多个可用区的虚构节点,在默认状况下,ECI Pod 可能会被调度在多个可用区上。如下图,在默认状况下,nginx 被调度到了 C 和 D 两个可用区的 virtual node 上。</p><p></p><p></p><p>对于大数据型利用,配置可用区亲和往往意味着计算 Pod 之间的网络通信代价更小,进而带来更高的吞吐量。通过阿里云弹性调度,您能够通过 Pod 上的节点亲和以及 Pod 亲和限度业务调度的可用区,从而实现 ECS 上的 Pod 与 ECI 上的 Pod 调度在雷同的可用区上。</p><p>以下是两种在 ECI 上配置雷同可用区调度的示例,别离应用了指定可用区调度以及不指定可用区调度两种形式,在以下的两个例子中,已提前提交了 ResourcePolicy:</p><h3>手动指定可用区</h3><p>原生 Kubernetes 提供了节点亲和调度语义来管制 Pod 的调度地位,以下的例子中咱们指定 nginx 服务仅在可用区 C 上进行调度。您惟一须要进行的批改是在工作负载的 PodTemplate 或 PodSpec 中增加节点亲和束缚。</p><pre><code>apiVersion: apps/v1kind: Deploymentmetadata: labels: app: nginx name: nginx-deployment-basicspec: replicas: 9 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: topology.kubernetes.io/zone operator: In values: - cn-hongkong-c containers: - image: ’nginx:1.7.9’ imagePullPolicy: IfNotPresent name: nginx resources: limits: cpu: 1500m requests: cpu: 1500m terminationMessagePath: /dev/termination-log terminationMessagePolicy: File</code></pre><p>同样将业务 Pod 扩容到 9,此时可能察看到业务 Pod 全副运行在可用区 C 上,因为集群中 ECS 节点均为可用区 D 上的机器,因而所有业务 Pod 全副运行在 ECI 上。</p><p></p><h3>最优可用区感知调度</h3><p>为应答大数据计算需要,通常须要部署大量的 Pod,这时候确保 ECI 提供短缺的算力资源成为要害。为确保抉择到具备短缺残余算力的可用区,能够在指定可用区亲和时应用 Pod 亲和。在 ECI 调度过程中,调度器会参考 ECI 提供的可用区倡议,抉择一个可用算力更多的可用区,从而实现主动抉择更优地位的成果。以下例子中咱们将限度 Pod 仅在 ECI 上调度,并通过 Pod 亲和限度 Pod 必须被调度到同一个可用区。</p><p>注:Pod 亲和会使得后续 Pod 与第一个被调度的 Pod 亲和在雷同可用区,当采纳 ECS+ECI 弹性调度时,因为第一个被调度的 Pod 通常为 ECS Pod,会使得后续 ECI Pod 亲和在 ECS 雷同的可用区,此时建议您应用 preferredDuringSchedulingIgnoredDuringExecution。</p><p>提交的 ResourcePolicy 为:</p><pre><code>apiVersion: scheduling.alibabacloud.com/v1alpha1kind: ResourcePolicymetadata: name: testspec: strategy: prefer units: - resource: eci</code></pre><p>提交的工作负载为:</p><pre><code>apiVersion: apps/v1kind: Deploymentmetadata: labels: app: nginx name: nginx-deployment-basicspec: replicas: 9 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - nginx topologyKey: topology.kubernetes.io/zone containers: - image: ’nginx:1.7.9’ imagePullPolicy: IfNotPresent name: nginx resources: limits: cpu: 1500m requests: cpu: 1500m terminationMessagePath: /dev/termination-log terminationMessagePolicy: File</code></pre><p>提交后可用发现,此时 Pod 仍然均调度在雷同的可用区,此时调度到的可用区将会是 ECI 举荐的更优可用区。</p><p></p><h2>保障在线业务高可用</h2><p>对于在线业务而言,配置业务多可用区部署是保障业务高可用的一种无效伎俩。通过阿里云弹性调度,您能够通过 Pod 上的拓扑散布束缚来实现 ECS 上的 Pod 与 ECI 上的 Pod 遵循雷同的拓扑散布束缚,从而实现业务的高可用。</p><p>以下是一个在 ECI 上配置业务高可用的示例,指定了业务 Pod 在多个可用区上均匀分布,并且在 ECS 资源有余时应用 ECI。</p><pre><code>apiVersion: scheduling.alibabacloud.com/v1alpha1kind: ResourcePolicymetadata: name: testspec: strategy: prefer units: - resource: ecs - resource: eci—apiVersion: apps/v1kind: Deploymentmetadata: labels: app: nginx name: nginx-deployment-basicspec: replicas: 9 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: topologySpreadConstraints: - labelSelector: matchLabels: app: nginx maxSkew: 1 topologyKey: topology.kubernetes.io/zone whenUnsatisfiable: DoNotSchedule containers: - image: ’nginx:1.7.9’ imagePullPolicy: IfNotPresent name: nginx resources: limits: cpu: 1500m requests: cpu: 1500m terminationMessagePath: /dev/termination-log terminationMessagePolicy: File</code></pre><p>提交上述资源清单后,Pod 最终的可用区和节点散布如下,因为可用区 D 上存在三个 ECS 节点,因而最终 Pod 在可用区 D 上存在 5 个 Pod,在可用区 C 上存在 4 个 Pod。可能满足束缚中最大倾斜度为 1 的要求。</p><p></p><h2>What’s Next</h2><p>阿里云容器服务 Kubernetes 版(ACK)在规范 K8s 调度框架的根底上扩大了弹性调度性能,致力于进步利用性能和集群整体资源的利用率,保障企业业务的稳固高效运行。</p><p>在后期文章《弹性调度助力企业灵便应答业务变动,高效治理云上资源》中,咱们曾经探讨了如何通过阿里云容器服务 ACK 的弹性调度无效治理各类弹性资源,以帮忙企业优化资源配置,实现降本增效。</p><p>在本文中,咱们又深刻解析了 ACK 弹性调度如何与弹性容器实例(ECI)这一要害弹性资源联合,凭借 ECI 疾速弹性、秒级计费和即时开释的劣势,显著晋升企业业务的稳定性和效率。</p><p>在行将推出的调度系列文章中,咱们将具体介绍如何在 ACK 上治理和调度 AI 工作,助力企业 AI 业务在云端疾速落地。</p><p>作者:吴昆</p><p><strong>原文链接</strong></p><p><strong>本文为阿里云原创内容,未经容许不得转载。</strong></p></article> ...

February 20, 2024 · 3 min · jiezi

关于容器服务:从-13-个企业关心的问题看懂用云范式的改变

明天,容器和 K8s 曾经成为利用研发运维的新规范,行业调研数据显示,2022 年有 64% 的最终用户在生产环境中应用了 K8s;2022 年托管在云上的 K8s 集群增速达到了 127%。咱们也看到云托管的 K8s 将在 2023 年超过本地部署。这意味着容器化上云成为了新常态。 同时,随着互联网分布式技术的遍及,微服务架构被宽泛应用,围绕着一整套的技术体系,运维复杂度陡然回升。在这两个趋势之下,咱们看到企业和开发者面临新的挑战:比方 K8s 的入门门槛高、保护比较复杂,而微服务的运维体系很简单,企业的业务流量稳定很大,须要更好的按需弹性、同时实现更低成本;云产品组合抉择比拟多,对于企业来讲须要更好的性价比。 为了解决企业在当下背景下面临的挑战,阿里云带来一款全新的产品:容器计算服务 ACS,将容器和资源一体化,打造全新的用云范式。 ACS 简化了产品的实例类型,它只有 3 种实例:通用型、工作型、独享型。以一个典型的互联网网站服务为例,一个典型企业的利用工作负载,个别包含 Web 应用程序、CICD 流水线、大数据计算、数据库中间件等。对于这样经典的场景,咱们举荐在 Web 应用程序里应用通用型实例,CI/CD 流水线应用通用型实例,大数据计算框架应用工作型实例,数据库、缓存就应用独享型实例。通过这样的实例组合,可能实现企业最大化的资源利用和老本升高。 目前,容器计算服务 ACS 已开启体验。咱们也期待有更多的用户通过 ACS,可能去享受容器化用云的红利。点击浏览原文,即可体验容器计算服务 ACS。 体验链接:https://www.aliyun.com/product/acs咱们特地邀请阿里云云原生利用平台负责人丁宇,针对 ACS 相干话题,期待通过他的答复给予企业和开发者更多的思考。 问题 1:阿里云目前有四十余款外围 Serverless 产品的公布,这背地反映出了云上开发需要的微小转变。您如何对待这一变动?丁宇:呈现这一变动的起因与越来越多的客户开始上云无关。千行百业的客户都在上云,并且他们寻求的是更高效、便捷、经济及易用的服务。这标记着客户进入到了一个用好云的阶段,他们对云产品提出了更高的要求,冀望免运维、全托管、按需弹性、按量付费。因而,云平台也在降级云产品,朝着 Serverless 方向投入产品建设,以满足客户增长对于云的多快好省的需要。 云具备资源池化、弹性能力、存储计算拆散、分布式存储和网络等技术劣势,正是这些技术的底座和根底,让咱们可能更迅速地推动 Serverless 化产品建设。 问题 2:那您如何对待以后企业应用云的现状?ACS 又是如何解决这些问题的?丁宇:据调研报告显示,2022 年,64% 的最终用户在生产环境中应用了 K8s,并且托管在云上的 K8s 集群年增速达到 127%,所以说上云用容器曾经成为一个微小的趋势。预计到 2023 年,云托管的 K8s 将超过本地部署,这意味着容器化用云将成为一个新常态。 此外,随着越来越多的利用架构微服务化,服务治理的复杂度在一直回升,当微服务遇到 K8s,带来了更多的复杂度。例如,K8s 配置简单,计算资源机型多、代际多,集群和节点组件治理简单,业务顶峰实现按需弹性难度大等。 因而,为了升高 K8s 应用和运维复杂度,解决资源和容器割裂的问题,咱们设计了容器计算服务 ACS。它能大幅简化云的应用界面,让云的应用界面上移,实现容器、资源一体化。同时 K8s 集群不须要保护,节点不须要运维,ACS 的性能与资源类型也极为简洁,能够让咱们实现灵便的资源调配,反对多种利用场景。 ...

February 19, 2024 · 2 min · jiezi

关于容器服务:牧云云原生安全平台使用手册CICD扫描

牧云·云原生平安平台 是长亭牧云团队以开源社区为生态载体,技术积攒为驱动所打造的云原生平安平台。援用本文将介绍如何应用牧云·云原生平安平台进行CI/CD扫描。介绍:在我的项目开发过程中,咱们频繁在生产环境应用镜像实现根底构建,但在镜像创立、构建、传输的过程中,咱们该如何保障镜像的安全性与完整性? 牧云·云原生平安平台提供 CI/CD 性能,目前兼容多种支流 CI/CD,一键生成检测策略,并查看具体检测后果,直观高效,精准定位! 反对自定义策略参数配置:检测范畴、检测内容、事件阻断等级反对可视化查问后果:是否通过检测、危险事件统计反对查看每条 Pipline 检测详情:关联每条构建编号与检测后果数据、梳理以后所有被影响镜像信息、检测后果详情查看跳转应用指引:1、点击「平安左移-CI/CD」返回应用CI/CD性能,点击Jenkins卡片进入Jenkins详情页面。首次进入页面的用户会间接看到配置Token的弹窗,用户能够根据流程进行前置插件装置配置,敞开弹窗后,能够再次点击页面右上方「配置Token 」进行查看。 点击下载插件包返回Jenkins面板>系统管理>插件治理>高级>DeployPlugin抉择插件文件,点击Deploy按钮实现插件装置。返回Jenkins面版>系统管理>系统配置找到VeinmindScannerOptions,粘贴平台获取的Token,点击保留按钮实现初始化配置。2、装置插件后,默认启动插件的主动模式,应用默认策略对应用插件的CI/CD进行平安检测扫描并上报后果到平台,默认策略不会进行镜像阻断操作,用户可在系统配置中批改策略id批改默认策略内容。如针对不同的Pipline有不同的检测需要,即可应用手动模式,创立策略进行检测。点击「创立策略」弹窗策略参数配置,根据业务状况配置参数详情。3、Jenkins列表页面分为三个模块,左侧是策略管理,右侧是Pipline事件列表,上方是操作按钮。点击右上方「创立策略」能够基于业务场景创立不同的策略进行应用;左侧点击某一个策略对象,右侧将会展现应用此策略进行扫描上报的所有事件数据,点击编辑即可返回查看策略详情并编辑具体字段。4、点击「Job」进入Pipline事件详情页面,Piplinel事件详情包含四个模块「CI/CD信息」「扫描镜像信息」「策略详情」「检测详情」,提供CI/CD具体字段、本次扫描的镜像对象、本次扫描应用的策略内容和扫描的后果,多类型数据对立展现,便于疾速排查危险并进行下一步解决修复。 Jenkins的配置:所需环境JenkinsJenkins 部署服务器与牧云·云原生平安平台网络畅通插件装置1、返回平台 /镜像平安/CI/CD,抉择 Jenkins 卡片,点击「配置 Token」按钮,点击下载插件包。 2、返回 Jenkins 面板 > 系统管理 > 插件治理 > 高级 > Deploy Plugin 抉择插件文件, 点击 Deploy 按钮实现插件装置。3、返回 Jenkins 面板> 系统管理 > 系统配置 找到 Veinmind Scanner Options, 粘贴平台获取的 Token, 点击 保留 按钮实现初始化配置。 这里是插件的全局配置参数,对所有应用插件的 CICD 都失效,您只需根据上图内容粘贴 Token 即可,其余参数可放弃默认选项image :默认为空策略 id:默认抉择平台内置的默认策略,如需更换全局策略需返回平台创立策略后复制策略 id 填写到此处serverURl:默认即可CaURl:默认即可日志级别:默认即可主动模式:装置插件后,默认启动插件的主动模式,应用默认策略对所有应用插件的 CICD 进行平安检测扫描并上报后果到平台,默认策略不会进行镜像阻断操作,您可在系统配置中批改策略 id 批改默认策略内容。 手动模式:如针对不同的 Pipline 有不同的检测需要,即可应用手动模式,具体教程请参考下方内容。 创立策略1、返回平台,点击「创立策略」按钮,根据业务状况配置策略参数。2、复制命令,返回 Jenkins 面板 > 进入指标 Pipline 详情 > 左侧点击配置 > 定位到流水线 > 粘贴命令 > 点击保留 ...

September 5, 2023 · 1 min · jiezi

关于容器服务:服务网格实施周期缩短-50丽迅物流基于阿里云-ACK-和-ASM-的云原生应用管理实践

公司介绍丽迅物流是百丽旗下专一于时尚产业、为企业提供业余物流及供应链解决方案的服务商。其产品服务次要包含城市落地配、仓配一体、支线运输及定制化解决方案。通过自研智能化物流治理平台,全面助力企业单干集约化倒退。目前,丽迅物流已在全国领有 70+ 全渠道实体云仓、6 大核心电商仓,总面积达 100 万+ 平方米,服务笼罩 300+ 城市、3000+ 商圈,为多家出名时尚品牌及其品牌门店提供全渠道配送服务。 为了升高业务各环节中的运维老本、进步物流服务效率,2021 年 8 月起,丽迅物流开始在阿里云上实现本身从 IDC 自建到全面云原生化的过程。其中应用了阿里云容器镜像仓库企业版 ACR EE 和阿里云容器服务 ACK 作为容器制品治理及调度平台,应用了阿里云服务网格 ASM 作为云原生应用服务的分布式治理平台,通过服务网格的服务治理和流量管制性能,实现了应用程序的高效部署和扩大。 通过本文,丽迅物流架构师刘强分享了对于基于阿里云服务网格 ASM 如何减速企业业务云原生化过程的实践经验。 业务痛点在技术架构转型及业务疾速倒退的背景下,丽迅物流须要和各供应链撑持平台、研发平台等多个业务单元和合作伙伴进行业务交互,其业务零碎多元化并且具备开放性。在市场环境和消费者需要疾速变动的现状下,咱们更心愿将精力专一于外围业务的研发。包含了以下须要解决的业务问题痛点: 利用版本迭代艰难面对疾速变动的客户、业务要求,所依赖的利用性能越来越多。业务越简单,代码的耦合度也越来越高,新个性上线周期逐渐拉长,使得利用版本迭代愈发艰难。 异构零碎无奈对立治理企业级 IT 零碎多语言、多协定、多框架的现状,为对立进行服务整合、服务治理设下困局。同时,因为 IT 零碎部署基础设施简单,反对跨平台、跨多个 Kubernetes 集群的技术难点亟需解决。 构建对立的云原生应用服务研发平台存在肯定艰难以 Spring Cloud 为代表的开源微服务框架成为业界支流的微服务脚手架。这些框架已具备服务注册发现、健康检查等根底微服务能力,但面对企业级利用所波及的服务拜访安全控制、服务流控、路由管制、灰度公布等高阶服务治理问题,仍须利用自行整合大量的第三方开源框架。这使得云原生应用服务业务利用设计开发具备较高的技术门槛,对于企业构建对立的云原生应用服务研发平台带来肯定艰难。 简单的运维体系现有的运维体系存在肯定的复杂性,相比于服务网格提供围绕流量治理、安全性、可观测性的一系列性能,目前对于大规模治理应用服务的运维体系存在挑战。 解决方案作为业内首个全托管 Istio 兼容的服务网格产品 ASM,一开始从架构上就放弃了业界当先性以及社区与业界倒退的一致性,管制立体的组件托管在阿里云侧,与数据面侧的用户集群独立,放弃高可用部署与稳定性。ASM 产品是基于社区开源的 Istio 定制实现的,在托管的管制面侧提供了用于撑持精细化的流量治理和平安治理的组件能力。通过托管模式,解耦了 Istio 组件与所治理的 K8s 集群的生命周期治理,使得架构更加灵便,晋升了零碎的可伸缩性。 $$阿里云服务网格 ASM 架构图$$ 托管式服务网格 ASM 在成为多种类型计算服务对立治理的基础设施中,提供了对立的流量治理能力、对立的服务平安能力、对立的服务可观测性能力、以及基于 WebAssembly 实现对立的代理可扩大能力,以此构筑企业级能力。 除大数据的剖析体系外,丽迅物流的以后零碎曾经全面接入服务网格体系,包含应用以下能力: $$丽迅科技业务利用部署架构图$$ 认证鉴权体系客户端发动业务申请,后端须要验证用户申请的合法性。例如,判断用户申请是否有该资源拜访权限。认证通过后,返回后果中还须要减少一些原始申请中没有的信息,例如用户认证通过后在 header 中增加业务版本号、用户 ID 等。 针对上述业务场景,ASM 提供了自定义受权服务。在 ASM 网关上退出鉴权流程,以确保只有失去受权的状况下,能力拜访要害服务。 ...

August 30, 2023 · 1 min · jiezi

关于容器服务:当镜见隐私敏感信息曝光别让镜像悄悄偷窥

牧云·云原生平安平台 是长亭牧云团队以开源社区为生态载体技术积攒为驱动所打造的云原生平安平台。本文将介绍如何应用牧云·云原生平安平台进行镜像敏感信息的扫描。应用前的筹备工作:1、在进行镜像敏感信息的扫描之前,咱们同样须要先辨别扫描对象是什么?思维导图如下:镜像平安扫描对象分为本地镜像和仓库镜像。本地镜像分为集群环境和非集群环境,集群环境在进行资产盘点前还须要先集成集群装探针,非集群环境间接装置探针即可。仓库镜像须要先装置旁路探针再集成仓库资源。具体步骤请参考: 牧云·云原生平安平台使用手册:集群资产盘点牧云·云原生平安平台使用手册:镜像/容器/Web资产盘点 牧云·云原生平安平台使用手册:应用软件资产盘点 2、在装置好旁路探针以及集成好仓库资源之后就须要咱们创立工作打算了: 创立工作打算工作打算工作打算性能次要用于向扫描探针下发平安扫描工作,创立具体任务打算后,平台将具体任务下发到对应的扫描探针,扫描探针执行扫描工作并向平台上报安全事件,平台获取后果并展现。 点击 /管理中心/工作打算 进入工作打算页面,点击右上角按钮 「创立工作打算」。本文只介绍本地镜像、仓库镜像、集群镜像的工作打算创立,其余的工作类型之后文章会有具体介绍。 本地镜像如果是本地镜像,创立工作打算时须要填写工作打算参数,抉择好主机扫描范畴、镜像范畴、指定插件和执行周期即创立实现。 仓库镜像如果是仓库镜像,创立工作打算时须要填写对应的工作打算参数,抉择好仓库扫描范畴、镜像范畴、指定插件和执行周期即创立实现。 集群镜像如果是集群镜像,创立工作打算时须要填写对应的工作打算参数,抉择好集群扫描范畴、镜像范畴、指定插件和执行周期即创立实现。 其中工作打算参数须要留神的是: 镜像范畴上传范畴文件 文件内容需保障每行仅蕴含一条镜像数据倡议每条镜像数据不蕴含tag,并以换行符完结可参考下图示例: 操作工作状态 期待执行:工作尚未下发到工作队列中,正在期待下一次执行工夫队列中: 工作已下发,正在工作队列中等在执行正在执行:工作正在执行中执行胜利:即代表此工作打算已全副执行胜利执行失败:即代表此工作打算执行失败生效:当探针范畴抉择的探针从平台删除或仓库范畴抉择的仓库从平台删除 至此咱们曾经实现了后期的筹备工作了,接下来就能够进行敏感信息性能的应用了。 敏感信息介绍:牧云·云原生平安平台依靠问脉开源工具敏感信息检测库,提供上百条敏感信息检测规定,可能对镜像中的敏感信息进行多维度的平安检测并提供修复计划,防止引发重大的平安危险。    应用指引:1、点击 /镜像平安/敏感信息 进入敏感信息事件列表页面,此列表展现扫描打算进行平安扫描后发现的所有安全事件后果详情。您能够通过左上角切换镜像视角、事件视角进行查看筛选与统计。 2、单击事件名称可进入事件详情页面,提供事件信息、文件信息、镜像信息、检测详情模块进行查看。3、列表右侧提供事件处理和全副导出操作,您能够对事件标记“有危险”“确认中”“已解决”“误报”“疏忽”状态。 对于咱们牧云·云原生平安平台 是长亭牧云团队以开源社区为生态载体技术积攒为驱动所打造的云原生平安平台。独创双模探针架构,可选用 Agentless/Agent 多种计划进行部署,笼罩制品、运行时、集群全流程平安,开箱即用、疾速施行、老本极低、主动降级、无需保护、无缝集成,让用户可能轻装上阵,轻松解决云原生平安问题。 平台地址: https://rivers.chaitin.cn/?share=60889b1731a311ee89640242c0a8...

August 17, 2023 · 1 min · jiezi

关于容器服务:如何让Podman容器作为系统服务运行

家喻户晓,podman 是一个开源的无守护过程工具,它提供了构建、运行和治理容器的环境。将容器作为 systemd service 运行意味着当零碎重新启动时,容器将主动启动。 在这篇文章中,咱们将学习如何在基于 RHEL 的发行版 (如 RHEL 8、CentOS 8 和 Rocky Linux 8) 上应用 podman 将容器作为零碎服务运行。 前提条件Minimal RHEL based OS Installation.Stable Internet ConnectionSudo User with root privileges(1) 装置 Podman要在 RHEL 8 上装置 podman,请运行 $ sudo dnf install @container-tools -y要在 CentOS 8 / Rocky Linux 8 上装置 podman,请运行 $ sudo dnf install -y podman要查看 podman 是否装置胜利,请尝试应用 podman 上面的命令运行 hello-world 容器。 $ podman -vpodman version 3.3.1$$ podman run 'hello-world'留神:当咱们第一次运行 podman 时,它会提醒咱们抉择想要下载容器映像的托管仓库。 ...

December 25, 2022 · 1 min · jiezi

关于容器服务:避坑指南如何在TKE上安装KubeSphere

导语 | 本文推选自腾讯云开发者社区-【技思广益 · 腾讯技术人原创集】专栏。该专栏是腾讯云开发者社区为腾讯技术人与宽泛开发者打造的分享交换窗口。栏目邀约腾讯技术人分享原创的技术积淀,与宽泛开发者互启迪共成长。本文作者是腾讯云原生架构师imroc。 本文次要介绍在腾讯云容器服务上如何装置KubeSphere及其踩坑与注意事项,心愿能够给对此方面感兴趣的开发者们一些教训和帮忙。 装置步骤具体装置步骤参考KubeSphere官网文档:在腾讯云TKE装置 KubeSphere。链接:https://kubesphere.io/zh/docs... 踩坑与注意事项 (一)cbs磁盘容量以10Gi为倍数 腾讯云容器服务默认应用CBS云硬盘作为存储,容量只反对10Gi的倍数,如果定义pvc时指定的容量不是10Gi的倍数,就会挂盘失败。装置KubeSphere时,批改下ClusterConfiguration中各个组件的volumeSize配置,确保是10Gi的倍数。 (二)卸载卡住与卸载不洁净导致重装失败 有时装置出问题,心愿卸载重装,应用KubeSphere官网文档从 Kubernetes上卸载KubeSphere中的kubesphere-delete.sh脚本进行清理,可能会呈现卡住的状况。通常是有finalizer的起因: 编辑资源删除相应finalizer即可。如果清理不洁净,重装还会报错: 通常是关联的一些MutatingWebhookConfiguration,ValidatingWebhookConfiguration,ClusterRole, ClusterRoleBinding等资源没清理,能够依据ks-installer日志定位并清理。 (三)监控不兼容导致看不到超级节点中Pod的监控 KubeSphere部署完后看工作负载的Pod列表,没有超级节点上Pod的监控数据: 是因为KubeSphere启用的监控,采集cadvisor监控数据的采集规定是,拜访所有节点的10250端口去拉监控数据,而超级节点的IP是个无奈路由的“假”IP,所以拉不到数据。 解决方案: 依照以下步骤减少自定义采集规定。 筹备secret yaml scrape-config.yaml: apiVersion: v1kind: Secrettype: Opaquemetadata: name: additional-scrape-configs namespace: kubesphere-monitoring-systemstringData: additional-scrape-configs.yaml: |- - job_name: kubelet # eks cadvisor 监控,为兼容 ks 查问,固定 job 名为 kubelet honor_timestamps: true metrics_path: '/metrics' params: collect[]: - 'ipvs' scheme: http kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_annotation_tke_cloud_tencent_com_pod_type] regex: eklet action: keep - source_labels: [__meta_kubernetes_pod_phase] regex: Running action: keep - source_labels: [__meta_kubernetes_pod_ip] separator: ; regex: (.*) target_label: __address__ replacement: ${1}:9100 action: replace - source_labels: [__meta_kubernetes_pod_name] separator: ; regex: (.*) target_label: pod replacement: ${1} action: replace - source_labels: [__meta_kubernetes_namespace] separator: ; regex: (.*) target_label: namespace replacement: ${1} action: replace metric_relabel_configs: - source_labels: [__name__] separator: ; regex: container_.* replacement: $1 action: keep - target_label: metrics_path replacement: /metrics/cadvisor action: replace - job_name: eks # eks cadvisor 之外的其它监控 honor_timestamps: true metrics_path: '/metrics' params: collect[]: - 'ipvs' scheme: http kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_annotation_tke_cloud_tencent_com_pod_type] regex: eklet action: keep - source_labels: [__meta_kubernetes_pod_phase] regex: Running action: keep - source_labels: [__meta_kubernetes_pod_ip] separator: ; regex: (.*) target_label: __address__ replacement: ${1}:9100 action: replace - source_labels: [__meta_kubernetes_pod_name] separator: ; regex: (.*) target_label: pod replacement: ${1} action: replace - source_labels: [__meta_kubernetes_namespace] separator: ; regex: (.*) target_label: namespace replacement: ${1} action: replace metric_relabel_configs: - source_labels: [__name__] separator: ; regex: (container_.*|pod_.*|kubelet_.*) replacement: $1 action: keep创立secret: ...

September 22, 2022 · 2 min · jiezi

关于容器服务:更高更快更稳看阿里巴巴如何修炼容器服务内外功

作者 | 守辰、志敏起源|阿里巴巴云原生公众号 11 月 11 日零点刚过 26 秒,阿里云再一次抗住了寰球最大的流量洪峰。往年 双11 是阿里经济体外围零碎全面云原生化的一年,相比去年外围零碎的上云,云原生化不仅让阿里享受到了云计算技术老本优化的红利,也让阿里的业务最大化取得云的弹性、效率和稳定性等价值。 为应答 双11,阿里云原生面临怎么的挑战?===================== 为了反对阿里这样大规模业务的云原生化,阿里云原生面临怎么样的挑战呢? 集群多、规模大基于对业务稳定性和零碎性能等方面的综合思考,大型企业往往须要将业务集群部署到多个地区,在这样的场景下,撑持多集群部署的容器服务能力十分必要。同时,为了简化多集群治理的复杂度,以及为不能实现跨集群服务发现的业务提供反对,还须要关注容器服务中单个集群对大规模节点的治理能力。另外,大型企业的业务简单多样,因而一个集群内往往须要部署丰盛的组件,不仅包含次要的 Master 组件, 还须要部署业务方定制的 Operator 等。集群多、规模大,再加上单个集群内组件泛滥, 容器服务的性能、可扩展性、可运维性都面临着很大的挑战。 变动快、难预期市场瞬息万变,企业,特地是互联网企业,如果仅凭借教训、依附布局来应答市场变动,越来越难以撑持业务倒退,往往须要企业疾速地进行业务迭代、部署调整以应答市场的变动。这对为业务提供利用交付疾速反对、弹性伸缩性能和疾速响应撑持的容器服务提出了很大的要求。 变更多、危险大企业 IT 零碎的云原生化过程不仅要面临一次性的云迁徙和云原生革新老本,还将继续应答因为业务迭代和基础设施变更、人员流动带来的危险。而业务的迭代、基础设施的变更会无奈防止地为零碎引入缺点,重大时甚至造成故障,影响业务失常运行。最初,这些危险都可能会随着人员的流动进一步加剧。 阿里云容器服务大规模实际============ 高扩展性为了进步容器服务的可扩展性,须要自底向上、联动利用和服务一起优化。 1)接口最小化针对下层 PaaS,容器服务依靠 OAM(Open Application Model) 和 OpenKruise Workload 提供了丰盛的利用交付能力形象。对于 PaaS 层来说,只须要读取汇总的利用部署统计数值即可,极大缩小了下层零碎须要批量查问 pod、event 等信息的工作量,进而减小了对容器服务的管控压力;同时,通过把数量多、占用空间大的 pod 及 events 信息转存到数据库中, 并依据数据库中的内容提供一个对立的、可内嵌的部署状态查看和诊断页面的形式,能够使 PaaS 层防止间接拜访容器服务来实现相干性能。 2)分化而治之“分化而治之”是指要对业务做出正当的划分,防止因为所有业务和利用都集中在少数几个命名空间中,导致容器服务管控(控制器和 APIServer)在查问命名空间下所有资源时产生过大耗费的状况。目前在阿里外部最宽泛的实际形式是应用“利用名”做为命名空间。一方面利用是业务交付的根本单位,且不受组织调整的影响;另一方面,容器服务的组件以及业务本人的 Operator,在解决时往往会 list 命名空间下的资源,而命名空间默认在控制器和 APIServer 中都实现有索引,如果应用利用作为命名空间能够利用默认的索引减速查问操作。 3)苦修内外功对于容器服务的外围管控,须要扎实的内功做根底。针对大规模的应用场景,阿里云的容器服务进行了大量的组件优化,比方通过索引、Watch 书签等的形式,防止间接穿透 APIServer 拜访底层存储 ETCD,并通过优化 ETCD 闲暇页面调配算法、拆散 event 和 lease 存储至独立 ETCD 的办法,晋升 ETCD 自身的存储能力,其中不少曾经反馈给了社区,极大升高了 ETCD 解决读申请的压力。 详情可查看:https://4m.cn/JsXsU。 ...

December 7, 2020 · 2 min · jiezi