• [问题求助] kubeegde是啥
    我想要学习 这个东西 来个大佬解释一下
  • [技术干货] 【云原生开发场景实践案例】基于开源组件Prometheus监控指标的容器集群弹性伸缩实践
    CCE(华为云容器集群服务)提供云原生监控插件(kube-prometheus-stack),可全面对接开源Prometheus生态,支持类型丰富的组件监控,并提供了多种开箱即用的预置监控大盘。本文就分享了基于Prometheus指标的弹性伸缩实践。准备工作:有华为云账号,且经过实名认证操作步骤:1 创建一个集群1.1 购买集群登录CCE控制台,在“集群管理”页面右上角单击“购买集群”。在“购买集群”页面,按需填写集群配置参数。如果没有虚拟私有云和子网可以参考以下操作:登录控制台,在搜索栏搜VPC,点击进入网络控制台页面点击右上角“创建虚拟私有云”按钮,进行创建。如下图配置VPC和子网信息,名称和网段自定义即可,最后点击右下角“立即创建”按钮创建后如下图显示在集群配置页面选择已创建的子网和私有云即可,单击“下一步:插件选择”,选择创建集群时需要安装的插件。单击“下一步:插件配置”,配置插件。参数填写完成后,单击“下一步:确认配置”,显示集群资源清单,确认无误后,单击“提交”。集群创建预计需要5-10分钟,您可以单击“返回集群管理”进行其他操作或单击“查看集群事件列表”后查看集群详情。2 安装云原生监控插件2.1 安装插件登录CCE控制台,单击集群名称进入集群,单击左侧导航栏的“插件中心”。在“插件中心”页面右侧找到云原生监控插件,单击“安装”。2.2 参数配置本地数据存储:本实践使用本地存储监控数据,监控数据可选择是否上报至AOM或三方监控平台。自定义指标采集:该配置在本实践中必须选择开启,否则将无法采集自定义指标。3 获取Prometheus监控数据3.1 部署测试应用进入节点列表点击节点名称进入ECS控制台,选择远程登录,使用CloudShell登录到云主机。1)创建sample-app.yaml文件,通过yaml文件部署名称为“sample-app”的应用:内容如下:apiVersion: apps/v1kind: Deploymentmetadata:  name: sample-app  labels:    app: sample-appspec:  replicas: 1  selector:    matchLabels:      app: sample-app  template:    metadata:       labels:        app: sample-app    spec:      containers:       - image: swr.cn-east-3.myhuaweicloud.com/container/autoscale-demo:v0.1.2 #示例镜像        name: metrics-provider         resources:          requests:            cpu: 250m            memory: 512Mi          limits:            cpu: 250m            memory: 512Mi        ports:        - name: http          containerPort: 8080   #容器暴露的端口      imagePullSecrets:        - name: default-secret---apiVersion: v1kind: Servicemetadata:  name: sample-app  namespace: default  labels:     app: sample-appspec:  ports:     - port: 80      name: http      protocol: TCP      targetPort: 8080  selector:    app: sample-app   type: ClusterIP2)创建工作负载。登陆容器集群后台,执行命令行创建工作负载:kubectl apply -f sample-app.yaml3.2 创建ServiceMonitor监控自定义指标1)创建servicemonitor.yaml文件,内容如下:apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitormetadata:  name: sample-app  # ServiceMonitor名称  namespace: defaultspec:  endpoints:        # 定义要监控的服务的端点,包括名称、端口、路径、协议等信息  - interval: 30s   # 表示Prometheus Operator将每30秒检查一次服务是否需要添加到监控目标列表中    port: http    path: /metrics  namespaceSelector:    any: true  selector:     matchLabels:      app: sample-app  #需要采集数据的对象标签2)创建ServiceMonitor登陆容器集群后台,执行命令行创建监控服务:kubectl apply -f servicemonitor.yaml4 修改Prometheus配置文件4.1 修改自定义指标采集规则修改Prometheus的adapter-config配置项,通过修改user-adapter-config中rules字段将Prometheus暴露出的指标转换为HPA可关联的指标。(HPA策略即Horizontal Pod Autoscaling,是Kubernetes中实现POD水平自动伸缩的功能。)在rules字段下添加自定义指标采集规则。以收集内存指标示例如下:rules:- seriesQuery: container_memory_working_set_bytes{namespace!="",pod!=""}  resources:    overrides:      namespace:         resource: namespace      pod:         resource: pod  name:    matches: ^(.*)_bytes    as: ${1}_bytes_per_second #此处${1}取值为matches:"^(.*)_bytes"中^(.*)匹配到的值  metricsQuery: sum(<<.Series>>{<<.Label Matchers>>}) by (<<.GroupBy>>)重新部署monitoring命名空间下的custom-metrics-apiserver工作负载。(monitoring命名空间是安装云原生监控插件时自动生成,无需手动创建)在容器集群后台执行命令查看采集指标是否添加成功。kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1/namespaces/default/pods/*/container_memory_working_set_bytes_per_second5 创建HPA策略5.1 使用自定义指标创建HPA策略。创建hpa.yaml文件,内容如下:kind: HorizontalPodAutoscalerapiVersion: autoscaling/v2metadata:  name: sample-app-memory-highspec:# HPA的伸缩对象描述,HPA会动态修改该对象的Pod数量。  scaleTargetRef:    apiVersion: apps/v1    kind: Deployment    name: sample-app# HPA的最小Pod数量和最大Pod数量。  minReplicas: 1  maxReplicas: 10# 监控的指标数组,支持多种类型的指标共存。  metrics:  - type: Pods    pods:      metric:         name: container_memory_working_set_bytes_per_second   # 使用自定义容器指标      target:        type: AverageValue  # AverageValue类型的目标值,Pods指标类型下只支持AverageValue类型的目标值        averageValue: 1024000m   # 此处1024000m代表1KB创建HPA策略。kubectl apply -f hpa.yaml查看HPA策略是否生效。kubectl get hpa sample-app-memory-high6 实验结束弹性伸缩之前:弹性伸缩之后:
  • [技术干货] 【云原生开发场景实践案例】短时高负载场景云容器集群实现Serverless弹性伸缩实践
    名词解释:CCE:华为云容器集群服务。  CCI:华为云Serverless容器引擎。开发场景:用户在业务短时高负载场景下,使用的容器集群资源不足,业务能动态扩容到基于Serverless的集群。解决方案:基于CCE突发弹性引擎(对接CCI)插件,支持用户在短时高负载场景下,将部署在云容器引擎CCE上的容器实例(Pod),弹性创建到云容器实例CCI服务上,以减少集群扩容带来的消耗。本文以无状态负载下的容器集群扩容为例,详细介绍CCE集群弹性扩展到CCI服务的案例实践。1 创建VPC网络1.1 创建VPC登录控制台,在搜索栏搜VPC,点击进入网络控制台页面​点击右上角“创建虚拟私有云”按钮,进行创建。​如下图配置VPC和子网信息,名称和网段自定义即可,最后点击右下角“立即创建”按钮​​创建后如下图显示​2 创建CCE集群并安装插件2.1 登录CCE控制台。选择云容器引擎CCE,单击进入CCE集群总览页面。​2.2 创建CCE集群进入云容器引擎CCE界面,点击右上角“购买集群”按钮。​2.3 配置CCE集群信息如下图选择配置信息。​​​2.4 安装插件选择CCE突发弹性引擎(对接CCI)插件进行安装​​​2.5 CCE集群创建完毕​2.6 第二种安装插件方法在导航栏进入“云容器引擎CCE”后,在页面左侧单击“插件中心”,进入插件中心首页,选择“CCE 突发弹性引擎 (对接 CCI)”插件,单击“安装”。配置插件参数:点击安装后,会弹出安装插件配置页面,集群名称选中刚创建好的cce集群。最后点击“安装”即可。​3 创建节点3.1 创建节点在下图点击…后出现创建节点选项,点击进入​​3.2 配置信息计费模式选择按需计费,可用区选“可用区1”,服务器规格选择我们需要的型号。弹性公网IP选择“自动创建”选项。公网带宽选择“按流量计费”。最后点击“规格确认”​​3.3 创建第二个节点按以上方法再创建一个节点​3.4 节点管理显示节点创建成功后,在集群总览页面,点击“节点管理”选项,再点击“节点”显示如图​在云服务器控制台中显示如下​返回云容器引擎 CCE控制台集群管理页面,可查看集群节点和使用率信息如下​4 工作负载下发4.1 登录CCE控制台。选择云容器引擎CCE,单击进入CCE集群总览页面。​4.2 创建工作负载在导航栏左侧单击“工作负载”,进入工作负载首页。​单击“创建工作负载”按钮​4.3 配置工作负载信息4.3.1 填写基本信息。负载类型配置为无状态负载,“CCI弹性承载”选择“强制调度”策略。  ​4.3.2 调度策略说明​4.3.3 进行容器配置。填写镜像名称等信息。镜像名称填入:swr.cn-east-3.myhuaweicloud.com/container/autoscale-demo:v0.1.2​4.3.4 配置完成单击左侧栏“工作负载”显示成功创建信息。​在工作负载页面,选择工作负载名称,单击进入工作负载管理界面。进入云容器实例CCI页面,点击工作负载选项下的Pod选项,显示两个节点信息。​​5 验证CCE容器实例弹性伸缩到CCI服务工作负载所在节点为CCI集群,说明负载已成功调度到CCI服务。5.1 第一种验证方式:控制台页面。点击所在节点信息进入CCI界面​显示所在节点为virtual-kubelet,点击进入为云容器实例页面,说明已经成功调度到CCI服务​​5.2 第二种验证方式:命令行方式远程登录实例,输入密码​输入命令 kubectl get pod -A -owide  获取所有pod的信息​显示结果virtual-kubelet和实例名称 验证负载已成功调度到CCI服务6 弹性伸缩扩容6.1 登录CCE控制台,进入工作负载点击集群的“工作负载”选项​6.2 点击弹性伸缩选项找到自建的工作负载,点击右侧更多,点击“弹性伸缩”选项​6.3 选择弹性伸缩策略及插件安装弹性伸缩策略类型选择“HPA+CronHPA策略”,点击下方安装插件链接,安装cce-hpa-cintroller插件​插件规格选择“系统预置规格”,点击右下角“安装”​6.4 创建弹性伸缩策略安装插件后,打开启用策略按钮,添加策略规则,查看并确认配置好的弹性伸缩策略规则,点击创建​配置策略规则信息,目标实例数设置为3,现有实例为2,即新增1个实例。触发时间选择自定义时间,为了尽快显示效果本实验选择距离当前时间2分钟后的时间即10:20,点击确定。​​6.5 确认弹性伸缩策略信息创建弹性伸缩策略成功后如下显示。​6.6 查看弹性伸缩扩容情况到指定触发时间10:20后,刷新页面,实例列表中显示实例由2个增加为3个,可通过创建时间查看确认新实例​6.7 关闭弹性伸缩策略实验结束后,在弹性伸缩页面关闭弹性伸缩策略,避免每天生效。​7 实验结束结论:CCE容器实例成功弹性伸缩到CCI服务,并成功进行CCE弹性伸缩扩容操作。
  • [问题求助] docker镜像push时,单层不超10G,push失败,提示denied: Authenticate Error,如何解决
    docker镜像push时,单层不超10G,且有部分层状态为pushed,但存在一些层为pushing状态,进度条已拉满,但仍push失败,该如何解决?
  • [公告] 【CCE Autopilot专栏】资源成本降低60%,Serverless的省钱秘籍
    自Serverless概念问世以来,它就被赋予了诸多标签,如全托管、免运维、极速弹性以及极致成本,CCE Autopilot作为华为云容器Serverless家族的新成员,自从发布以来受到了广泛的关注。CCE Autopilot以更低的集群管理费用和数据面资源的按需秒级计费模式,被视为企业降本的利器。然而,一些细心的客户在细致计算后发现,CCE Autopilot的资源单价似乎比ECS虚拟机的同等规格价格更高。CCE Autopilot是否真的能做到有效降本?为了解答这一疑惑,本文将深入探讨CCE Autopilot如何帮助客户实现最佳成本优化。基于Serverless架构,CCE Autopilot提供了以下成本优化方面的优势:• 运维成本: 通过自动化管理,显著减少基础设施的运维人力投入。• 时间成本: 实现快速的应用发布和高效的产品迭代。• 资源成本:采用按需计费模式,有效减少资源浪费。运维和时间成本因缺乏统一标准而难以量化,这使得它们无法被立即感知, 相比之下,资源成本则可以通过每月流水直观呈现,这也是大多数客户最关心的部分,Autopilot如何为客户节省成本?我们通过一个客户案例来了解。X 客户公司的核心业务是数字化娱乐平台。每日 21 点至凌晨 2 点是其业务高峰期,在此期间的流量约为低峰期流量的 10 倍,而周末的峰值流量更是低峰期流量的 15 倍以上。为了有效应对每日的流量高峰,客户按照业务的最大峰值预留资源,购入了 100 台 16u 的服务器,共计 1600vCPU 的资源。然而,每天约有16个小时,该客户的资源使用量都不足 10%。在切换至 CCE Autopilot 集群之后,在每日约 16 个小时的低峰期,客户仅需之前资源总量的 20% 就可以保障业务在低峰期稳定运行;而在高峰期,则通过弹性方式自动进行扩容。通过优化容器资源规格设置、弹性策略使资源利用更高效、购买套餐包等一系列Serverless 改造,实现整体资源成本消耗降低了 60%。通过此案例可以看出CCE Autopilot 集群相较于传统模式能够显著降低资源成本。接下来我们具体介绍客户案例中CCE Autopilot降低成本的三个最佳实践。▍一、优化容器资源规格设置传统的节点模式下,通常我们会先依据流量峰值规划业务资源,再购买节点 。在此过程中,我们常常会设置一个较小的 request 值以确保 POD 能够顺利调度,同时设置一个较大的 limit 值以便共享节点资源,特别是在新增 POD 的场景下,为了尽可能减少资源用量,往往会选择一个稍显空闲的节点“挤一挤”。然而,这种模式也带来了一些问题:节点资源实际使用率低:据 Gartner 统计,企业集群节点CPU 平均使用率不足 15%。由于需要预留高峰时期的资源以及申请资源时存在不确定性,节点实际利用率较低。高峰时节点存在过载风险:为了更多地利用资源,每个节点配置的 limit 总和往往远大于节点规格。一旦出现业务波峰,很有可能超过节点资源上限,从而出现过载情况。Serverless 模式下计费是按照实际资源规格,即 limit 的规格来收费的。然而许多客户在从传统的节点模式向 Serverless 模式迁移过程中仍然采用了节点模式下的资源配置方式,导致很多客户在计算成本时觉得 Serverless 模式成本变高。CCE Autopilot场景下,充分利用Serverless的按量计费的特性,合理设置POD的规格可以有效降低使用成本。CCE Autopilot 支持最小0.25u的起步规格以及1:1~1:8的宽CPU:内存配置范围,能够满足不同场景下的业务容器规格需求。相较于节点模式,Serverless场景下资源可以做到按需秒级弹性,不再需要提前预留资源,可以根据实际业务需求定义容器资源大小,通过设置合理的容器规格可以有效降低业务低峰时的资源量。在上述的客户案例中,客户其中四个核心应用部署在20个16u节点上,节点容器limit规格总和约30u,超过ECS虚机规格的87.5%。但是每个节点的实际资源利用率用在业务低峰的16个小时内不足10%,切换到CCE Autopilot集群后,客户重新规划了pod规格,按照实际资源使用量调整了每个pod的limit值,每个应用仅保留最小实例数。进行改造后,低峰时的资源消耗降低了80%以上。▍二、通过弹性策略使资源利用更高效在节点模式下,由于整体的资源量基本已经固定,应用副本数量的弹性伸缩不会带来太多的成本收益,然而在Serverless模式下每减少一个POD都会减少对应的成本支出。因此让资源更加贴合我们的实际业务时,能达到成本的极致优化。CCE Autopilot 支持的秒级弹性伸缩能力,可以在扩缩容过程中实现应用无感,配合HPA、CronHPA等丰富的自动弹性策略,能够极大的优化使用成本。基于HPA有效提高资源利用率:HPA旨在通过对一系列指标(如:CPU、内存、网络、磁盘等)的监控实现自动的资源扩缩,可以根据业务的敏感类型关联合适的指标, 做到资源随业务同步波动。HPA弹性的POD数量范围可以根据日常监控指标逐步优化,最小值接近业务低谷时最小规格可以有效降低资源成本投入。HPA+CronHPA 轻松面对各种周期性弹性场景:CronHPA提供了周期性的弹性方案,可以基于日、周、月、年灵活的配置弹性周期。大多数客户场景都存在一定周期性稳定的波动,但是随着业务的变化,周期性弹性的资源也需要不断的调整,频繁的更改参数也会增加运维负担,将CronHPA的策略作用于HPA,通过CronHPA实现整体的范围控制,HPA进一步在基础上细化资源的雕刻,能够实现更加精益的资源管理。在上述的客户案例中,客户也同样采取了HPA+CronHPA弹性的方案,每天业务高峰提前扩容,再根据CPU使用量动态进行扩容,核心业务弹性阈值为60%,在业务高峰场景下能做到分钟级弹性100+POD,相较于原来的场景业务高峰时段资源消耗降低了20%。客户通过重新规划容器低峰时资源规格+动态扩容的方式做到了整体资源使用量降低60%。▍三、套餐包模式提供包周期的价格按需的使用体验Serverless 场景下按需资源使用是其最大的亮点,但是如果用按需的单价跑一些长稳的业务就不够划算。传统的包周期模式能够让客户享受更低的折扣,但是灵活性较差,对于Serverless这种资源需要灵活扩缩的场景并不友好。为此,CCE Autopilot 推出了套餐包,让用户可以一次购买一定量的CPU核时和内存GB时,套餐包中的资源被使用完以后,用户可以继续购买套餐包,始终可以按照包周期的价格享受Serverless的灵活模式。目前CCE Autopilot的套餐包分为包月和包年两种模式,提供了1000,10000, 100000(CPU单位 核时,内存单位 GB/时)三个不同档位满足不同用量的客户述求,包年套餐折算后最低最约为按需价格的6折,可以有效为客户节省成本投入。更多优惠活动详见华为云容器专场官网cid:link_0▍总 结CCE Autopilot能够从架构上极大地解决资源率低的问题,从而带来整体成本支出上的减少。Serverless模式同时也带来了我们对成本全新的理解:从以固定资源到以动态应用为中心:传统的资源管理往往依赖于固定的资源配置,而Serverless架构的资源则是跟随业务自动调整。从固定成本到按需付费:Serverless架构能够根据业务需求自动扩缩资源,用户只需为实际使用的资源付费,而不是预先购买固定数量的资源。当我们从Serverless视角重新审视资源成本构成以后,就可以充分利用Serverless架构的优势,实现成本效益最大化。云容器引擎 CCE
  • [问题求助] 华为云容器镜像docker登陆后push时仍然提示未登录 denied: You may not login yet 
    华为云容器镜像docker登陆后push时仍然提示未登录 docker login -u cn-north-4@XXXXXXXXXX-p XXXXXXXXXXXX swr.cn-north-4.myhuaweicloud.com WARNING! Using --password via the CLI is insecure. Use --password-stdin. WARNING! Your password will be stored unencrypted in /home/crf/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credential-stores  Login Succeeded  sudo docker push swr.cn-north-4.myhuaweicloud.com/crf/mynginx:1.0 The push refers to repository [swr.cn-north-4.myhuaweicloud.com/xxxx/mynginx] 825fb68b6033: Preparing  7619c0ba3c92: Preparing  1c1f11fd65d6: Preparing  6b133b4de5e6: Preparing  3d07a4a7eb2a: Preparing  756474215d29: Waiting  8d853c8add5d: Waiting  denied: You may not login yet 
  • [问题求助] codearts 流水线如何对接CCE standard
    codearts  流水线部署任务对接 CCE standard ,运行凤凰商城示例项目流水线部署任务phoenix-cd-cce失败项目背景和参考步骤来源:步骤六:部署应用(CCE篇)_软件开发生产线 CodeArts_华为云 (huaweicloud.com)   ,关键报错如下,  详细日志见问附件[2024/09/30 10:38:37.458 GMT+08:00] fatal: [localhost]: FAILED! => {[2024/09/30 10:38:37.458 GMT+08:00]     "changed": false, [2024/09/30 10:38:37.458 GMT+08:00]     "msg": [[2024/09/30 10:38:37.458 GMT+08:00]         {[2024/09/30 10:38:37.458 GMT+08:00]             "error": "404 page not found\n", [2024/09/30 10:38:37.458 GMT+08:00]             "request_url": "https://07e1b31a-7e39-11ef-a43e-0255ac10026e.cce.cn-north4.myhuaweicloud.com/apis/extensions/v1beta1/namespaces/default/deployments", [2024/09/30 10:38:37.458 GMT+08:00]             "status": "failed"[2024/09/30 10:38:37.458 GMT+08:00]         }请教一下是否需要在部署任务中添加CCE下辖主机到主机清单, 如果是直连模式还是代理模式?除了在任务中选择集群外是否需要添加额外认证信息?
  • [公告] 华为云 CCE FinOps 成本洞察,助力集群成本持续优化
    扫码进入容器活动专场
  • [问题求助] CCE Turbo是如何控制少量节点部的?
     CCE Turbo是如何控制少量节点部的?
  • [技术干货] ELB Ingress网关助力云原生应用轻松管理流量
    ▍背景通常情况下,K8s集群的容器网络平面和外部网络是隔离的,外部网络无法直接访问到集群内部的容器业务,如何为容器提供并管理统一的外部流量入口?社区提供的常见方式是使用Nodeport Service,Loadbalancer Service,Ingress等K8s资源对象来暴露集群内部的容器原生应用。Service对象提供了四层负载均衡能力,Ingress对象则提供了面向应用层访问(HTTP/HTTPS等)的七层负载均衡能力。而随着云原生架构在企业内的普遍落地,容器作为云原生微服务应用的载体,需要面对更多挑战,如面对微服务的复杂组网,业务请求在云服务之间转发往往需要做源地址转换而导致流量分发损耗;游戏类、电商抢购类等业务在短时间内会进行频繁扩缩容,必须应对高并发的网络流量;网关入口流量应对互联网的安全攻击,如灰产、异常流量,需提供流量安全防护能力;此外,支持更加复杂的路由规则配置、多种应用层协议(HTTP、HTTPS、GRPC等)、应用蓝绿发布、流量可观测性等七层高级转发能力也逐渐成为了云原生应用的普遍诉求。Ingress Nginx,Ingress Kong,Traefik等开源社区方案虽然提供了丰富的七层流量治理功能, 但对于关键生产业务上云,企业在选择Ingress方案时,除了考虑功能性,还需要充分权衡安全性、可维护性和可靠性等方面的需求,以找到最佳平衡点。专业的云服务提供商提供托管的Ingress解决方案,能够较好的应对这些挑战。华为云CCE服务提供了基于应用型负载均衡ELB(Elastic Load Balance)的全托管免运维的企业级 Ingress 流量治理,让用户轻松应对云原生应用流量管理。▍ELB Ingress 介绍在K8s集群中,容器网络平面通常是独立于集群主机网络的一个隔离的网络平面,工作负载在滚动升级或者重新调度后容器的地址会有变化,这就带来一个问题:如何实现某组Pod的服务发现,并提供固定的外部访问入口?Service和Ingress对象就是K8s中实现集群内外应用统一访问入口的一种机制。K8s社区对集群外部的流量暴露提供了三种方式:Nodeport Service、Loadbalancer Service、Ingress,前两者Service对象主要提供集群四层流量入口,Ingres对象提供七层流量治理能力。两者相互配合,共同实现K8s集群应用的对外访问机制。如下图一所示,客户端通过Ingress管理的负载均衡器,访问Ingress申明的路由,由负载均衡器将流量经过后端Service导入至后端容器。ELB Ingress是华为云CCE服务提供的七层流量治理功能,基于社区标准Ingress API实现,提供高可用、高性能、高安全、多协议的全托管免运维负载均衡能力。同时具备弹性能力,在流量突发时支持快速扩展计算资源,支持千万级并发连接,百万级新建连接,是云原生应用流量治理的理想选择。▍ELB Ingress工作原理ELB Ingress部署于CCE集群的master节点上,与ELB实例对接,可将Ingress申明的容器后端地址、转发策略、路由等信息配置至ELB实例,并且支持动态更新。图二是基于Nodeport中转的ELB Ingress工作流图,CCE Standard集群使用该方案的原理如下:用户为集群创建Ingress资源,在Ingress中配置流量访问规则,如负载均衡器实例、URL路由、SSL证书等监听信息,以及访问的后端Service等,控制器通过标签选择器选中工作负载,将工作负载所在节点和Nodeport端口挂载至负载均衡器实例的后端;Ingress Controller监听到Ingress资源发生变化时,会根据其中定义的流量访问规则,在ELB侧重新配置监听器以及后端服务器路由;用户通过ELB访问应用程序,流量根据ELB中配置的转发策略转发到对应的Node节点,再经过Nodeport二次转发访问到关联的工作负载(Nodeport转发机制参见k8s官方文档说明)。该方案中流量经过节点、IPTables/IPVS规则多次转发,网络性能存在损耗。在大流量场景下,网络转发效率、网络连通速度的挑战尤为突出。为此,我们推出了基于CCE Turbo集群的网络加速方案:容器直接使用VPC网络实现直通容器的ELB Ingress,将原有的“容器网络 + 虚拟机网络“两层模型简化为一层。如图三所示,集群中的Pod IP直接从VPC中分配,支持北向ELB直通容器,外部流量可以不经过节点端口转发直接访问集群中的Pod,达到流量分发零损耗的效果。▍ELB Ingress流量治理核心优势ELB Ingress基于原生Kubernetes Ingress,通过声明式API指定Ingress的路由、对接的后端服务,或者通过Annotation配置监听侧的高级选项,由系统保证最终一致性。ELB Ingress为开发者和运维人员提供了极大的开发灵活性和维护便利性,其核心优势包括:高吞吐、高可用、高弹性ELB Ingress搭配独享型ELB实例,最高支持2千万并发连接;通过完善的健康检查机制,保障业务实时在线,支持多可用区的同城双活容灾,无缝实时切换;弹性规格ELB实例支持根据流量负载自动弹性扩缩实例规格,适用于业务用量波动较大的场景,例如游戏、视频等行业,能满足瞬时流量同时成本最小化。高安全性ELB Ingress提供了端到端的全链路安全策略,如下图四是外部流量经过ELB访问CCE Turbo集群的简单示例:在访问端可配置接入WAF引擎检测并拦截恶意攻击流量,而正常流量转发至后端云服务器。通过Ingress的Annotation配置可轻松为ELB实例配置自定义安全策略,例如设置黑白名单,双向认证等。从ELB转发至后端也支持HTTPS加密信道,进一步增强整体安全性。可移植性完全兼容社区Ingress语义,从开源Nginx Ingress等方案迁移过来仅需改造annotation即可轻松适配。可观测性云监控可以按时间轴查看ELB的网络流量和访问日志,动态分析并告警潜在风险;云审计可以实时监控ELB资源更新日志,针对风险动作实时告警,动态监控云上资源安全;Ingress Controller也支持丰富的普罗监控指标,如接口调用时延,reload次数等。免维护性ELB Ingress组件运行在集群的Master节点,用户无需关注运维问题,组件在集群升级时会自动更新,且对业务无感。▍ELB Ingress流量治理核心功能在社区基础功能之上,华为云ELB Ingress在负载均衡、路由规则、流量控制、安全性和可观测性等方面都有较大增强,满足了更复杂的生产环境需求。下面介绍ELB Ingress流量治理核心功能:灰度发布灰度发布是业界常用的版本升级平滑过渡的一种方式。在版本升级时,先让部分用户使用新版本,其他用户继续使用老版本。待新版本稳定后,再逐步扩大新版本的使用范围,直到所有用户流量都迁移到新版本上。这样可以最大限度地控制新版本发布带来的业务风险,降低故障影响范围,同时支持快速回滚。我们提供了基于Header/Cookie/Weight的灰度发布策略,前两种策略通过将用户分成若干组,在不同的时间段内逐步引入新版本,最终扩大新版本的影响范围;基于Weight的策略则是通过控制新版本的权重,在不同时间段内逐步增加新版本的流量比例,直到完全替代旧版本。高级转发策略随着云原生应用组网的日益复杂,传统的基于路由转发的七层流量治理已经难以满足需求。我们提供的高级转发策略可以很好地解决传统方案面临的局限性:基于请求头的负载均衡:根据客户端请求头的不同值,将请求分配到不同的后端服务器。HTTP重定向到HTTPS:系统自动将HTTP监听器流量转发至HTTPS监听,提升网站安全性,防止内容篡改等。URL重定向和重写:支持将URL永久或临时映射到另一个URL。同时,支持正则表达式匹配和实现不同路径的重写规则。慢启动在应用滚动升级时,ELB Ingress会自动更新负载均衡器后端,并且根据后端容器实例副本数自动设置后端权重。但是,在后端健康检查通过后的上线过程中,可能面临流量突增,导致后端容器的CPU或内存资源瞬间高负荷,从而影响业务稳定性。在开启慢启动模式后,系统可以在指定时间内,逐步将流量导入到目标容器后端。这样可以缓解业务容器突增的流量压力,保护系统免受过度负载的影响,实现优雅过渡。▍小结华为云CCE服务的ELB Ingress基于华为云应用型负载均衡ELB(Elastic Load Balance)提供强大的Ingress流量管理能力,兼容Nginx Ingress,具备处理复杂业务路由和证书自动发现的能力,支持HTTP、HTTPS和GRPC等协议,满足在云原生应用场景下对超强弹性和大规模七层流量处理能力的需求。后续我们还将发布系列文章,详细介绍基于ELB Ingress的流量管理最佳实践,欢迎各位读者继续关注。相关链接:华为云云容器引擎CCE服务路由概述:cid:link_3Ingress官方文档:cid:link_24步快速使用云容器引擎01注册账号,并登录CCE控制台点击注册帐号,并授予IAM用户相应的权限。登录CCE控制台帐号无需授权即可拥有所有权限,由帐号创建的IAM子用户需要授予相应的权限才能使用CCE,具体请参见权限管理。02 创建集群如果您需要创建普通Kubernetes集群,请参见快速创建Kubernetes集群。03 部署工作负载通过镜像或编排模板创建工作负载(应用)。· 创建无状态工作负载(Nginx)· 部署有依赖关系的WordPress和MySQL04 生命周期管理查看部署后工作负载的状态和日志信息,对工作负载进行相应的升级、伸缩和监控等。具体请参见管理工作负载和任务
  • [问题求助] 在实施混合部署和超实策略时,CCE是如何平衡不同用户和服务的资源需求?
    在实施混合部署和超实策略时,CCE是如何平衡不同用户和服务的资源需求
  • [行业前沿] 华为云CCE Autopilot:引领Serverless容器全面“自动驾驶”
    2024年6月22日,华为开发者大会2024期间,在“全域Serverless时代:技术创新引领,赋能行业实践”专题论坛上,华为云云原生服务产品专家带来主题演讲——Serverless容器的成本效益与敏捷开发之道(The Cost-Effective and Agile Path of Serverless Containers)。他表示,Serverless已成为云原生算力的主流形态,华为云提供CCE Autopilot(Serverless容器集群)和CCI(Serverless容器实例)两款容器产品,并面向垂直场景(如AI、HPC以及Web等)提供Serverless Workloads,简化用户体验。华为云CCE Autopilot以其创新的免运维特性,为容器服务提供全面优化的Kubernetes兼容性,让用户专注于核心业务的创新与实现。▍华为云持续投入Serverless基础设施,简化运维管理,释放创新潜力在云计算的浪潮中,容器技术以其轻量级和高效性,成为企业IT架构转型的强劲动力。然而,随着业务的快速发展,传统的容器服务(Serverful)逐渐暴露出一系列问题:运维管理复杂、弹性速度慢、成本控制困难,这些都严重制约了企业的创新步伐。运维管理复杂:用户需要手动管理底层服务器的资源分配和扩展,不仅涉及到复杂的容量规划和资源调度,还涉及到持续的节点运维故障排查、系统升级等运维活动。运维成本高,需投入大量人力和物力资源。弹性速度慢:用户需制定节点和负载的弹性联合策略,容器弹性扩容通常需要提前对工作节点进行扩容,过程通常需要分钟级别的等待,影响效率和响应速度。成本控制困难:容器节点需要预先分配资源,当资源未被充分利用时,会造成资源浪费,且高负载情况时可能资源不足,难以实现成本效益最大化。华为云容器引擎服务深刻洞察行业痛点,致力于Serverless基础设施的研发与创新,为用户提供全面优化的负载支持。面对独立资源池的管理和运营挑战,华为云容器服务采用Serverless融合底座,实现CPU、内存、GPU等资源的池化管理,提升资源灵活性和可扩展性。基于该融合资源底座,华为云推出CCE Autopilot产品,用户只需管理容器生命周期,享受由融合资源池统一管控的高效率服务,无需过度关注节点负载或资源池承载能力,为用户提供一个灵活且易于管理的计算环境,简化运维管理,释放创新潜力。▍CCE Autopilot: 实现k8s集群托管免运维,加速应用现代化CCE Autopilot是云容器引擎服务推出的Serverless版集群,为用户提供免运维的容器服务,并提供经过优化的Kubernetes兼容能力。在传统的CCE集群模式中, Kubernetes的master节点由华为云托管,用户需要对节点和应用进行统一管理。这要求用户具备一定的Kubernetes管理知识,以便有效地维护和扩展其容器化应用。在CCE Autopilot模式下,华为云不仅托管了k8s的控制节点,还托管了工作节点,用户无需购买节点即可部署应用,这意味着用户只需要关注应用业务逻辑的实现,可以大幅降低运维成本,提高应用程序的可靠性和可扩展性。对比CCE/CCE turbo集群,CCE Autopilot集群核心演进如下:产品Serverless化:增 加集群工作节点托管,实现集群全托管,用户无需对节点的部署、管理和安全性进行维护,集群规格自动弹性伸缩。资源池 化:采用华为云Serverless融合资源池,实现CPU、内存、GPU等资源的池化管理,减少资源碎片,容器资源按需使用。性能全面优化:通过动态预热技术进行资源池预热,资源供给加速,容器秒级弹性,根据负载规模自动扩缩。▍CCE Autopilot关键能力CCE Autopilot通过以下关键能力,重新定义了容器服务的管理和运维,助力企业轻松应对业务挑战,加速创新步伐。智能可靠的集群免运维体验CCE Autopilot通过智能化版本升级、漏洞自动修复和智能调参等技术,给用户提供更稳定、更安全、更智能的集群使用体验。作为全托管的Serverless解决方案,它简化了容量规划和节点购买流程,用户无需管理和维护底层资源设施,大幅减少了运维工作量。这种开箱即用的产品形态,让用户能够专注于核心业务逻辑的开发和部署。持续迭代的极致弹性性能CCE Autopilot以极致性能为核心,联合底层服务构建统一Serverless容器资源底座,通过多级资源池预热技术,精准满足客户多元异构的资源需求,并持续迭代优化性能。无论是面对突发流量、季节性波动还是长期增长,用户无需提前规划和预留资源,实现容器秒级弹性,根据负载规模自动进行扩缩,确保业务的连续性和性能的最优化。用户可以在短时间内快速上线新应用或服务,快速响应市场变化。全面兼容的云原生开源生态CCE Autopilot将Serverless架构优势与云原生开源生态相结合,提供全面兼容Kubernetes生态的Serverless集群,使用户能够根据需求灵活扩展功能。它支持Kubernetes社区版本的全跟随和自动更新,确保用户及时获得最新技术更新和安全补丁,保持技术前沿。未来将持续集成包括安全、应用管理、弹性、CI/CD、AI在内的主流开源软件如OPA Gatekeeper、Knative等,提供开箱即用的应用框架,让客户更加轻松的管理自己的Kubernetes应用。灵活规格与按秒计费CCE Autopilot旨在提供一种灵活、高效且具有成本效益的云服务体验。利用自动化技术,产品能够实现集群规格的动态调整,并且取消了传统的档位限制,用户可以享受从0.25vCPU起步的灵活规格档位,根据自己的具体需求优化资源配比。采用按量计费模式,用户按照实际使用的资源量(以秒为单位)支付费用,实现真正的按需付费,减少不必要的成本支出。安全隔离与自动预警CCE Autopilot基于QingTian架构,实现虚拟机级别的安全隔离能力,并通过专属的container OS提供精简且安全的运行环境。其底层统一资源池设计支持快速故障隔离和修复,确保应用的持续安全稳定运行。系统内置的自动预警机制能够及时识别并预防管控面过载风险,管控组件具备自动弹性能力,在负载增加时能够自动扩展,进一步保障服务的稳定性和可靠性。▍CCE Autopilot典型应用场景华为云CCE Autopilot以其Serverless特性,为多样化的业务场景提供了强大的支持和便利。以下是CCE Autopilot的典型应用场景:SaaS/企业平台的运维与迭代升级CCE Autopilot适合作为SaaS平台和企业平台的坚实底座,尤其适用于需要频繁进行升级和迭代的大型企业资源池。传统模式客户需自运维自升级,运维人力成本巨大。CCE Autopilot的自动化运维减少了对人力资源的依赖,显著降低了运维成本。且对互联网金融等对安全合规性有严格要求的行业,传统驾驶模式客户自运维,OS等保能力建设困难,CCE Autopilot的托管服务不仅简化了节点管理,还提升了系统的安全性和合规性,使企业能够更专注于核心业务的创新与发展。业务高效弹性伸缩针对互联网文娱、社交和网约车等具有明显流量波动的业务,如春节期间流量激增的情况,CCE Autopilot提供的智能资源弹性解决方案,能够根据业务特征和流量预测,动态调整资源配置。这种基于业务感知的弹性策略,避免了传统定时弹性策略中的资源浪费,实现了资源供给与业务需求的高效匹配,帮助企业在保持业务连续性的同时,优化了成本结构。成本优化配置CCE Autopilot为有成本优化诉求的企业用户提供了灵活的资源配置方案。它满足了用户对低成本学习、资源灵活配置的需求,同时支持业务量的自动扩缩,以适应业务的快速增长。CCE Autopilot确保了即使在资源需求较小的初期阶段,用户也能获得高可靠性和性能的服务,随着业务的扩展,资源可以无缝扩展,满足企业对成本效益和业务连续性的需求。▍如何使用CCE Autopilot集群进入华为云控制台,选择云容器引擎CCE产品。在控制台界面,选择购买集群,选择CCE Autopilot集群类型,再进行基础的网络插件等配置,便可进行CCE Autopilot集群创建。集群创建完成后,用户将进入集群的管理界面,在这里可以直接访问Kubernetes资源管理等功能。CCE Autopilot相较于CCE集群,其显著的特点在于省略了节点、节点池管理内容,这得益于产品侧提供了基础设施全托管服务。尽管如此,用户仍然可看到完整的Kubernetes控制面信息。▍总 结华为云CCE Autopilot以其Serverless架构,引领容器服务进入全新时代。它通过免运维、动态资源管理、智能预测和自动化运维,不仅极大简化了IT管理,还显著降低了运营成本,提高了资源的利用效率。同时,CCE Autopilot的兼容性保证了与Kubernetes生态的无缝对接,助用户敏捷应对市场,加速创新步伐。期待更多客户、伙伴与华为云一起开启企业数字化转型的新篇章,共同迎接更加高效、智能的未来!华为云CCE Autopilot限时免费体验,登录华为云官网-活动-云容器 活动专场,了解更多详情:cid:link_0容器活动专场
  • [问题求助] CCE Autopilot是否集成了华为云的其他服务,如存储、网络、监控等?
    CCE Autopilot是否集成了华为云的其他服务,如存储、网络、监控等?
  • [问题求助] CCE Turbo是如何控制少量节点部的?
    CCE Turbo是如何控制少量节点部的?
  • [问题求助] CCE Autopilot支持哪些CI/CD工具集成?
    CCE Autopilot支持哪些CI/CD工具集成?