首页 > 其他分享 >Kubernetes之云原生相关

Kubernetes之云原生相关

时间:2024-01-16 21:35:36浏览次数:32  
标签:原生 Kubernetes Service Foundry 之云 Mesh Docker Cloud

什么是云原生

可以简单看做就是K8S。将项目全部都通过K8S部署

实际上,云原生是一条最佳路径或者最佳实践。更详细的说,云原生为用户指定了一条低心智负担的、敏捷的、能够以可扩展、可复制的方式最大化地利用云的能力、发挥云的价值的最佳路径。

因此,云原生其实是一套指导进行软件架构设计的思想。按照这样的思想而设计出来的软件:首先,天然就“生在云上,长在云上”;其次,能够最大化地发挥云的能力,使得我们开发的软件和“云”能够天然地集成在一起,发挥出“云”的最大价值。

所以,云原生的最大价值和愿景,就是认为未来的软件,会从诞生起就生长在云上,并且遵循一种新的软件开发、发布和运维模式,从而使得软件能够最大化地发挥云的能力。说到了这里,大家可以思考一下为什么容器技术具有革命性?

其实,容器技术和集装箱技术的革命性非常类似,即:容器技术使得应用具有了一种“自包含”的定义方式。所以,这样的应用才能以敏捷的、以可扩展可复制的方式发布在云上,发挥出云的能力。这也就是容器技术对云发挥出的革命性影响所在,所以说,容器技术正是云原生技术的核心底盘。

什么是 Service Mesh

如果用一句话来解释什么是 Service Mesh,可以将它比作是应用程序或者说微服务间的 TCP/IP,负责服务之间的网络调用、限流、熔断和监控。对于编写应用程序来说一般无须关心 TCP/IP 这一层(比如通过 HTTP 协议的 RESTful 应用),同样使用 Service Mesh 也就无须关心服务之间的那些原来是通过应用程序或者其他框架实现的事情,比如 Spring Cloud、OSS,现在只要交给 Service Mesh 就可以了。

Kubernetes 中的服务发现和负载均衡

微服务中最基础的服务注册发现功能来说,其方式分为客户端服务发现和服务端服务发现两种,Java 应用中常用的方式是使用 Eureka 和 Ribbon 做服务注册发现和负载均衡,这属于客户端服务发现,而在 Kubernetes 中则可以使用 DNS、Service 和 Ingress 来实现,不需要修改应用代码,直接从网络层面来实现。

Kubernetes 中的应用将作为微服务运行,但是 Kubernetes 本身并没有给出微服务治理的解决方案,比如服务的限流、熔断、良好的灰度发布支持等。而Service Mesh可以做到这些。

使用 Service Mesh 将可以有效的治理 Kubernetes 中运行的服务,当前开源的流行的 Service Mesh 有:

  • Linkerd:由最早提出 Service Mesh 的公司 Buoyant 开源,创始人来自 Twitter
  • Envoy:由 Lyft 开源,可以在 Istio 中使用 Sidecar 模式运行以作为数据平面,也可以基于它来构建自己的服务网格
  • Istio:由 Google、IBM、Lyft 联合开发并开源

Kubernetes、Service Mesh、Serviceless 三者之间的关系:

  • Kubernetes 负责应用的生命周期管理,最小的治理单元是 Pod;
  • Service Mesh 解决服务间的流量治理,最小的治理单元是 Service(可以类比为 Kubernetes 中 Service 资源);
  • 而 Serviceless 是更高一层的抽象,最小的治理单元是 APP;

Dubbo,SpringCloud和K8S横向对比

Cloud Foundry

Cloud Foundry是一个开源的平台即服务(PaaS),它提供给开发者自由的去选择云平台、开发框架和应用服务。Cloud Foundry最初由VMware发起,得到了业界广泛的支持,它使得开发者能够更快更容易的开发测试、部署和扩展应用。Cloud Foundry是一个开源项目,用户可以使用多种私有云发行版,也可以使用公共云服务,包括CoudFoundry.com。

Pivotal Cloud Foundry (PCF) 是一种可以直接部署开发人员写好的应用(如Jar或是War包)或已经构建的容器镜像的完整平台,基于Cloud foundry社区版。它可提供完整的调度能力实现这些应用负载,还可提供平台辅助服务,如负载均衡、高可用性、自动扩展、统一的日志记录等。

登录地址为登录页面

可以看到,现在也已经停用了

Cloud Foundry 和 K8S

Cloud Foundry的优势在于:

  • 成熟的身份验证系统UAA,用户组和multi-tenancy的支持
  • 方便快捷的cf push
  • 自带负载均衡Router
  • 强大的日志和metrics整合
  • 成熟的部署工具BOSH

Kubernetes的优势在于:

  • 大量社区和第三方支持,提供强大的扩展性
  • 完善的容器生命周期和自动伸缩管理
  • 方便快捷的容器化应用部署
  • 良好、多样的持久层支持
  • 多种开源UI支持

Docker和K8S的爱恨情仇

