kubernetes学习总结(10)——何为云原生,与kubernetes是什么关系

科技D人生 科技D人生     2023-02-18     346

关键词:

一、何为云原生

1.1、云原生概念

为什么会产生云原生?在传统的模式下,我们更多的是创建一个较大的应用,对于它的创建、运行、升级、维护都是比较痛苦的事情,而当下云计算或是云的概念大家都已经不再陌生(谁还没一台云主机服务器呀,用于创建自己的博客或是科学上网等等),因为现在有很多的机会让我们接触到公有云(阿里云/腾讯云等)或是私有云,那我们对于应用的管理方式是不是也应该有一种当下的方式,我们就称其为云原生的方式。因为云技术在不断发展的情况下,逐渐成熟,也促进很多的技术的商品化,层次化,我们不需要自建机房,可以不用自己安装数据库服务器等等,下面我们就基于 IBM 对于 cloud native 的对于层的定义,聊聊云原生。

  • 云/基础设施:可以是公有云、私有云、混合云或是自己的本地数据机房。

  • 调度/编排:比如我们熟悉的kubernetes

  • 应用/数据服务:后端服务

  • 中间件:中间件服务

  • 应用代码:云原生应用

云原生,一般来说,云原生就一种利用云计算交付模型构建、运行应用的方式。也就是说云原生关注的如何构建、部署应用,而并不关注在哪里,或是说所有的公有/私有云均可以成为这个地方。CNCF 也有一个相对较窄的定义,使用开源软件栈,每个部分的应用程序打包在自己的容器,动态编排每个部分是积极安排和管理,优化资源利用,和microservices-oriented增加整个应用程序的灵活性和可维护性。

1.2、云原生-我们真正需要的是什么?

首先对于当前云的转型期中,我们真正需要的是什么?

  • 尽快地迁移至云上(云迁移);

  • 降低运维、基础设施及人员成本(降低成本);

  • 减少完成项目所需的时间(敏捷、快速上线);

  • 拥有可靠的系统。(提升质量)

二、云原生-容器编排Kubernetes

清楚了我们的目标,但我们又应该如何做呢?也许你已经迷失在丰富的解决方案中,尤其是对于那些新手用户。但是糟糕的是你不能失败。因为不管是否有云,一个项目必须在今天或是明天上线,那时将需要更敏捷、更有质量。这也许就是为什么我们已经听到云时代已经到来却很难启程的原因,因为你必须投注正确的一匹马,而且不能输。

2.1、为什么需要容器

在聊 kubernetes 之前, 先认识下容器,容器是将生产带入了我们的本地环境,无需再担心 Linux 或 Windows 的兼容性。此外不论是本地开发和持续集成均使用相同的方式构建镜像(均依赖于相同的 Dockerfile)。可以构建容器镜像并将其推送到镜像仓库,然后可以将它们拉出并部署到任何地方-台式机、虚拟机(本地或云中)或无服务器解决方案。与虚拟机相比,容器的真正优势在于,它们可以虚拟化操作系统而不是资源。这意味着可以更轻松,更灵活,更经济地托管应用程序。

Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的快速交付,测试和部署代码的方法,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。

2.2、kubernetes是什么

为什么需要迁移至容器,但是为什么我们还需要kubernetes。也许你已经认识到必须使用容器,但这也引入了新的需求, 我们该如何管理它们?如何才能可靠地编排?很显然这些问题的答案是Kubernetes。Kubernetes(K8s) 用于自动化部署、扩展和管理容器化应用程序的开源系统。使用k8s您只需要将映像推送到docker镜像仓库并等待即可。所有部署部分均由Kubernetes管理,因此不必担心基础架构。k8s有很多优点,比如扩展性(您只需要部署一个容器。然后您可以毫不费力地设置缩放策略【增加或是减少】)、版本控制(每个部署都是版本化的)等等。同时Kubernetes简化了所有DevOps的工作, 开发人员和运营团队之间的摩擦减少了,因为责任与透明度之间明显分开。

2.3、体验kubernetes

  1. https://www.katacoda.com/courses/kubernetes/playground

  2. https://minikube.sigs.k8s.io/

2.4、企业内如何落地k8s

如果我明天必须设计架构,尤其是针对企业解决方案,则我将容器和Kubernetes作为首选。不论当前的环境是私有云或是公有云, 使用k8s可以很大程度的降低我们的运维成本,并且推荐使用基于Git上托管的配置文件的DevOps管道(GitOps)。

