在微服务中,Kubernetes软件组件有哪些?

在微服务、云计算和无服务架构时代,理解Kubernetes并且知道如何使用它是十分有用的。然而,官方的Kubernetes文档对于刚开始接触云计算的用户来说有些难以理解,以下内容是关于Kubernetes软件组件有哪些的详细介绍。

容器

现代软件开发的目标之一是保证各类应用程序在相同的主机或集群上可以彼此隔离。虚拟机是解决该问题的一个方案。但虚拟机需要他们自己的操作系统,所以他们的规模通常是千兆字节。

容器则恰恰相反,它可以隔离应用程序的执行环境但共享底层操作系统。所以,容器就像一个盒子,我们可以在其中保存一切运行应用程序所需要的:代码、运行时、系统工具、系统仓库、设置等。它们通常仅需要几兆字节即可运行,远远少于虚拟机所需资源,并且可以立即启动。

Pods

Pod是一组容器。在Kubernetes中,最小的单位是Pod。一个Pod可以包含多个容器,但通常情况下我们在每个Pod中仅使用一个容器,因为在Kubernetes中最小复制单位是Pod。如果我们想要为每个容器单独扩容,我们添加一个容器到Pod中即可。

Deployments

Deployment的最初功能是为Pod和ReplicaSet(相同Pod在其中会被复制很多次)提供声明式更新。使用deployment,我们可以指定有多少相同Pod的副本应该随时运行。Deployment类似于Pod的管理器,它可以自动启动所需数量的Pod、监控Pod并在出现故障时重新创建Pod。Deployment极其有用,因为你不需要单独创建和管理每个Pod。

我们通常为无状态应用程序使用Deployment。然而,你可以通过给他附加一个持久卷来残存Deployment的状态并使其变得有状态。

StatefulSets

StatefulSet是Kubernetes中的一个新概念并且它是用于管理有状态应用的资源。它管理deployment和一组Pod的扩展,并且确保这些Pod的顺序以及独特性。它与deployment类似,唯一的区别是deployment创建一组任意名称的Pod,并且Pod的顺序对它来说并不重要,而StatefulSet创建的Pod都有独一无二的名称以及顺序。所以,如果你想为名为example的Pod创建3个副本,那么StatefulSet将会创建为:example-0、example-1、example-2。因此,这一创建方式最重要的好处就是你可以通过Pod的名称就了解大致的情况。

DaemonSets

DaemonSet可以确保Pod运行在集群的所有节点上。如果从集群中添加/移除了一个节点,DaemonSet会自动添加/删除该Pod。这对于监控以及日志十分重要,因为你可以监控每个节点并且不需要手动监控集群。

Services

Deployment负责保持一组Pod处于运行状态,那么Service负责为一组Pod启动网络访问。Services可以跨集群提供标准化的特性:负载均衡、应用间的服务发现以及零宕机应用程序deployment。每个服务都有独一无二的IP地址以及DNS主机名称。可以为需要使用服务的应用程序手动配置相应的IP地址或主机名称,然后流量将会被负载均衡到正确的Pod。在外部流量的部分,我们会了解到更多的服务类型以及我们如何在内部服务和外部世界间进行通信。

ConfigMaps

如果你想部署到多个环境中,如staging、开发环境和生产环境,bake配置到应用程序中并不是一个好的操作,因为环境之间存在差异性。理想状况下,你会希望每个部署环境对应不同的配置。于是,ConfigMap应运而生。ConfigMaps可以让你从镜像中解耦配置工件以保持容器化应用程序的便携性。

java面试题免费的

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值