包含标签 kubenetes 的文章

什么是service mesh

什么是service mesh Service Mesh又译作“服务网格”,作为服务间通信的基础设施层。Willian Morgan(Linkerd的CEO)如下定义Service Mesh。 Service Mesh 是一个基础设施层,用于处理服务间通信。云原生应用有着复杂的服务拓扑,Service Mesh 保证请求可以在这些拓扑中可靠地穿梭。在实际应用当中,Service Mesh 通常是由一系列轻量级的网络代理组成的,它们与应用程序部署在一起,但应用程序不需要知道它们的存在。 Service Mesh 实际上就是处于 TCP/IP 之上的一个抽象层,它假设底层的 L3/L4 网络能够点对点地传输字节(当然,它也假设网络环境是不可靠的,所以 Service Mesh 必须具备处理网络故障的能力)。 架构图 通过以上的架构图,很清晰的看到,最重要的两个部分就是control plane 和sidecar Control Plane:控制平面是服务网格的集中管理和配置层。它负责控制和协调sidecar代理的行为。它提供了一个控制平面API,允许管理员配置流量管理、安全性和可观测性的策略、规则和设置。 Sidecar(旁车):它基于Envoy代理。它是在同一Kubernetes POD中运行的另一个容器,负责处理所有的横切关注点。它基于旁车容器设计模式。•应用程序流量:微服务通过使用sidecar容器连接到其他微服务。应用程序流量基本上是Envoy sidecar代理容器之间的通信 Data Plane:数据平面指的是部署在每个服务实例旁边的一组sidecar代理组成的网络,用于与系统中的其他服务进行通信。它充当服务与网络的中间人。Sidecar代理处理入站和出站流量,拦截通信并提供其他功能。 Controllers:控制器是负责管理和控制网格行为的组件。它通常是一个软件组件,用于监视服务的状态和健康情况、配置流量路由和负载均衡规则、实施安全策略,并处理网格内服务之间通信的其他方面。 服务发现(Service Discovery):服务发现是服务网格架构中的一个重要组件。它使得服务能够动态地定位和连接到彼此,而无需硬编码的地址。 证书授权机构(Certificate Authority):它提供和管理根证书和中间证书,并执行证书签名操作。 应用程序微服务(Application Microservices):这些是组成应用程序的各个服务或微服务。它们负责处理特定的功能或任务。 API端点(API Endpoints):API端点是网格中的服务之间进行通信的入口点 方案 目前社区Service Mesh的开源解决方案有:Buoyant 公司推出的 Linkerd 和 Google、IBM 等厂商牵头的 Istio。Linkerd 更加成熟稳定些,Istio 功能更加丰富、设计上更为强大,社区相对也更加强大一些。 istio介绍 Istio是由Google、IBM和Lyft开源的微服务管理、保护和监控框架。Istio为希腊语,意思是”起航“。Istio是一个开源的服务网格平台,提供了一组工具和功能,用于管理和保护基于微服务的应用程序。它旨在解决复杂分布式系统中与服务之间通信、可观察性、安全性和流量管理相关的常见挑战。在其核心,Istio在应用程序中的每个微服务旁边部署一个称为Envoy的sidecar代理。这个sidecar代理拦截和管理服务的所有入站和出站流量,使得Istio可以控制和监控服务之间的通信。 优点: Istio拥有庞大的在线服务网格社区,并且在互联网上备受赞誉和讨论。其GitHub的贡献者远远超过Linkerd,数量上占据优势。•此外,它支持Kubernetes和VM模式。 缺点: Istio并非免费提供,使用它需要相当大的时间投入,包括阅读文档、设置、确保正常功能和持续维护。 在生产环境中实施和集成Istio可能需要几周甚至几个月的时间,这取决于基础架构的复杂性。 使用Istio需要相当大的资源开销。•与Linkerd不同,它缺乏内置的管理仪表板。 此外,Istio要求使用其自己的入口网关。 Istio控制平面仅在Kubernetes容器中受支持,没有可用于Istio数据平面的VM模式。……

阅读全文

Kubernetes CRI

什么是cri Container Runtime Interface (CRI) The CRI is a plugin interface which enables the kubelet to use a wide variety of container runtimes, without having a need to recompile the cluster components. You need a working container runtime on each Node in your cluster, so that the kubelet can launch Pods and their containers. The Container Runtime Interface (CRI) is the main protocol for the communication between the kubelet and Container Runtime.……

阅读全文

企业为什么选择使用openshift

什么是openshift OpenShift是红帽的云开发平台即服务(PaaS)。自由和开放源码的云计算平台使开发人员能够创建、测试和运行他们的应用程序,并且可以把它们部署到云中。OpenShift广泛支持多种编程语言和框架,如Java,Ruby和PHP等。另外它还提供了多种集成开发工具如Eclipse integration,JBoss Developer Studio和 Jenkins等。OpenShift 基于一个开源生态系统为移动应用,数据库服务等,提供支持。 OpenShift Online服务构建在Red Hat Enterprise Linux上。Red Hat Enterprise Linux提供集成应用程序,运行库和一个配置可伸缩的多用户单实例的操作系统,以满足企业级应用的各种需求。 架构图 核心的概念 https://zhuanlan.zhihu.com/p/635160126?utm_id=0 容器(Container) 镜像(Image) 用户(User) 项目(Project) 容器沙箱(Pod) 部署(Deployment) 服务(Service) 路由(Router) 持久化存储(Persistent Storage) 模板(Template) 构建(Build)和镜像流(ImageStream) 为什么要使用openshift OpenShift的持续集成和持续部署(CI/CD)功能可以帮助开发者快速地将代码更改合并到主分支,并通过自动化的方式将其部署到生产环境,这不仅可以提高开发效率,还可以减少人为错误,提高软件的质量。 OpenShift的多租户支持功能使得不同的团队或者公司可以在同一个平台上共享资源,而不需要担心数据安全问题,每个租户都可以拥有自己的独立的应用程序、服务和数据库,这样就可以满足不同团队的需求。 OpenShift的应用市场功能提供了一个方便的平台,让开发者可以找到并使用各种预先构建的应用程序和服务,而不需要自己从头开始编写,这样不仅可以节省时间,还可以提高开发效率。 OpenShift的自动扩展功能可以根据应用程序的负载情况自动调整资源的分配,以确保应用程序的性能和可用性,这样可以避免因为资源不足而导致的应用程序崩溃,也可以在需求增加时快速地扩展应用程序的能力。 OpenShift的优势在于其简单易用、功能强大和灵活可扩展的特性,它可以帮助开发者快速地部署和管理应用程序,提高开发效率,降低运维成本。……

阅读全文