云原生必备知识——kubernetes和Karmada【与云原生的故事】

网友投稿 1018 2022-05-30

前言

本文主要介绍的内容有:

• kubernetes简介

• kubernetes整体架构及工作原理

• Karmada简介

• Karmada系统架构及工作原理

一、kubernetes诞生背景

Kubernetes是一个大规模容器集群管理工具,它脱胎于谷歌Borg集群管理器。为了简便的称呼Kubernetes,我们也会将它叫做K8s。2014年6月,谷歌云计算专家Eric Brewer在旧金山的发布会为这款新的开源工具揭牌,它的名字Kubernetes在希腊语中意思是领航员,这个名字与它在容器集群管理中的作用吻合,即负担着全局调度和运行监控的职责。

k8s是为容器服务而生的一个可移植容器的编排管理工具,它推动了微服务技术的落地,协助大量开发者进行云服务应用的部署。在服务发现与调度,服务监控,横向扩容服务发现与负载均衡、容器自动装箱4、存储编排、自动容器恢复、自动发布与回滚、配置与密文管理、水平伸缩等方面都发挥了不错的作用。

二、kubernetes总体架构

Kubernetes在架构方面主要分为5层,包括生态系统,接口层,治理层以及应用层,内核层。如下图所示,下图最底层主要是一些接口,包括,运行时接口等相关信息。

云原生必备知识——kubernetes和Karmada【与云原生的故事】

生态系统:主要分为两部分的集群管理调度,包括Kubernetes外部的日志,监控以及CICD等方面,同时也包括Kubernetes内部的CRI,镜像仓库管理方面的调度。

接口层:kubectl命令行工具、客户端SDK以及集群联邦

治理层:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态Provision等)

应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS解析等)

内核层:核心层主要包括API和执行环境,能够对外提供api,帮助构建应用,对内提供插件式应用执行环境。

三、Karmada简介

kubernetes是一个基于容器技术 的分布式架构解决方案,在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等方案,提高了大规模容器集群管理的便捷性。但是在云原生快速发展的时代,越来越多的云厂商相关的集群托管服务,同时各大互联网公司也在自主筹建自己的集群。在这样的一个背景下,假设一家新兴互联网公司要将它的不同应用分别部署在不同的云厂商相关的集群,但是由于各个集群之间,有api以及不同的集群体系结构,那么如何让部署到不同集群的应用能够无障碍的交流,调用,就成为了当下云原生的一个重要课题。

为了解决这个问题,华为云通过市场调研,依托多年的出色云服务供应能力,创造性的提出了k8s多集群分发方案karmada。

kubernetes已经是容器编排的业界标准,业界的大部分集群都是根据k8s起步的,所以跨集群部署,实质上就是完成k8s多集群分发的过程。而karmada主要解决的是多集群网络管理,集群运维以及对象分发等多集群问题。

四、Karmada系统架构

Karmada 是 CNCF 的云原生项目,主要的能力是纳管多个 Kubernetes 集群,以及基于原生的 Kubernetes 的资源对象,将其下发到多个集群。那么Karmada 究竟是如何完成多云应用能够无障碍跨云跨集群运行呢?

这就要从Karmada系统架构说起。

Karmada控制面板由3部分组成,分别是Karmada API Server , Karmada Controller Manager,Karmada Scheduler。其中ETCD 存储 karmada API 对象,API 服务器作为 REST 端点以及Karmada 控制器管理器将根据用户创建的 API 对象执行操作。Karmada Controller Manager运行各种控制器,帮助监控以及和不同的基础集群API建立对话,创建常规的 Kubernetes 资源。

具体的Karmada介绍可以参考官方文档:

https://gitee.com/yangqingchun1128/karmada/blob/master/README.md。

Karmada具有许多优点,第一,完全兼容k8s的API。这就不需要开发者再从头开始学习Karmada与k8s相关的API,可以更多的关心应用的细节,而不需要过多关注Karmada进行跨集群的管理,减少了开发人员的学习成本。第二、避免供应商锁定,由于众多云编排管理器都基于k8s标准,以及Karmada开发过程中也关注到了主流的云厂商的集群,所以基本支持主流的云厂商的集群。第三、开箱即用。内置针对不同场景的策略集,支持跨集群应用程序在多集群上的自动扩展、故障转移和负载均衡。

五、总结

在后疫情时代,云上办公,云上开发,云上部署成为了时代的主流,互联网中小公司更倾向于将应用部署到各大云厂商的云集群上,将服务器运营方面的问题交给专业的云厂商专家来完成。让中小公司更加专注于产品的本身。企业选择与不同的云厂商合作,发挥各大云厂商的长处,让自身应用得到最大化的发展是当前明智的选择。拥抱k8s以及华为云打造的Karmada,将会为更多开发者上云的不二选择。期待越来越多的企业,携手华为云Karmada,实现企业,华为云及用户的共赢。

【与云原生的故事】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/345260

云端实践 云原生 Kubernetes

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于AM5728+ Artix-7 FPGA开发板——CPSW网口SWITCH模式使用说明
下一篇:web安全测试必须注意的五个方面
相关文章