三、云原生-DevOps方案

『云原生』改变了很多,但是我们对直接的变化就是『devops的流程』。我们的开发与运维不再是割裂的状态, 开发环境代码的变化不再是有开发者提交后代码通知运维然后上传更新的状态, 而是由开发者的变更触发相应流水线上环境代码的变化,也就是GitOps。GitOps是一套方法论,所以其实是有多种实践的方式的,会有多种多样的好用的工具,比如使用 draft 可以帮助完成应用编排模板的自动化生成,skaffold 用来简化应用构建部署流程,kaniko 可以实现不依赖 docker daemon 的镜像构建和推送,helm 用作应用的包管理工具,还有其他 cicd 引擎像 jenkins,tekton,argo 以及为云原生而生的 jenkinsx 等等。

对于运维同学,当然期望的是环境尽量不要变更,因为变更就意味着风险、bug等,而开发同学则期望自己的尽快上线(不管是被动还是主动)。为了减少这些扯皮,也许你应该考虑新的交付方式(GitOps)了,也就是"任何的变更上线不应该是人来决定的,而是应该由代码或是说配置决定的"。

四、总结

4.1、云原生的思考

上面我们介绍了云原生层的定义,并不是独立的一块一块的,还是有相互依赖的层次关系,我们需要新的模式来定义这个改变--Paas(平台即服务)。也许你感觉并不需要一个真正的paas平台,但它真的可以让很多事情容易很多,就像你感觉之前你不需要用云主机一样。但是随着每个层次的不断抽象、商品化,PaaS就像一个额外的层来抽象底层操作系统,让您可以完全专注于应用程序的业务逻辑,而不必担心进行操作系统调用。对于抽象出来的PaaS层企业可以选择自建或是采购服务。

4.2、需要怎样的人才/团队

云原生正在改变着团队、文化和技术,利用自动化和架构来管理复杂性和释放速度。在这种模式下运营,不仅是一种技术层面的方式,也是一种衡量人才层面的方式。Cloud Native的真正价值远远超出了与它密切相关的技术。世界一直在不断变化,能决定我们企业的未来,我想一定少不了快速、稳定。

kubernetes云原生实战00何为云原生?

...;我是飘渺。从今天开始我将开启第二个专栏系列,即Kubernetes云原生实战何为云原生都2022年了,我相信各位肯定听过云原生这个词,但是究竟什么是云原生,却很少有人能真正说清楚。如果找资料来看,读完... 查看详情

kubernetes云原生实战00何为云原生?

...;我是飘渺。从今天开始我将开启第二个专栏系列,即Kubernetes云原生实战何为云原生都2022年了,我相信各位肯定听过云原生这个词,但是究竟什么是云原生,却很少有人能真正说清楚。如果找资料来看,读完... 查看详情

《云原生人才计划之kubernetes技术图谱》发布!

简介:如今越来越多的公司正在拥抱Kubernetes,当前Kubernetes已经主导了云业务流程。那么称霸容器领域的Kubernetes究竟有什么魔力呢?又该从何学起呢?这需要对Kubernetes的学习有一个清晰的学习路径,从而有效... 查看详情

kubernetes学习总结(31)——kubernetes为何需要istio?

一、ServiceMesh是什么?“Aservicemeshisadedicatedinfrastructurelayerforhandlingservice-to-servicecommunication.“——WilliamMorgan。erviceMesh是一个专注于处理服务间通信的基础设施层。云原生应用有着复杂的服务拓扑,而ServiceMesh保证请求可以... 查看详情

kubernetes学习总结(31)——kubernetes为何需要istio?

一、ServiceMesh是什么?“Aservicemeshisadedicatedinfrastructurelayerforhandlingservice-to-servicecommunication.“——WilliamMorgan。erviceMesh是一个专注于处理服务间通信的基础设施层。云原生应用有着复杂的服务拓扑,而ServiceMesh保证请求可以... 查看详情

《云原生入门级开发者认证》学习笔记之云原生基础设施之kubernetes(代码片段)

写在前面嗯,报了考试,整理课堂笔记记忆学习的原因:虽然考了CKA,了解了一些K8s相关的知识但是对云原生整个体系一直都很模糊希望对云原生有一个基本的认识通过学习实现云原生相关入门博文主要内容涉及:... 查看详情

