Kubernetes 是一个用于管理容器化应用的平台。它提供多种 API,可帮助用户控制和管理容器化应用的部署、扩展和组织方式。Kubernetes 可应用于本地部署或云端环境,是当前主流的容器化应用管理平台。
应用扩展能力是 Kubernetes 的一项重要优势。它可以根据 CPU 利用率、内存使用率或其他指标自动扩展应用,从而确保您的应用始终可用,满足用户需求。
Kubernetes 是一款强大的工具,可帮助您管理和编排 Docker 容器。借助 Kubernetes,您可以为应用创建一个涵盖一切运行要素的自包含环境,包括应用、相关性、库和配置文件。
Kubernetes 还可以帮助您根据需要扩展或缩减应用,确保始终拥有足够的资源来高效运行。此外,Kubernetes 还提供许多特性来帮助管理 Docker 容器,例如滚动更新和运行状况检查。
Kubernetes 提供一系列用于应用管理的资源、服务和工具。下面是最常用的一些工具。
Kubernetes 提供一种名为 Ingress 的资源类型。这种资源类型适用于多种用途,包括可用作负载均衡器。您可使用基于 Ingress 的负载均衡服务为一组 pod 分配流量,并将其作为一个统一服务公开,从而提高应用的可用性和性能。
负载均衡器会检查收到的每个请求的标头,根据请求的目标和定义规则来选择 pod,然后将请求转发至该 pod。
负载均衡器还支持运行状况检查。用户可指定一组标准,pod 必须满足该标准负载均衡器才会将请求发送至该 pod。如果 pod 不满足要求,负载均衡器将停止向其发送请求。
此外,您还可以使用负载均衡器根据请求的源 IP 地址来路由流量。当您限制从某个特定源访问应用时,这一功能尤为有用。
Kubernetes 网络通过创建 pod 和服务实现。pod 由一个或多个容器组成,这些容器部署在一起,共享一个网络命名空间和 IP 地址。
pod 中的容器可以使用本地主机相互通信。
用户可使用服务向外部公开一个或多个 pod,通过将服务实施为负载均衡器对多个 pod 中的流量进行负载均衡。
Kubernetes 调度程序是 Kubernetes 系统的关键组成部分。它负责将资源分配给各个 pod 并确保资源正常运行。
调度程序会为每个 pod 指定优先级,并查找拥有足够资源的节点来供应 pod。在资源不足的情况下,调度程序将优先为节点分配优先级较高的 pod。调度程序在分配资源时会考虑 pod 的不同优先级。一般来说,在向节点分配 pod 时,低优先级的节点将用于减少中断和抢占。如果没有拥有足够资源的节点,调度程序会一直等待,直到出现足够资源的节点。
除上述功能外,调度程序还负责重启发生故障的 pod。一旦 pod 发生故障,调度程序将在其他节点上继续运行该 pod。这可以确保该 pod 始终能够访问所需资源,顺畅运行。
Kubernetes 自动伸缩是一项强大的功能,可支持您根据 CPU 利用率或其他指标来扩展或缩减 pod。自动伸缩功能可帮助您将集群中的 pod 数量维持在最合适的水平,从而提高应用的性能和稳定性。
Kubernetes 自动伸缩功能分为两种类型:水平自动伸缩和垂直自动伸缩。
水平自动伸缩功能通过在集群中添加或删除节点来扩展或缩减 pod,而垂直自动伸缩功能通过更改单个 pod 的 CPU 或内存限制来扩展或缩减 pod。
Kubernetes 自动伸缩功能基于两个概念:伸缩触发器和伸缩策略。伸缩动因是指促发 Kubernetes 扩展或伸缩 pod 的条件。伸缩策略是指伸缩触发时 Kubernetes 执行的操作。
DNS 即域名系统,它可将人类可读的域名转换为计算机使用的数字 IP 地址。Kubernetes 使用 DNS 来管理服务。Kubernetes 中的每一项服务都有一个唯一的 DNS 名称。在创建服务时,Kubernetes 会为该服务创建一项 DNS 记录。DNS 记录中包含服务的 IP 地址和端口号。Kubernetes 使用这些信息将流量路由至相应服务。
服务的 DNS 名称由两个部分组成:
域名是 DNS 名称的一部分,域中所有服务都使用相同的域名。服务名也是 DNS 名称的一部分,但每项服务拥有唯一服务名。
Oracle Container Engine for Kubernetes 可帮助使用 Kubernetes 的企业简化流程,降低云原生应用开发预算。作为 Oracle Cloud Infrastructure 的一部分,Oracle Container Engine for Kubernetes 可提供强大的功能,则无需额外付费。立即开始免费试用 Oracle Cloud Infrastructure。
注:为免疑义,本网页所用以下术语专指以下含义: