• [认证交流] 华为云云原生入门级开发者认证学习笔记——第五章
    第5章:Isito技术介绍• 服务网络概念1. 结合K8s做容器化的微服务治理,致力于解决服务间通讯的基础设置层,负责在现代云原生应用程序的复杂服务拓扑来可靠地传递请求。2. 服务治理能力归一到服务网格优点:独立进程、语言无关、治理逻辑升级业务无感知、已有系统无需改造即可治理、可渐进的微服务化限制:代理性能和资源开销。3. 通过一组轻量级网络代理,与应用程序代码部署在一起来实现,但对应用程序透明。4. 服务网格的特点:应用程序间通讯的中间层、轻量级网络代理、应用程序无感知、解耦应用程序的重试/超时、监控、追踪和服务发现。5. 服务网格与微服务框架流量治理对比• Istio初识1. Istio:是云原生应用层技术,提供链接、保护、控制以及观测功能的开发平台。2. 对于云原生应用,采用K8s构建微服务部署和集群管理能力,采用Istio构建服务治理能力,将逐渐成为应用微服务转型的标准配置。3. Istio整体架构图4. Pilot基本架构:将各类平台的特异性服务发现机制抽象化并合成为符合Istio sidecar的标准格式,用来提供服务发现,流量管理。5. Citadel基本架构通过内置身份和凭证管理来实现服务间和最终用户的身份验证。支持的安全功能:流量加密、身份认证、授权鉴权交互拆分:是服务网格的安全组件与NodeAgent一起为工作负载提供证书的签发、轮换; 对下处理来自NodeAgent的CSR请求;Citadel内部签发证书的两种主要形式:本身作为证书签发机构(CA)自己签发;作为RA代理证书签名请求(CSR)请求• Galley基本架构1. 负责配置管理相关的工作:Admission Webhook提供配置校验、MCP Sink提供配置的摄取• Istio应用场景1. 灰度发布2. 流量治理3. 访问可视化4. 业务场景蓝绿发布:提供了一种零宕机的部署方式,在部署应用过程中应用始终在线;金丝雀发布(灰度发布):在生产环境上引一部分实际流量对新版本进行测试,通过在线上运行的服务中,新加入少量的新版本服务,从中快速获得反馈。• Istio流量规划配置简介1. Istio流量管理资源配置初识2. Gateway:为HTTP/TCP流量配置了一个负载均衡,用于启用一个服务的入口流量。3. VirtualService:虚拟服务是Istio重要的资源对象之一。4. DestinationRule:常常与VS配合使用,DestinationRule允许用户针对目标服务配置一些负载均衡、异常检测、连接池以及证书。• Istio常用的流量治理策略1. 策略一:服务注册&发现2. 流量治理策略二:负载均衡支持的负载均衡算法:甲醛轮询、最少请求、环形Hash、随机、优先级负载均衡、Locality加权3. 策略三:路由(流量切分、灰度发布)4. 策略四:熔断机制5. 策略五:故障注入故障注入可以用来识别系统最薄弱的环境,支持HTTP请求响应延时注入和HTTP、gRPC错误码注入两种。6. 策略六:限流Istio支持两种限流方式:中心集中式限流、本地限流7. 策略七:失败重试Istio支持失败重试HTTPRetry,提高系统的Resilience重试次数*重试超时时间不能超过HTTP时间• 服务网格监控-Observability1. Istio以非侵入的方式提供了遥测类型:2. Metrics:应用流量粒度的监控统计:Distributed Traces分布式调用链和Access Logs访问日志3. 服务网格监控:Metics、Istio分布式调用链、Istio分布式调用链拓扑、(Metrics界面图例)(Istio分布式调用链图例)(Istio分布式调用链拓扑图例)
  • [技术干货] 华为云云原生入门级开发者认证宣传片
    华为云云原生入门级开发者认证(HCCDA - Cloud Native ),面向高校学生、个人开发者、企业开发及运维人员,培训与认证云原生开源技术及华为云云原生的理论知识和实操能力。从开源组件到华为云上服务的介绍,使您掌握云原生的核心理念和架构,具备基本开发实践能力。点击,了解更多详情>> 
  • [认证交流] 华为云云原生入门级开发者认证学习笔记——第四章
    第四章:华为云容器服务介绍 学习笔记• 华为云容器全栈服务介绍华为云容器全栈服务一览特点:易使用、易运维、高性能• 云容器引擎CCE1. 基于开源Kubernetes、Docker技术的企业级容器服务。2. 借助云容器引擎,用户可以在华为云上轻松部署、管理和扩展容器化应用程序。3. CCE与Kubernetes关系CCE集群:丰富异构、高性能、安全、统一调度的容器基础设施产品。4. CCE产品架构图A、 丰富的异构算力支持:全面支持华为云各类计算实例、支持存量实例纳管;B、 高性能云原生网络:Overlay模式下网络性能较开源Flannel方案提升30%、Underlay模式下网络性能较直连损耗在55之内;C、 全面安全的云原生能力:安全加固的容器运行时,有效屏蔽各类开源漏洞、容器镜像多种策略扫描、有效识别镜像中风险D、 统一的大规模云原生调度:单集群最大支持1万节点,自研Volcano调度效率较开源调度方案提升30%• CCE使用方式可通过CCE控制台(推荐)、Kubelctl命令行、Kubernetes API使用云容器引擎服务• CCE使用流程CCE集群:标准集群,提供商用级集群服务Turbo集群:面向云原生2.0、大规模、高性能的场景做了计算、网络和调度的全面加速的集群鲲鹏集群:计算架构基于鲲鹏架构• CCE关键特性总览• 集群管理:可一键创建集群,支持多种异构基础设置• 节点\节点池管理节点:节点是容器集群组成的基本元素,取决于业务、既可以是虚拟机、也可以是物理机。节点池管理:节点池中有多个节点,节点参数配置相同,可通过设置节点模板创建节点,通过节点池功能方便实现节点动态扩缩容。• 工作负载:Deployment、Statefulset、Daemonset、Job、CronJob等类型。云容器引擎CCE提供基于Kubernetes原生类型的容器部署和管理能力,支持容器工作负载部署、配置、监控、扩容、升级、卸载、服务发现以及负载均衡等生命周期管理。根据不同工作负载的特点,CCE可提供不同的能力以保证其正常运转。• 亲和/反亲和调度A、 工作负载和可用区的亲和性:基于可用区可设置多条调度策略,只需满足其中一条就会进行调度B、 工作负载和节点的亲和性:基于节点可以设置多条调度策略,只需满足其中一条就会进行调度C、 工作负载间的亲和性:基于工作负载可以设置多条调度策略,但多条策略中设置的标签必须同时出现在一个工作负载中• 容器网络• 持久化卷存储CCE除支持本地磁盘存储外,还支持将工作负载数据存储在华为云的云存储上,当前支持云存储包括四点:本地磁盘存储云硬盘存储文件存储卷对象存储卷• 弹性伸缩根据业务需求和策略自动调整资源使用策略工作负载伸缩:HPA策略,实现Pod水平自动伸缩功能 CustomedHPA:华为云自研的弹性伸缩增强能力,能基于CPU利用率、内存利用率等指标对无状态负载进行弹性扩缩容。节点伸缩:通过节点自动伸缩组件autoscaler实现,根据pod调度状态及资源使用情况对集群的节点进行自动扩缩容。• CCE使用场景• 云容器实例CCI1. 云容器实例:只需要管理运行在Kubernetes上的容器化业务,无需管理集群和服务器即可在CCI上快速创建和运行容器负载。2. CCI和CCE的差别计费模式不同、使用场景不同、资源创建不同3. CCI的使用流程4. CCI关键特性:智能调度:CCI天然支持Volcano异构容器:充分利用华为云底层异构资源,满足业务场景安全容器:每个容器/pod都运行在单独的ECS中,安全性高秒级计费:根据实际使用资源量,按需秒级计费。5. CCI应用场景:AI计算、高性能容器批量处理(Job类任务)、长稳及扩容流量处理• SWR:容器镜像服务1. SWR基本概念—仓库:集中存放镜像的空间。仓库分为公共仓库和私有仓库2. SWR基本概念—容器镜像:镜像,是多个二进制只读层的集合。3. SWR基本概念—组织:组织用于隔离镜像仓库,便于仓库和镜像的管理4. SWR的使用流程:创建组织→镜像获取→应用部署→更新镜像5. SWR镜像管理—上传镜像:客户端上传镜像(客户端版本必须为1.1/1.2以上,镜像每个layer不能超过10G)/页面上传镜像(每次最多上传10个文件,单文件大小不超过2G)6. SWR镜像管理—编辑镜像属性:包括镜像的类型、分类和描述信息7. SWR镜像管理—共享私有镜像:只有账号所有者或具备该私有镜像管理权限的IAM用户才能进行分享8. SWR镜像管理—添加触发器:实现镜像版本更新时,自动更新使用该镜像的应用。可全部触发、指定版本号触发或正则触发9. SWR镜像管理—镜像老化规则:可从存活时间和版本数目两个规则进行设置10. SWR镜像管理—自动同步镜像11. SWR镜像管理—镜像安全扫描:一键对镜像进行安全扫描,确保所用镜像安全12. SWR镜像管理—设置镜像加速器:解决公有镜像因为网络原因导致下载速度慢或下载失败的问题
  • [认证交流] 华为云云原生入门级开发者认证学习笔记——第三章_细化刷新
    第三章:云原生基础设施之Kubernetes学习笔记容器集群管理概述• 容器编排指自动化容器的部署、管理、扩展和联网,其价值:    灵活的资源管理及调度;    自动化部署及服务发现;    高效的监控及运维;    弹性扩展及高可用。• 从Borg到Kubernetes:起源于google内部Borg项目,于2015年7月22日迭代到v1.0并正式对外公布。• 2017年10月17日Docker宣布支持Kubernetes。Kubernetes核心架构与理念• 下图展现K8S的架构和工作流程• 基础的K8s集群通常包含一个Master节点和多个Node节点,每个节点可以是物理机也可以是虚拟机。• Master节点:提供的集群控制,对集群做出全局性决策Kube-apiserver:对外暴露K8s API,接收外部请求,写入etcd,可水平扩展;etcd:分布式数据存储组件,存储集群配置数据,提供数据备份Kube-controller-manager:控制器,执行集群级功能,例如复制组件,跟踪Node节点,处理节点故障等Kube-scheduler:负责任务调度,根据各种条件(如可用的资源、节点的亲和性等)将容器调度到Node上运行• Node节点:运行容器应用,根据Master的要求管理容器的生命周期Kubelet:接受Master指令,负责管理容器(Pod)Kube-proxy:应用组件间的访问代理,解决节点上应用的访问问题    Add-ons:插件,用于扩展K8s的功能Container runtime:容器运行时,如Docker,最主要的功能是下载镜像和运行容器。• 开放接口CRI、CNI、CSICRI:容器运行时的接口,提供计算能力CNI:容器网络接口,提供网络能力CSI:容器存储接口,提供存储能力• K8s工作流程• K8s核心概念:Pod:最小工作单元,每一个Pod包含一个或多个相关容器,K8s将其视为一个整体进行调度。引入Pod目的:扩展和实现生命周期管理。相同POD内的容器:使用相同的namespace空间,即有相同的IP地址和port,使用同一个localhost,volume可挂载到所有pod内的容器实现共享。但pod中每个容器的cpu和memory等资源通过其自身cgroup来做限制。Label:为资源打上标签,方便分类管理Namespace:在集群中对资源进行组织上的隔离。四个默认namespace:default、kube-public(公共访问区)、kube-system(系统资源区,如kubelet、kubeproxy等)、kube-node-lease。每个资源仅属于一个namespace,不同namespace中的资源命名可以相同;通过ResouceQuota做资源限制;全局资源不属于某一个namespaceConroller:控制器,K8S通过控制器管理PodService:定义Pod逻辑集合及访问策略,为Pod提供了负载均衡,通过label来选择Pod。Volume:管理Kubernetes存储,声明Pod中容器可以访问的文件目录,需挂载。Kubernetes应用编排与管理• Kubectl:K8s的命令行工具;指令式:kubectl [command] [TYPE] [NAME] [flags]声明式:kubectl apply –f [yaml文件名] .yaml文件的必选配置字段:apiVersion,kind,metadata,spec• YAML的语法规则Label的形式为key-value形式大小写敏感使用缩进表示层级关系,缩进使用空格而非tab,相同层级的元素左侧对齐在同一个yaml配置文件内可以同时定义多个资源• Kubernetes管理的对象类型总览:• 状态工作负载:Deployment、ReplicaSet• Deployment控制器下的每个Pod除了名称和IP地址不同,其余完全相同。Deployment可以根据需要同故宫Pod模板创建Pod或者删除任意一个Pod。• ReplicaSet,确定Deployment中Pod的副本数量• 从大到小的管理逻辑为:Deployment>ReplicaSet>Pod>容器• 创建Deployment指令式:kubectl create deployment deployment_name --image=image_name –replicas=number声明式:vi filename.yaml [注意,此处 kind: Deployment]                       Kubectl apply –f filename.yaml• 查看deployment创建情况:kubectl get deployment• 滚动更新:使用新的实例逐步更新Pod实例,零停机进行工作负载的更新。更新Deployement:kubectl edit deploy nginxkubectl set image deploy nginx nginx=nginx:1.9.1 kubectl apply -f nginx.yaml    • 查看Deployment滚动更新情况/历史:kubectl rollout status deploy nginxkubectl rollout history deploy nginx• 回滚:kubectl rollout pause deploy nginxkubectl rollout resume deploy nginx• 有状态工作负载:StatefulSet:StatefulSet给每个Pod提供固定名称,Pod名称增加从0-N的固定后缀,Pod重新调度后Pod名称和HostName不变。StatefulSet通过Headless Service给每个Pod提供固定的访问域名。每个Pod有单独存储,StatefulSet通过创建固定标识的PVC保证Pod重新调度后还是能访问到相同的持久化数据。创建StatefulSet,yaml文件指定kind为StatefulSet,并指定volumeMounts• 守护进程工作负载:DaemonSetDaemonSet(守护进程集)在集群的每个节点上运行一个Pod,且保证只有一个Pod,适合系统层面的应用,例如日志收集、资源监控等Yaml文件创建DaemonSet时,kind选择DaemonSet,不需要规定replicas项。• Jobs:主要处理短暂的一次性任务,Job管理的Pod根据用户的设置把任务成功完成就自动退出(Pod自动删除),Jobs特点:保证指定数量Pod成功运行结束。支持并发执行。支持错误自动重试。支持暂停/恢复Jobs。• 创建JobsKind选择Job。Completions当前的任务需要执行的Pod数量。Parallelism表示最多有多少个并发执行的任务。RestartPolicy只能选择Never或OnFailure。BackoffLimit参数指定job失败后进行重试的次数。• CronJob:处理周期性或者重复性的任务,可使用Cron格式快速指定任务的调度时间,在yaml文件中kind选择CronJob,spec中的schedule: "* * * * *" 用来进行配置┌───────────── minute (0 - 59)│ ┌───────────── hour (0 - 23)│ │ ┌───────────── day of the month (1 - 31)│ │ │ ┌───────────── month (1 - 12)│ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday;│ │ │ │ │ 7 is also Sunday on some systems)│ │ │ │ ││ │ │ │ │* * * * *    如果您想要每个月的第一天里面每半个小时执行一次,那就可以设置为" 0,30 * 1 * * " 如果您想每个星期天的3am执行一次任务,那就可以设置为 "0 3 * * 0"。Kubernetes服务发布• Pod特征:有独立IP、扩缩容时数量会变更、故障时ReplicaSet会创建新的Pod• Service定义了访问逻辑上一组Pod的策略,有如下如所示3种类型• ClusterIP:提供一个集群内部的虚拟IP地址以供Pod访问(默认模式) • NodePort:在Node上打开一个端口以供外部访问• LoadBalance:通过外部的负载均衡器来访问。如果创建一个LoadBalancer,系统则会创建一个NodePort,NodePort则会创建ClusterIP。• Ingress:七层负载均衡,基于七层的HTTP和HTTPS协议进行转发Ingress资源:一组基于域名或URL把请求转发到指定Service实例的访问规则,是Kubernetes的一种资源对象,通过接口服务实现增、删、改、查的操作。Ingress Controller:请求转发的执行器,用以实时监控资源对象Ingress、Service、End-point、Secret(主要是TLS证书和Key)、Node、ConfigMap的变化,解析Ingress定义的规则并负责将请求转发到相应的后端Service。Ingress Controller在不同厂商之间的实现方式不同,根据负载均衡器种类的不同,可以将其分成ELB型和Nginx型。Kubernetes存储管理• Volume的核心是一个目录,用于Pod中的容器共享文件,与挂在它的Pod的生命周期相同。Pod不存在时,临时卷类型(emptyDir、ConfigMap、Secret等)中的数据会被销毁,持久化存储的卷(hostPath、PVC等)中的数据会保存。Volume不能独立创建,只能在Pod中定义。• emptyDir:一种简单的空目录,主要用于临时存储,适用于缓存空间,日志采集等场景。• ConfigMap:用于存储应用所需配置信息(key-value 形式)的资源类型,在被Pod引用前需单独定义。在Volume中引用ConfigMap:就是通过文件的方式直接将ConfigMap的每条数据填入Volume,每条数据是一个文件,键就是文件名,键值就是文件内容。• Secret:与ConfigMap类似,都是key-value键值对形式,使用方式也相同;Secret会加密存储,所以适用于存储敏感信息。只有Pod请求的Secret在其容器中才是可见的,一个Pod不能访问另一个Pod的Secret。• hostPath:能将主机节点文件系统上的文件或目录挂载到Pod中。适用于读取主机上的数据。永远不要使用HostPath存储跨Pod的数据。• PersistentVolume:PV描述的是持久化存储卷,主要定义的是一个持久化存储在宿主机上的目录,比如一个NFS的挂载目录。• PersistentVolumeClaim:PVC描述的是Pod所希望使用的持久化存储的属性,比如,Volume存储的大小、可读写权限等等。• StorageClass:存储类,简称SC,为管理员提供了描述存储 “类” 的方法,通过相应的存储插件(CSI)实现,可根据用户提出的PVC动态提供不同性质的PV。
  • [技术干货] 【论文分享】云原生边缘计算:探索与展望
    云原生边缘计算:探索与展望曾德泽1, 陈律昊1, 顾琳2, 李跃鹏11 中国地质大学(武汉)计算机学院,湖北 武汉 4300742 华中科技大学计算机科学与技术学院,湖北 武汉 430074摘要云原生计算基于低开销容器化的运行方式非常契合边缘计算,因此,提出将云原生技术应用于边缘计算,发挥云原生的优势,使资源管控对应用开发部署透明化。考虑相较于云计算,边缘计算具有资源广分布、高异构、多碎片特征,亟须算网协同的资源管控。根据云原生相关技术的发展现状,整合软件定义网络与网络功能虚拟化等未来网络技术,提出全栈式云原生边缘计算架构。在此基础上,考虑容器的层次化特性,提出适用于有限边缘计算资源的低开销容器部署方法,分析探讨云原生边缘计算所面临的挑战。关键词: 云原生 ; 边缘计算 ; 容器 ; 微服务1 引言为了应对海量终端快速增长的高算力需求,通过计算卸载等方法就可以利用云计算的海量计算资源,这种方法得到了人们的广泛认可。但“端-云”间高时延难以满足诸多实时应用的低时延要求,边缘计算概念应运而生。边缘计算通过将计算需求转移至靠近用户的一侧,利用网络边缘的计算资源承载云计算服务,利用“数据上行、计算下行”的方式,突破了“终端+数据中心”两级架构的局限性,可以满足应用对时延与带宽的需求[1,2,3]。边缘计算利用其独特的地理位置优势以低时延、高带宽的方式提供信息技术服务环境和云计算能力,被视为物联网、5G、大数据、人工智能等领域的关键支撑技术之一,共同促进着工业互联网、车载网络、智能驾驶、虚拟现实/增强现实(VR/AR, virtual reality/augmented reality)、智慧医疗等行业产业的变革[4-5]。特别是随着6G被提上日程,利用边缘计算发展边-端融合系统,通过算网融合调度优化来发挥 6G 的超低时延优势,被视为未来计算的新兴发展趋势[6]。计算优先网络[7]、算力网络[8]、多接入边缘计算[9]等与边缘计算相关概念与技术,说明了边缘计算在未来网络与计算中的重要性,引发了各行各业的广泛关注。从产业现状看,阻碍边缘计算发展的主要因素之一是边缘服务的开发、管控以及边缘应用生态的构建。尽管边缘计算资源管理与任务调度优化已经得到广泛研究和关注[9-10],但截至目前,业界尚未有一套统一标准的资源管理与任务管理框架。尽管边缘计算与云计算具有高度的相似性,但由于其资源异构、设备分布广、资源碎片等特点,传统云计算解决方案(如 OpenStack)在应用于边缘计算过程中存在诸多不适与局限,包括:1) 复杂性,边缘设备能力差异大、网络接入方式多、类型多样的终端设备和服务需求的不同导致复杂性大;2) 难预测性,终端设备的移动性和随时间变化的任务需求使得难以预测;3) 不确定性,边缘设备的资源异构性和任务负载的动态变化造成服务需求的不确定性;4) 高动态性,云数据中心内在的数据和服务按需下行需求造成高动态性。通过上述分析表明,打造边缘计算平台的“操作系统”势在必行。尽管存在差异,云计算的发展历程仍为边缘计算提供了参考与借鉴,诸多解决方案已尝试将云计算相关框架与技术迁移至边缘计算,并根据边缘计算的特点进行定制改进,如针对边缘计算资源广分布的特征对OpenStack进行定制化改进[11]。近年来,云原生正逐渐成为云计算的发展主流。以Kubernetes 为代表的云原生编排系统,被广泛认为将成为分布式系统的核心操作系统。云原生通过容器化、微服务化、松耦合化服务,实现基于服务的快速按需应用编排构建,满足快速迭代的需求驱动应用开发模式,成为软件开发的主导力量[12]。边缘计算作为云计算的拓展,也可有类似的发展思路。硬件低耦合的轻量级云原生支撑技术(如容器)较契合边缘计算的资源特征,容器(如Docker)能够轻量级地实现多个用户之间的隔离,进而实现资源的弹性伸缩管理以及应用的注册、发现、编排、发布,提升应用开发运行效率。此外,相较于云计算,边缘计算的异构性更高,其资源形态多样、网络接入多样、访问特征多样,由应用开发运行维护人员直接管理物理资源,挑战大、效率低。因此,通过容器抽象资源,让资源管控对应用开发运行维护人员透明,具有十分重要的意义,将云原生应用拓展至边缘计算平台,已经得到了学术界和工业界的认可。现在已有一些针对边缘环境的解决方案,如Kubernetes 的简化版 K3s 和华为技术有限公司于2018 年发布的 Kubernetes 原生边缘计算平台KubeEdge等框架,迅速得到了工业界的广泛认可。云原生边缘计算通过容器等支撑技术实现了底层物理计算资源的抽象与软化,解耦软件开发运行维护与底层资源管控。事实上,除了计算资源以外,网络资源管控也是边缘计算需要考虑的另一个重要方面。相较于云计算,边缘计算网络异构性更强,表现在接入方式(有线与无线并存)异构、带宽异构、可靠性异构等多个方面。同时,边缘计算具有非规则的网络拓扑。边缘计算是移动互联网的重要支撑,移动互联网的蓬勃发展对边缘计算的资源管控提出了更高的要求。从网络角度看,邬江兴院士指出:互联网的多元化发展,导致当前僵化的网络运行机制下传输控制、资源管理、配置维护等复杂性倍增,网络效率低下,用户体验差[13]。针对该问题,以软件定义网络和网络功能虚拟化为代表的未来网络技术以网络开放为目标,打破传统刚性的网络架构和基线技术对网络多元化发展、个性化服务、创新应用发展的制约。软件定义网络和网络功能虚拟化事实上实现了网络层的软化,通过软化实现开放,进而支撑定制创新,在云计算中已得到了广泛认可与应用。综合当前边缘计算的发展困境以及云计算的前沿发展趋势,本文认为软化是推动边缘计算发展的潜在思路。本文将云原生技术以及未来网络技术融合,提出了全栈式云原生边缘计算架构,实现算网融合的资源管控。针对边缘资源有限特征,通过发掘利用容器的分层结构特征,研究了低开销的边缘服务部署优化方法。最后,对云原生边缘计算将面临的发展挑战进行展望。2 结束语云原生技术在云计算中的应用为边缘计算的发展指明了新的潜在发展方向。本文首先简要介绍了云原生的相关概念与关键技术,在此基础上,针对边缘计算的场景特征,融入软件定义网络与网络功能虚拟化,提出了全栈式的云原生边缘计算架构。该架构通过控制层面与服务层面的抽象剥离,能够实现高效的算网协同边缘资源管理与应用运行维护。进一步地,针对云原生的技术特征,本文研究了容器分层特性敏感的低开销容器部署优化方案,通过该实例研究表明,云原生边缘计算中的资源管控必须考虑云原生自身所引入的新特征。最后,展望了云原生边缘计算发展所面临的新挑战。总之,云原生非常契合边缘计算,尽管它是一个新兴的概念与技术,随着研究的不断深入,未来一定能够得到巨大的发展,期待这个领域内部的技术突破。The authors have declared that no competing interests exist.作者已声明无竞争性利益关系。3 原文链接http://www.infocomm-journal.com/wlw/article/2021/2096-3750/2096-3750-5-2-00007.shtml
  • [技术干货] 【论文分享】面向万物智联的云原生网络
    面向万物智联的云原生网络于全, 梁丹丹, 张伟鹏城实验室,广东 深圳 518000摘要针对未来万物智联时代网络架构的需求,提出了新型云原生网络架构,即因云而生、为云而存、依云而建。同时提出了采用网络孪生的概念和机制来解决云原生网络中移动性、安全性和可用性等挑战。阐述了云原生网络架构设计的3个基本问题,即编址编号、映射索引和资源调度。最后,探讨了基于网络孪生的云原生网络的6G应用场景及未来研究方向。关键词: 6G ; 网络架构 ; 网络孪生 ; 云原生网络1 未来6G网络的挑战未来网络将面临数十亿人口和数千亿终端设备的连接需求。万物智联(intelligent Internet of everything)被认为是互联网的未来,它将借助下一代移动通信网络技术和人工智能(AI, artificial intelligence)技术来实现人、机、物、应用和数据服务的智能连接[1]。尽管 5G 移动通信网络国际标准还在持续的讨论与制定中[2],国内外工业界与学术界早已开始布局6G移动通信网络技术的探索和研究。6G初期研究重要探讨与发展历程如表1所示。虽然当前工业界对 6G 的特征还没有形成一致观点,但对 6G 面临的基本需求和基本态势有如下 3 点共识,即大连接、个性化业务、立体化网络结构。首先,所谓万物互联,就是千亿、万亿数量的人机物互联。其次,业务模型将发生本质变化。传统的通信网络主要就是完成A到B的一条连接,而未来通信网络主要完成的是海量传感器数据的采集、汇聚、处理、融合,以及加工成信息知识以后的分发利用。第三,网络结构立体化,网络不仅要对人口密集的地方覆盖,还要在边远地区覆盖,网络不仅要对人提供服务,还要支持亿万传感器的数据采集,所以空天地一体化的异构网络特点是6G必然的趋势。表1   6G初期研究重要探讨与发展历程[3-9]日期主要进展2019年9月芬兰奥卢大学牵头发布首个6G白皮书,其中需求与技术挑战的探讨包括:新型网络、超连接、太赫兹通信技术、数字世界与物理世界的深度融合、网络安全、可靠的数据保护、边缘智能和多元差异化的业务需求等[3]。随后牵头成立了 6G 旗舰项目,探讨6G技术的主要需求和进展[4]2020年1月日本电信公司NTT DoCoMo发布6G白皮书,探讨了7项6G潜在技术,即:新型网络拓扑、覆盖范围扩展的网络、频率扩展和频谱利用率改进、无线传输技术的增强、多种无线技术的扩展集成、移动网络的多功能化以及泛在人工智能[5]2020年6月韩国三星阐述了6G时代的愿景,实现6G服务的需求(超连接、性能、新型架构和可信度)以及新的6G服务应用,其中3项关键应用为:沉浸式扩展现实、全息图和数字孪生[6]2020年8月我国东南大学牵头发布6G研究白皮书,探讨了6G新的范式转变,即:全覆盖、全频谱、全应用以及内生安全[7]2020年9月中国移动对6G做出了愿景讨论,包括:业务需求的多样化、覆盖的立体化、交互形式与内容的多样化、业务开放化和定制化以及通信、计算、AI和安全融合化[8]2020年国际电信联盟-电信标准部第13研究组成立针对2030年网络技术的讨论组[9]国际电信联盟-无线电通信部发布6G初步研究计划第三代合作伙伴计划(3GPP)也将于2023年从Rel-20开启6G 研究[10]新窗口打开| 下载CSV未来 6G网络架构设计将面临以下 6个方面的挑战。1) 扩展性问题,即异构网络在时域、空域、频域、码域等多维资源的调度协作。2) 移动性问题,即保持快速移动场景下的业务连续性。3) 可用性问题,即面向用户个性化业务的服务质量保障。目前的 5G 网络切片技术很难解决面向个人、面向众多个性化业务的服务质量保障。4) 安全性问题,即网络安全和个人隐私的保护。例如,工业互联网对数据安全的敏感性越来越高,未来网络的安全性不仅关系到个人隐私安全,也关系到国家安全。5) 可管性问题,即更简单、更灵活的运维管理。未来 6G 网络将更多样、更复杂,简单高效灵活的运维管理对运营商来说越来越迫切。6) 经济性问题,即低能耗低成本的网络基础设施。未来 6G 基站的部署更密集,能耗也会更大,成本也会更高,这种高能耗高成本发展是不可持续的。针对上述的六大挑战,未来网络架构设计也需要发生革命性的变化。2 未来研究展望对基于网络孪生的云原生网络的研究尽管已经开展,但还处于起步阶段。本节将重点讨论基于网络孪生的云原生网络的典型应用场景以及重点研究方向。2.1 应用场景未来 6G 将不仅是 5G 三大应用场景的增强,还将广泛支持以用户为中心的个性化多融合应用场景。下面探讨4个以用户网络孪生为中心的云原生网络的未来6G应用场景。1) 富媒体通信场景随着未来网络中智能终端设备数量的指数增长与媒体通信业务的需求多样化,多屏、多流、多业务的个性化富媒体通信将是未来 6G 网络的主要应用场景之一。举例而言,在疫情严峻期间,未来网络把人、机、物无缝连接起来,利用多样化的终端设备采用视频会议、语音会议以及远程直播等多种协作通信方式进行交流。然而,传统的集中式网络管控机制和固化的资源调度策略无法实现多屏、多流、多业务的个性化融合业务需求。本文提出以用户为中心的网络孪生作为用户的传输等代理,根据用户的个性化需求,进行多样化业务的资源需求融合。具体来讲,按需向网络索取多维网络资源,实现以用户网络孪生为中心来进行与多方运营商的传输资源(如卫星通信、蜂窝通信、无线局域网通信等)的灵活协商,采用有效的市场动态定价网络资源的机制,进行灵活高效的资源配置。例如,用户的网络孪生根据用户的高清视频与低时延的融合业务与多方运营商协商通信业务传输的需求,多方运营商与服务商根据网络资源使用的情况进行资源的动态价格调整,采用博弈均衡、强化学习等方法使用户与多方运营商、多行业服务商的效用达到最大化,同时保障用户高带宽、低时延等个性化服务质量的需求。2) 车联网场景在车联网场景中,车辆的智能协同感知决策、移动场景下高可靠性以及端到端安全的需求是未来网络面临的严峻挑战。采用依云而建的云原生网络架构集成核心云、边缘云、移动终端设备,集成微服务化的无线定位、无线感知、AI 模型、大数据能力等网络服务功能。用户的网络孪生将根据用户个性化驾驶需求动态索取网络服务功能,使得用户可以灵活高效地调度V2X(vehicle to X)通信、计算、数据以及存储等资源及服务。另外,基于网络孪生的零信任规则,极大地保障了车联网中的通信安全。3) 工业互联网未来工业互联网通过工业全要素链、全产业链以及全价值链(三链)的安全智联,支撑智能制造业数字化、网络化以及智能化转型,从而重塑工业生产制造和服务体系。千亿终端的安全连接、不确定性的多终端多业务柔性制造业务等是未来工业互联网的典型且极具挑战性的需求。基于云原生的网络架构能够使得CT(通信技术)、IT(信息技术)与OT(运营技术)的系统、服务深度融合与集成,实现工业互联网的应用开发者快速集成制造服务、通信服务及其柔性协作,支撑未来工业互联网三链的灵活互动。同时,基于网络孪生的零信任机制不仅让终端设备安全入网,打破传统安全边界和数据“孤岛”,又能实现数据跨系统、跨平台、跨区域、跨行业的安全互通互联,保障多终端多业务柔性制造的大规模个性化服务质量。4) 数字孪生数字孪生也将是 6G 应用的典型场景,涵盖健康医疗、建筑、城市管理等行业。以健康医疗为例,个人数据的获取和隐私保护将是数字医疗的重要挑战。基于网络孪生的云原生网络架构中,用户将自己在物理、网络空间中的个人数据都记录在网络孪生代理里,实现用户个人数据和应用的彻底分离,用户对自己的数据具有拥有权和控制权,用户个人数据能够支撑自己人体运行机制的数字孪生模型,从而进行健康情况实时监控,同时在支撑医疗行业药物等研发场景下个人数据也不会被滥用。2.2 主要研究方向针对 6G 的多样化应用需求以及技术挑战,下面探讨未来潜在的研究方向。1) 基于网络孪生的云原生网络架构打破传统互联网的 OTT 模式,设计采用核心云、边缘云来构建网络的方法,使得用户入云即入网、入网已入云。研究基于网络孪生的云边端分布式云原生网络架构,采用网络孪生进行云—边的云服务资源(网络、计算、存储等资源)及边—端的接入网络资源的管理与协作,支撑网络服务资源高效、灵活地按需编排。2) 基于网络孪生的云原生网络安全机制针对云原生网络的安全保障,可以从两个方面展开研究。首先,从安全接入网络方面进行研究,针对海量智能终端的安全智联的需求,研究基于网络孪生的“实名上网”机制,采用网络孪生作为人、机、物的接入代理,采用名址分离的“实名上网”方法,使得用户在网络中的网络孪生认证用户自我身份,该研究既可解决千亿级终端接入网络地址空间缺乏的问题,又避免了匿名上网带来的诸多安全问题。其次,从网络服务资源的安全访问方面进行研究,随着云计算、移动业务的需求增长,传统的企业内外网的边界变得越来越模糊,研究基于网络孪生的零信任机制,用户的网络孪生对用户的人、机、物的身份进行动态认证和受控访问授权,实现未来网络的内生安全。3) 基于网络孪生的人、机、物智能协同方法研究基于网络孪生的多元异构资源融合理论,设计核心云、边缘云及终端设备的技术、系统、服务深度融合,如将IT、CT、OT、AI、大数据等技术深度融合、微服务化,进而支撑多样化业务服务的高效集成及灵活协作。研究基于网络孪生的网络资源灵活服务编排机制,设计用户通过网络孪生获取云原生网络服务的方法,实现网络孪生根据用户的个性定制化服务需求。借鉴经济学中动态“价格”能够实时反映资源的供求关系(即稀缺性)理论,多方运营商与服务商根据资源占用率进行资源的动态价格调节,采用博弈均衡、强化学习等方法使用户网络孪生与多方运营商、多方服务商的效用达到最大化,保证在资源受限条件下融合业务的服务可靠性及服务协作的灵活性。4) 基于网络孪生的“数字永生”机制研究网络孪生对用户数据的资产确权方法,实现用户数据的隐私保护和价值体现,通过网络孪生对个人数据在网络中的安全共享及交易提供可靠保证。研究基于网络孪生的用户数据存储方法,采用个人数据与应用分离的机制,实现对个人数据资产进行有效保护,达到个人数据的自主掌控。The authors have declared that no competing interests exist.作者已声明无竞争性利益关系。3 原文链接http://www.infocomm-journal.com/wlw/article/2021/2096-3750/2096-3750-5-2-00001.shtml
  • [认证交流] 华为云云原生入门级开发者认证学习笔记——第三章
    第三章:云原生基础设施之Kubernetes学习笔记容器集群管理的概述容器编排指自动化容器的部署、管理、扩展和联网,其价值:灵活的资源管理及调度;自动化部署及服务发现;高效的监控及运维;弹性扩展及高可用。从Borg到Kubernetes:起源于google内部Borg项目,于2015年7月22日迭代到v1.0并正式对外公布。2017年10月17日Docker宣布支持Kubernetes。Kubernetes架构基础的K8s集群通常包含一个Master节点和多个Node节点,每个节点可以是物理机也可以是虚拟机。Master节点:Kube-apiserver:对外暴露K8s APIetcd:用于后端存储,提供数据备份Kube-controller-manager:控制器,策略控制Kube-scheduler:负责任务调度Node节点:Kubelet:接受Master指令,负责管理容器(Pod)Kube-proxy:负责助理集群内外部的网路通信Add-ons:插件,用于扩展K8s的功能Container runtime:使用Docker运行容器开放接口CRI、CNI、CSICRI:容器运行时的接口,提供计算能力CNI:容器网络接口,提供网络能力CSI: 容器存储接口,提供存储能力K8s工作流程K8s核心概念:Pod:最小工作单元,每一个Pod包含一个或多个相关容器,K8s将其视为一个整体进行调度。(引入Pod目的:扩展和实现生命周期管理)Label:为资源打上标签Namespace:命名空间Conroller:控制器Service:Pod逻辑集合Volume:管理Kubernetes存储Kubernetes应用编排与管理• Kubectl:K8s的命令行工具,支持指令式和声明式;Kubernetes应用编排• 无状态工作负载:Deployment、ReplicaSet• 有状态工作负载:StatefulSet• 守护进程工作负载:DaemonSet• 批处理工作负载:Job、CronJob• Deploymengt:不具有唯一标识的多个Pod集合使用命令行创建Deployment使用yaml创建Deployment• StatefulSet创建:• DaemonSet(守护进程集)• Jobs:主要处理短暂的一次性任务• CronJob:处理周期性或者重复性的任务Kubernetes服务发布• Pod特征:有独立IP、扩缩容时数量会变更、故障时ReplicaSet会创建新的Pod• Service:ClusterIP、NodePort、LoadBalance使用方式:• NodePort模型:通过每个节点上的静态端口对外暴露以访问内部ClusterIP• LoadBalancer模型:负载均衡(LoadBalancer)可以通过弹性负载均衡从公网访问到工作负载,与NodePort加公网IP的方式相比提供了高可靠的保障。Kubernetes存储管理• Volume的核心是一个目录,其中可能存有数据,Pod中的容器可以访问该目录中的数据。• Kubernetes常用类型:emptyDir(一种简单的空目录,主要用于临时存储)hostPath(将主机(节点)某个目录挂载到容器中,适用于读取主机上的数据)ConfigMap(特殊类型,将Kubernetes特定的对象类型挂载到容器)Secret(特殊类型,将Kubernetes特定的对象类型挂载到容器)PVC(PersistentVolumeClaim,用来挂载PersistentVolume(持久化卷),提供可靠的存储来保存应用的持久化数据)PersistentVolume(持久化存储)StorageClass(存储类)
  • [认证交流] 华为云云原生入门级开发者认证学习笔记——第二章
    第二章:云原生基础设置之容器技术学习笔记容器发展背景企业IT业务云化路径传统业务云化:物理机部署云管平台统一管理 VS P2V/V2V虚拟化部署;业务云化创新:容器部署 VS 云原生容器:一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。容器和虚拟机的区别:虚拟化层的位置和操作系统的使用方式。虚拟机通过hypervisor层提供硬件虚拟化的能力,允许多个操作系统和应用共享硬件,虚拟机上安装完成的OS,有完整的OS内核;所有容器共享一个hostOS。Docker:最常使用的容器引擎,2013年由dotCloud公司开源,GO语言编写,当前有Docker CE和Docker EE两个版本  容器关键技术介绍Open Container Initiative(OCI),制定开发的容器规范:runtime spec定义可移植性image format spec定义互操作性容器runtime:runtime与操作系统kernel紧密协作,为容器提供运行环境。不同公司有不同的runtime工具,但都符合OCI规范,如runC、rkt、Kata、gVisor等Docker Engine(Client/Server结构)Server又叫Daemon进程,长期运行的程序,创建和管理Docker对象( 镜像,容器,网络,卷)Rest API:Client与Daemon进程的通信接口Client(Docker CLI)使用REST API通过脚本或直接的CLI命令与Docker daemon交互   Container容器是从镜像创建的运行实例,它可以被启动、开始、停止、 删除。每个容器都是相互隔离的、保证安全的平台Docker容器通过namespace技术实现进程隔离,通过cgroup技术实现容器进程可用资源的限制。Namespace:命名空间,用于资源隔离,不同类型的namespace隔离不同的资源Cgroups:限制一个进程组对系统资源的使用上限,包括CPU、内存、Block I/O等,Cgroups还可以设置进程优先级,对进程进行挂起和恢复等操作。容器镜像Image是容器的模板,容器是镜像的运行实例,runtime根据容器镜像创建容器。容器镜像打包了整个操作系统的文件和目录(rootfs),也包括应用本身。所有容器共享宿主机Kernel,并且不能修改宿主机KernelUnionFS:Docker镜像分层结构的实现,借助于UnionFS联合文件系统的能力,UnionFS主要的功能是将多个不同位置的目录联合挂载(union mount)到同一个目录下。容器copy–on-write特性,对容器的增删改查操作容器数据卷:卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统;卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。挂在数据卷的方法:启动容器的时使用-v命令进行数据卷的挂载。在Dockerfile中使用VOLUME指令来给镜像添加一个或多个数据卷。Registry是注册服务器,docker hub就是一个超大的公共registry;Repository是仓库,docker repository一般存放的是一类镜像,这一类镜像只不过是 tag 版本不同。如下图: 如何使用Dockerfile构建镜像Dockerfile是一个文本文件,其内包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建容器镜像。Docker提供了两种构建镜像的方法:docker commit命令与dockerfile构建文件。Build命令生成docker image;run命令运行docker containerDockerfile文件中的指令执行后,会创建一个个新的镜像层。Dockerfile文件中的注释以”#”开始。Dockerfile一般由4部分组成:基础镜像信息、维护者信息、镜像操作指令、容器启动指令build context:为镜像构建提供所需的文件或目录。Dockerfile在执行过程中,会启动临时容器,然后在临时容器中执行一条指令对容器内容进行修改,再将该容器保存为镜像生成一个新的镜像层,最后删除这个临时容器。若dockerfile中有多条指令,则会重复这个过程,直到执行结束。常见镜像管理命令docker push:上传镜像到registry。docker pull:从registry下载镜像。docker rmi:删除本地镜像。docker images:显示本地镜像。docker search:搜索docker hub上的镜像。docker tag:为镜像标记tag。docker history:显示镜像构建过程。docker commit:将容器保存为镜像。docker build:从dockerfile创建镜像。 容器生命周期管理systemctl status docker.service:查看Docker engine状态docker run -d -p 8080:80 httpd:运行一个容器 (“-d”参数可在后台运行容器;“-p”参数将宿主机8080端口映射到容器80端口)docker ps:查看容器运行状态docker stop:停止一个容器docker start:启动一个容器docker pause:暂停一个容器docker unpause:恢复启动一个容器docker rm:删除一个容器docker attach:进入一个容器docker exec:进入同一个容器docker inspect:获取容器/镜像元数据docker top:查看容器中运行的进程信息docker events:从服务器获取实时事件docker port:列出指定的容器的端口映射docker cp:与主机之间进行数据拷贝docker容器的状态有7种:created(已创建)restarting(重启中)running(运行中)removing(迁移中)paused(暂停)exited(停止)dead(死亡)
  • [认证交流] 华为云云原生入门级开发者认证学习笔记——第一章
    第一章:云原生架构总览学习笔记云计算技术发展云计算从虚拟化演进到云原生,Google联合Linux基金会成立了CNCF组织,kubernetes 成为 CNCF 管理的首个开源项目,也成为容器的事实标准。云原生定义CNCF关于云原生的定义:云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。容器:将应用本身及其依赖打包,是的应用可以实现“一次封装,到处运行”。其主流技术比如Docker,通过内核虚拟化技术(namespace及cgroup)来提供容器的资源隔离与安全保证。服务网格(Service Mesh):通过非入侵式的方式接管应用的服务通信。提供细粒度的流量治理,包括灰度发布,故障注入,可观测性支持等能力。微服务:一种构建应用的架构方案,是松散耦合的分布式架构,可将应用拆分成多个核心功能,每个功能都被称为一项服务,可以单独构建和部署,各项服务在工作(和出现故障时不会相互影响)。不可变基础设施:服务器部署后不会被修改,如果需要以任何方式更新、修复或修改某些内容,则会根据具有相应更改的公共映像构建新服务器以替换旧服务器。声明式API:通过提交一个定义好的API对象来“声明”(常见方式是编写对应API对象的YAML文件交给Kubernetes),表示所期望的最终状态是什么样子,即针对期望状态给出声明,而不是过程(不是使用一个个命令来一步一步指导怎么达到期望状态来操作API——命令式)。 云原生应用云原生应用:一般采用容器的打包、分发、部署的形式,应用内(间)采用微服务的架构,充分利用云提供的组件服务,采用DevOps的组织架构和方法,通过CI/CD工具链,实现产品和服务的持续交付。         云原生应用与传统应用的区别云原生应用12要素理论 云原生架构云原生架构演进原则:弹性、分布式、高可用、自动化、自服务,理解每种原则的含义。单体架构的局限性:大规模团队,上线周期长,重复造轮子,粗粒度扩展;其问题不在于不可拆分,在于无法隔离和自治。应用规模越大,局限性越明显。微服务架构:全功能小团队,快速交付,促进重用,细粒度扩容;独立性和敏捷性更好,架构持续演进更容易,更适合云原生应用。Serverless架构:服务端逻辑运行在无状态的计算容器中,由事件触发,完全被第三方管理,适合短时运行处理、事件驱动处理、显著波峰波谷等业务场景 华为云云原生解决方案华为云长期投入云原生技术与产业,是全球云原生领域领导者。了解华为云云原生解决方案全景图,及华为云云原生解决方案(基础设施、混合云MCP、高性能计算volcano、边缘、DevOps、微服务管理平台、立体运维)适用场景和方案特点。 云原生未来发展趋势Kubernetes 编排统一化,编排对象不断扩展延伸服务治理Mesh化,加速传统应用转型应用服务Serverless化,更加聚焦业务的核⼼价值云原生服务部署形态多元化,多云将成为主流
  • [公告] #常年征集#【有奖征集to开发者】数据库有约,说出你的故事
    #2022HDC大会:知识大比拼题目:下列哪个是本次大会华为云开源的数据库产品?A. UGOB. GaussDB(for openGauss)C. openGemini正确答案见文末#开发者故事,有奖征集书写代码与修改BUG是开发者大多数的日常:有时探索良久却毫无进展,抓耳挠腮不得其因;有时眉头紧锁间忽地灵光一现,柳暗花明又一村;个中滋味,最有体会。历经的每一场风浪、收获的一份心得,都是世界上独有的风景。因此,数据库邀你,分享你的故事。让这份分享成为一盏明灯,照亮更多的人。 一、 活动时间投稿期:即日起-2022年6月30日(试行2个月)审核周期:每月投稿内容,月底审核;每月优秀投稿,年终评比,获优质大奖投稿形式:视频、文章(不用担心你的文笔和表达能力,投稿后我们会协助你优化的哟) 二、活动要求投稿作者需真实使用或体验过华为云数据库的产品/服务/工具/课程等资源,内容上要与华为云数据库相关,可以是技术分享、实践、案例等,也可以是与数据库相关的故事。故事要求1000字以上,保证真实、原创,拒绝杜撰剽窃;如果未使用过华为云数据库产品,也想参与活动,请点击开发者免费试用专区进行产品体验,如果需要提供相关课程或者学习资料,请添加添加“华为云数据库小助手”微信:18209232786,进行咨询。三、 参与流程思路梳理:参考附件【开发者故事提纲】列出的一些问题,可以帮助你构建故事的框架,进而完成故事的撰写。撰写故事:请根据步骤1中填写的提纲,完善你的“开发者故事”,要求1000字以上,保证真实、原创,拒绝杜撰剽窃。完成投稿:将故事发送给小助手,合格后可获得投稿奖励, 投稿过程中有任何疑问欢迎随时来撩!邀请好友:邀请好友完成投稿,好友投稿给小助手时,说明或者备注邀请人的华为云用户名,即邀请成功,邀请人可获得邀请奖励。审核通过:在投稿后10个工作日内完成审核,审核通过的合格作品可在华为云博客发布并获得优秀开发者礼包。专家评选:年底,我们将对所有合格投稿进行评选,选出优质的前5名(数量可根据具体情况浮动),在华为云开发者年终盛典典礼上进行表彰,同时进行奖品奖励。四、奖励规则奖项数量要求奖励投稿奖励(合格)不限故事稿件10000码豆或小礼包(平装套芯笔记本LB-RPZX+新贵族系列中性笔+金属书签)故事稿件&开发者故事视频20000码豆+大礼包【华为云数据库书籍(3选1)+平装套芯笔记本LB-RPZX+新贵族系列中性笔+金属书签】邀请奖励不限邀请好友完成投稿并合格5000码豆年终评选5个(数量可以上下浮动)多位华为云数据库专家评审1.华为云开发者年终盛典典礼上进行荣誉表彰2.奖品:第1名,价值269元HUAWEI FreeLace无线耳机活力版曜石黑1个、第2~3名,价值199元华为手环4 (曜石黑)2个、第4~5名,价值129元HUAWEI mini蓝牙音箱 _绮境森林2个 数据库书籍(3选1:华为数据之道、数据库原理及应用、openGauss数据库核心技术)注意事项请遵守华为云社区常规活动规则: https://bbs.huaweicloud.com/forum/thread-5766-1-1.html码豆奖励活动规则:什么是码豆>>>码豆会员中心入口<<< 码豆可在码豆会员中心兑换实物礼品;码豆奖励将于活动获奖公示后3个工作日内充值到账,请到会员中心的“查看明细”中查看到账情况;码豆只能用于会员中心的礼品兑换,不得转让,具体规则请到会员中心阅读“码豆规则”;为保证码豆成功发放,如果修改过账号名还请向工作人员提供修改前后的账号名。知识大比拼,答案:C
  • [公告] 【2022年度用户激励体系】华为云数据库开发者基础激励
    Hi,等你好久了……数据库论坛,是一个以技术交流、内容分享为导向,为广大开发者提供数据库干货分享、问题求助、热门活动、交流吐槽等的内容平台!2022年5月起,华为云数据库论坛启动开发者激励计划,欢迎来数据库论坛分享干货内容(华为云数据库GaussDB产品技术文章最受欢迎),另外,互动就有奖励哦!  活动内容及奖励活动内容有效动作任务次数奖励码豆(单次)备注基础任务发帖每日任务0/3200码豆,华为云数据库GaussDB产品技术文章100码豆,其他发帖每日上限750数据库相关提问帖每日任务0/325码豆数据库回复/评论每日任务0/325码豆额外奖励活跃天数≥5天 200码豆 活跃天数≥10天 500码豆 年终杰出贡献奖根据发文数量&质量、论坛帖问题解决数量、活跃度等评选为年度数据库优质开发者 20000码豆+数据库GaussDB期刊+数据库书籍(3选1,具体如下)中奖用户数量不限数据库书籍共3本:数据库原理及应用(GaussDB for MySQL)、华为数据之道、GaussDB(for openGauss)有问题请添加小助手进行咨询:微信号18209232786规则说明 活跃天数:在数据库论坛有任何互动行为(发帖、回复、评论)当天即为活跃1天。 发帖、回复均需发生在数据库论坛,且所互动内容不可为无意义、灌水内容,可通过参与论坛活动参与话题互动。 基础任务每天领取码豆上限750,任务次数详见参与步骤说明。 每年末根据当年所有开发者活跃情况以及内容质量评选年度优秀开发者。 码豆奖励将在次月10日前发放至符合条件的开发者帐号中,请至会员中心查看。 本活动自2022年5月1日起开启,活动试行3个月,活动期间将根据大家的意见或建议适当调整。 原创保护体系:原创的博客受原创保护,一旦被证实抄袭,管理员立即删帖,且对抄袭博主进行处罚,抄袭次数超过三次进行封号。 差评体系:得到别的用户的差评, 被投诉,和其他违法社区规定的行为,一经被投诉三次,经管理员审核属实后,将进行封号处置。 对于滥发博客,评论的用户,参考社区管理规定处罚。码豆奖励活动规则:        什么是码豆>>>码豆会员中心入口<<<         1)码豆可在码豆会员中心兑换实物礼品;        2)码豆奖励将于活动获奖公示后3个工作日内充值到账,请到会员中心的“查看明细”中查看到账情况;        3)码豆只能用于会员中心的礼品兑换,不得转让,具体规则请到会员中心阅读“码豆规则”;        4)为保证码豆成功发放,如果修改过账号名还请向工作人员提供修改前后的账号名。
  • [热门活动] 一起读书吧·DevCloud世界读书日主题活动
    4月23日世界读书日全称“世界图书与版权日”,又称“世界图书日”。其设立目的是推动更多的人去阅读和写作,希望所有人都能尊重和感谢为人类文明做出过巨大贡献的文学、文化、科学、思想大师们,保护知识产权。为支持正版,鼓励开发者培养持续学习的优良品质,华为云软件开发平台DevCloud发起了本次读书日活动,联合清华大学出版社、机械工业出版社精选34本好书样章资源包,为你的软件工程师之路补充粮草~参与流程论坛回帖:#一起读书吧#+推荐图书书名+推荐心得 即可开启隐藏楼层获得大咖书单下载地址!**** 本内容被作者隐藏 ****书籍太多从哪里开始看?不要在收藏夹吃灰啦,专家领读,不迷路!领读视频部分内容展示视频观看地址:https://classroom.devcloud.huaweicloud.com/joinclass/d17483a4aa2f4022b707fc105526b7ac/1你最喜欢哪一本?分享活动给小伙伴,我们会综合下载量和活动结束后社群投票数,有机会对人气最高的图书进行直播解读!华为云软件开发读书群一手资料分享,专家直播领读,尽在此处...
  • [技术干货] 华为云云容器引擎CCE使用入门【与云原生的故事】【转载】
    一、创建Kubernetes集群1、创建集群1.1、登录CCE控制台https://console.huaweicloud.com/cce/1.2、创建CCE集群登录CCE控制台后会看见一个引导页面,请在CCE集群下单击“创建”按钮。1.3、配置集群参数参数说明如下:参数参数说明集群名称新建集群的名称。集群名称长度范围为4-128个字符,以小写字母开头,由小写字母、数字、中划线(-)组成,且不能以中划线(-)结尾。集群版本集群版本。建议选择最新的版本,对应Kubernetes社区基线版本。集群规模当前集群可以管理的最大Node节点规模。若选择50节点,表示当前集群最多可管理50个Node节点。高可用默认选择“是”。网络模型默认即可。虚拟私有云新建集群所在的虚拟私有云。若没有可选虚拟私有云,单击“新建虚拟私有云”进行创建,完成创建后单击刷新按钮。容器网段按默认配置即可。服务网段按默认配置即可。1.4、提交在右侧界面中会显示集群的资源清单,选择计费模式后,单击“提交”按钮,等待集群创建成功。创建成功后在集群管理下会显示一个运行中的集群,且集群节点数量为0。2、创建节点集群创建成功后,您还需要在集群中创建运行工作负载的节点。2.1、参数配置登录CCE控制台,单击创建的集群,进入集群控制台,在左侧菜单栏选择节点管理,单击右上角“创建节点”,在弹出的页面中配置节点的参数。参数说明如下:参数参数说明计算配置可用区默认即可。节点类型选择“虚拟机节点”。节点规格根据业务需求选择相应的节点规格。操作系统请选择节点对应的操作系统。节点名称自定义节点名称。登录方式支持密码和密钥对两种方式“密码”方式:用户名默认为“root”,请输入登录节点的密码,并确认密码。“密钥对”方式:在选项框中选择用于登录本节点的密钥对,并单击勾选确认信息。密钥对用于远程登录节点时的身份认证。若没有密钥对,可单击选项框右侧的“创建密钥对”来新建。存储配置系统盘按您的业务需求选择,缺省值为50GB。数据盘按您的业务需求选择,缺省值为100GB。网络配置虚拟私有云使用默认,即创建集群时选择的子网。节点子网选择节点所在的子网。2.2、规格确认在页面最下方选择节点的数量和计费模式,单击“下一步: 规格确认”。2.3、提交查看节点规格无误后,阅读页面上的使用说明,勾选“我已阅读并知晓上述使用说明”,单击“提交”按钮,等待节点创建成功,创建成功后在节点管理下会显示一个运行中的节点。二、镜像创建无状态工作负载(Nginx)1、前提条件您需要创建一个至少包含一个节点的集群,且该节点已绑定弹性公网IP,集群是运行工作负载的逻辑分组,包含一组云服务器资源,每台云服务器即集群中的一个节点。2、Nginx应用概述Nginx是一款轻量级的Web服务器,您可通过CCE快速搭建nginx web服务器。博主这里以选择“开源镜像中心”的方式创建应用为例,来创建一个Nginx工作负载。3、操作步骤3.1、镜像创建登录CCE控制台,单击集群进入集群控制台,在左侧菜单栏选择“工作负载”,单击右上角“镜像创建”。3.2、参数配置填写以下参数,其它保持默认。(1)基本参数配置参数参数说明负载类型选择无状态负载。负载名称nginx。实例数量设置为1。容器配置在基本信息中单击“选择镜像”,在弹出的窗口中选择“镜像中心”,并搜索“nginx”,选择nginx镜像。(2)服务配置单击服务配置下的加号,创建服务(Service),用于从外部访问负载,配置参数如下:参数参数说明Service名称输入应用发布的可被外部访问的名称,设置为:nginx。访问类型选择“负载均衡 ( LoadBalancer )”。服务亲和保持默认。负载均衡器如果已有负载均衡(ELB)实例,可以选择已有ELB,如果没有可单击“创建负载均衡器”,在ELB控制台创建一个公网类型负载均衡器。端口配置对外协议:TCP。服务端口:设置为8080,该端口号将映射到容器端口。容器端口:容器中应用启动监听的端口,nginx镜像请设置为80,其他应用容器端口和应用本身的端口一致。3.3、创建工作负载单击右下角“创建工作负载”,等待工作负载创建成功。创建成功后在无状态负载下会显示一个运行中的工作负载。4、访问Nginx(1)获取Nginx的外部访问地址单击Nginx工作负载名称,进入工作负载详情页。在访问方式页签下可以看到nginx的IP地址,其中负载均衡IP就是外部访问地址,如图所示:(2)在浏览器中输入“外部访问地址”,即可成功访问应用,如下图所示:【与云原生的故事】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/345260链接:https://bbs.huaweicloud.com/blogs/351622
  • [公告] 新主张新超越!华为云数据库GaussDB品牌视频全新发布
    我们不断探索在指尖,在应用,在云上全面云化时代数据是企业数字化转型的基石数据的价值被深度挖掘华为云GaussDB为企业提供更安全、更稳定、更智能的云上数据库服务华为云数据库GaussDB品牌视频1000+稀缺研发专家800+核心科技专利2000+实践案例 开源开放包容产学研用一体化 华为云GaussDB企业核心数据上云的信赖之选全新品牌主张,持续实力超越长按识别二维码,可以观看华为云数据库GaussDB品牌视频哦!【原视频链接】https://www.huaweicloud.com/product/dbs.html
  • [大咖交流] 中国移动磐舟磐基平台基于KubeEdge的落地实践
    磐舟磐基平台及多省份集群管理的思考磐舟一体化云交付平台是中国移动自主研发的面向开发人员的代码开发,自动部署的平台。磐舟一体化交付平台自研实现了一套GitOps驱动引擎,支持从需求设计、开发构建、测试部署的全部开发与运维功能需求,实现应用一键上磐基容器云平台。磐基容器云平台是中国移动信息公司基于Kubernetes构建的企业级PaaS解决方案,实现Kubernetes能力的标准化封装及调用,包括提供开发和运行环境、资源弹性伸缩、精细化微服务管理、便捷一站式服务、跨地域多集群调度和智能监控维护等六大能力。磐舟和磐基是相互配合的,开发人员在磐舟集群上开发,部署到磐基PaaS集群上运行应用,也支持在磐舟上归档磐基集群ops配置,通过GitOps来管理、部署磐基集群。随着国产化进程推进,中国移动建设了大量的国产化服务器集群,磐基磐舟如何实现国产化的容器云开发交付一体化体系?在某资源池我们需要统一管理近500台鲲鹏服务器,源码可以通过磐舟统一编译为X86/ARM双架构的镜像,但是集群的管理也需要实现ARM自动化支持,开发交付环节频繁使用Kubernetes集群,最近2个月已有800多次的集群创建回收动作,人工支撑显然已经跟不上云原生的发展速度了。另一个场景是,移动的开发人员在集团磐舟Kubernetes集群上进行开发,制作好镜像后,不能直接推送到省测公司的Kubernetes集群,需要运维人员在磐基中心集群上通过多级ssh跳板机,手工登录到省公司磐基K8s集群进行部署。这一步没有实现自动化,操作流程十分繁琐。想解决这些问题,我们进行了一些头脑风暴。首先是考虑是否可以将集群统一?答案显然是不行。因为集团k8s集群,由于业务不同,不能和省公司的k8s集群合为一体。那么是否可以做k8s的集群联邦?目前集团集群与省公司集群之间可能是比较远的(跨省),集群联邦的整体消耗会大一些,并且目前跳板机的场景,跳到省公司集群一台机器上就够了,不需要看到省公司的所有机器。维持ssh现状,维护shell脚本?shell脚本需要人力维护,在省公司的节点逻辑很可能需要使用service来完整,继续维护shell,第一不是那么CloudNative,第二也背离了磐基磐舟轻松上云的初衷。本着达到灵活、易用,提升集群部署时效,解决端到端开发运维效率,成就内部客户的目的,我们针对整体场景做了进一步抽象,抽象成“1+31+N”的典型网络模型。1个中心+“31+N”个边缘集群的场景,中心与集群、集群与集群,集群与N之间,存在着网络隔离与网络不可预知的情况;在这些集群之间,保持网络隔离的情况下,在中心节点做到云原生体验的自动化运维,做到GitOps自动化。带着抽象之后的这个模型,我们在平台管理上进行了深入调研,最终选用了CNCF的项目KubeEdge来解决完成以上所有集群的统一管理。KubeEdge是什么?解决什么问题?KubeEdge的特点是在云边通信的资源消耗小,使用方式基于Kubernetes,上手方便,比较适合我们当前的场景。KubeEdge项目是华为云开源的一个基于Kubernetes的开放平台,并为网络应用提供基础架构支持,提供云和边缘之间的部署和元数据同步。KubeEdge具有以下几点关键优势:容器化应用封装Build once, run anywhere轻量化基础镜像,降低资源占用通用的应用抽象定义业界事实标准云上、边缘统一管理松耦合的架构易扩展的API框架易于定制平台组件KubeEdge 在架构上分为云端组件 CloudCore 和边缘侧 EdgeCore,详细的架构细节可以参考文档:https://docs.kubeedge.io/en/docs/architecture/ 磐舟磐基平台的KubeEdge实践通过对KubeEdge的应用场景分析,以及对移动内部1+31+N模型结合,我们可以将集团的“1”想象为KubeEdge的CloudCore节点、将各省公司的node节点想象为EdgeCore节点,从而就实现了1+31+N下的云边协同模型。映射到我们的具体场景是这样:集群业务部署场景:把集团的K8s master节点作为KubeEdge的CloudCore节点,省公司的node节点作为KubeEdge的EdgeCore节点,CloudCore节点与EdgeCore节点连接上后,在EdgeCore上启动磐舟GitOps业务中ArgoCD pod,统一下发CD一体化的元数据,从而将省公司资源池做到方便的集群创建、集群纳管,最终方便的达成自动化GitOps交付。集群自动化创建场景:基于省公司的资源池来创建磐基PaaS集群,运维人员在master节点使用磐舟GitOps,通过CloudCore与EdgeCore的通信,部署来自openEuler社区的集群自动化部署工具-eggo的实例。之后在边缘侧,就可以通过eggo来自动化完成省公司磐基PaaS集群的创建。综上,通过将KubeEdge集成至磐基PaaS平台,成功打通移动集团与各省公司的网络,实现“1+31+N”的K8S集群全部连通、实现统一管理、简化多集群的运维系统、减少运营成本;同时也成功将前面提到的500台鲲鹏服务器以及它上面的BC-Linux for Euler集群纳入磐基PaaS平台的大家庭之中,运维效率大幅增加。 磐舟磐基平台在多集群管理的下一步计划在完成KubeEdge集成到磐舟磐基平台这项专项工作之后,考虑到后续不仅是由master节点纳管单个edge节点,还会考虑在将南向集群的单个节点组成一个集群,实现控制面的自动化集群部署,支撑省公司集群的控制面自动化。磐舟磐基平台计划进一步集成CNCF社区最新的集群联邦方案Karmada来完成“1+31+N”的PaaS多集群统一管理工作。 
总条数:215 到第
上滑加载中