第四个专栏,kubernetes云原生实战,它来了~

...少好朋友。从今天开始我将开启第四个专栏系列,即Kubernetes云原生实战何为云原生都2022年了ÿ 查看详情

如何高效学习kubernetes知识图谱?

简介: Kubernetes知识图谱遵循云原生人才学习路径搭建课程体系框架,及人才发展路线设置不同阶段,由浅入深,帮助云原生人才学习容器基础、Kuternetes网络、存储、资源对象、服务发现、应用编排与管理等Kubern... 查看详情

如何高效学习kubernetes知识图谱?

简介:Kubernetes知识图谱遵循云原生人才学习路径搭建课程体系框架,及人才发展路线设置不同阶段,由浅入深,帮助云原生人才学习容器基础、Kuternetes网络、存储、资源对象、服务发现、应用编排与管理等Kubernet... 查看详情

使用icebergonkubernetes打造新一代云原生数据湖(代码片段)

文章目录使用IcebergonKubernetes打造新一代云原生数据湖背景何为IcebergIcebergonKubernetes如何构建云原生实时数据湖架构图创建Kubernetes集群部署Hadoop集群注意集成Iceberg创建和使用Iceberg表总结参考材料使用IcebergonKubernetes打造新一代云... 查看详情

云原生|kubernetes-kubeadm部署k8s集群(超详细)(代码片段)

Kubeadm是kubernetes社区为了方便普通用户学习k8s,发起的一个简单上手的部署工具。不用把大量时间花费在搭建集群上面。只需通过两条命令就可以部署一个k8s集群#创建一个Master节点$kubeadminit#将一个Node节点加入到当前集群中$kubead... 查看详情

kubernetes和云原生

1.云原生相关1.1.什么是云原生CloudNative最早是在2013年由Pivotal公司的MattStine提出的。2015年CNCF(CloudNativeComputingFoudation,云原生计算基金会)成立。官方发布的云原生v1.0定义是:“云原生技术有利于各组织在公有云、私有云和混合... 查看详情

云原生kubernetes——认识k8sk8s架构核心概念点介绍

目录一、Kubernetes简介二、Kubernetes架构三、Kunbernetes有哪些核心概念?1.集群Cluster2.容器Container3.POD4.副本集ReplicaSet5.服务service6.发布Deployment7.ConfigMap/Secret8.DaemonSet9.核心概念总结一、Kubernetes简介Kubernetes简称k8s, 查看详情

云原生kubernetes入门详细讲解

目录1、Kubernetes是什么2、Kubernetes不是什么3、Kubernetes架构与分层4、Kubernetes集群架构5、Kubernetes集群组件5.1、K8s在Master上的组件5.2、K8s在Node上的组件6、KubernetesAPI    在云原生技术与生态快速发展的今天,越来越多的IT厂商... 查看详情

云原生|kubernetes篇深入kubernetes(k8s)概念(代码片段)

文章目录深入Kubernetes(k8s)概念一、基础概念理解二、kubernetesObjects(k8s对象)1、什么是k8s对象2、描述k8s对象3、k8s对象yaml的结构4、管理k8s对象5、对象名称6、名称空间7、标签和选择器8、注解annotation9、字段选... 查看详情

硬核科普:到底啥是云原生?(代码片段)

...而来,其他参考文章如下:《云原生人才计划之Kubernetes技术图谱》发布!-知乎(zhihu.com)kubernetes-阿里云与CNCF联合推出的云原生技术公开课_哔哩哔哩_bilibili什么是云原生?这回终于有人讲明白了-知乎(zhihu.com)云原... 查看详情

硬核科普:到底啥是云原生?(代码片段)

...而来,其他参考文章如下:《云原生人才计划之Kubernetes技术图谱》发布!-知乎(zhihu.com)kubernetes-阿里云与CNCF联合推出的云原生技术公开课_哔哩哔哩_bilibili什么是云原生?这回终于有人讲明白了-知乎(zhihu.com)云原... 查看详情

云原生kubernetes集群升级(代码片段)

【云原生】Kubernetes集群升级指南前言一、集群升级过程辅助命令二、升级master节点2.1、升级kubeadm。2.2、验证升级计划2.3、master节点升级三、升级node节点总结前言本文演示kubernetes集群从v1.24.1升级到v1.25.5。相关文档。一、集群升... 查看详情