Docker与k8s的恩怨情仇(一)—成为PaaS前浪的Cloud Foundry
Docker与k8s的恩怨情仇(二)—用最简单的技术实现“容器”
Docker与k8s的恩怨情仇(三)—后浪Docker来势汹汹
Docker与k8s的恩怨情仇(四)-云原生时代的闭源落幕
Docker与k8s的恩怨情仇(五)——Kubernetes的创新
Docker与k8s的恩怨情仇(六)—— “容器编排”上演“终结者”大片
Docker与k8s的恩怨情仇(七)—— “服务发现”大法让你的内外交互原地起飞
Docker与k8s的恩怨情仇(八)——蓦然回首总览Kubernetes

阿里云的云原生产品矩阵

参考

CNCF 官方大使张磊:什么是云原生?
什么是Service Mesh(服务网格)?
聊聊Cloud Foundry开源PaaS云平台
Spring Boot入门(10)利用Cloud Foundry Platform部署Spring Boot应用
Cloud Foundry和Kubernetes结合的过去与未来
Pivotal和谷歌共建Kubernetes(K8S)生态(上篇)
什么时候选Cloud Foundry而不是Kubernetes

标签:原生,Kubernetes,Service,Foundry,之云,Mesh,Docker,Cloud
From: https://www.cnblogs.com/strongmore/p/17963447

相关文章

  • Solo开发者社区-重新思考云原生应用的开发模式
    当前云原生应用的开发模式在FaaS环境下存在挑战,本文提出一种开发模式构想:“单体式编程,编译时拆分,分布式执行”,旨在简化云应用开发,提升开发效率和应用性能。思路是通过编译器自动拆分单体应用代码,实现云基础设施上的分布式运行。(Solo社区投稿)背景云原生应用通常形象地解释为......
  • 云原生周刊:OpenTofu 宣布正式发布 | 2023.1.15
    开源项目推荐kubeauditkubeaudit是一个开源项目,旨在帮助用户对其Kubernetes集群进行常见安全控制的审计。该项目提供了工具和检查规则,可以帮助用户发现潜在的安全漏洞和配置问题。ChronosChronos是一款综合性开发人员工具,可监控通过RESTAPI或gRPC通信的容器化(Docker......
  • k8s(Kubernetes)一种用于自动部署、扩展和管理容器化应用程序的开源平台
    K8s全称为Kubernetes,是一种用于自动部署、扩展和管理容器化应用程序的开源平台。作为云原生技术的核心组件之一,其提供了大量灵活的Kubernetes教程,帮助开发人员和运维团队轻松地构建、交付和扩展应用程序,从而更好地应对不断增长的云端需求。K8s的核心是一个主节点,它负责管理和协调......
  • 人人都会Kubernetes(一):告别手写K8s yaml,运维效率提升500%
    1.Kubernetes的普及和重要性随着云计算的迅速发展,容器化技术已成为构建和运行分布式应用程序的关键。而Kubernetes作为容器编排领域的佼佼者,已经成为了云原生应用的标准。它不仅简化了应用程序的部署和管理,而且为开发者和运维人员提供了一套全面的工具集,从容器编排、自动扩缩容......
  • Kubernetes 集群中部署项目
    在Kubernetes集群中部署项目并交付容器,通常涉及以下几个步骤:Docker镜像构建:使用Dockerfile定义应用程序的环境和依赖,然后使用DockerEngine构建出Docker镜像。可以使用一些构建工具如DockerCompose或DockerBuildx来简化构建过程。Docker镜像推送:将构建好的Docker......
  • Kubernetes 持久化存储
    Kubernetes持久化存储(nfs网络存储)Kubernetes提供了一种持久化存储的机制,允许将数据存储在容器之外,以便在容器重启、迁移或重新调度之后仍然可以访问。NFS(NetworkFileSystem)是一种网络存储协议,它允许多台计算机共享存储资源。在Kubernetes中,可以使用NFS作为持久化存储的一种选择......
  • Kubernetes 集群搭建-搭建高可用集群
    Kubernetes 集群搭建-搭建高可用集群(初始化和部署keepalived)要搭建一个高可用的Kubernetes集群,你可以使用Keepalived来实现负载均衡和故障转移。Keepalived是一个开源的高可用解决方案,它可以确保在节点故障时自动切换到备用节点,从而保证服务的连续性。以下是在搭建高可用Kuberne......
  • 人人都会Kubernetes(一):告别手写K8s yaml,运维效率提升500%
    1.Kubernetes的普及和重要性随着云计算的迅速发展,容器化技术已成为构建和运行分布式应用程序的关键。而Kubernetes作为容器编排领域的佼佼者,已经成为了云原生应用的标准。它不仅简化了应用程序的部署和管理,而且为开发者和运维人员提供了一套全面的工具集,从容器编排、自动扩缩容、......
  • 【云原生 • Kubernetes】k8s功能特性、k8s集群架构介绍
     序言你只管努力,其他交给时间,时间会证明一切。文章标记颜色说明:黄色:重要标题红色:用来标记结论绿色:用来标记一级论点蓝色:用来标记二级论点Kubernetes(k8s)是一个容器编排平台,允许在容器中运行应用程序和服务。今天学习一下k8s日志查看相关方法希望这篇文章......
  • Nocalhost 为 KubeSphere 提供更强大的云原生开发环境
    1应用商店安装NocalhostServer已集成在KubeSphere应用商店,直接访问:设置应用「名称」,确认应用「版本」和部署「位置」,点击「下一步」:在「应用设置」标签页,可手动编辑清单文件或直接点击「安装」。建议把service.type设置为ClusterIP,以确保安装不受Kubernetes网络环境......