前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes组件:一个典型应用中的资源

Kubernetes组件:一个典型应用中的资源

作者头像
用户1682855
发布2019-03-06 17:56:30
7340
发布2019-03-06 17:56:30
举报
文章被收录于专栏:前沿技墅前沿技墅

Kubernetes是希腊文,意思是“舵手”,寓意是能带领我们安全地到达未知水域。Kubernetes这样的容器编排系统,会帮助我们妥善地管理分布式应用的部署结构和线上流量,高效地组织容器和服务。Kubernetes 作为数据中心操作系统,在设计软件系统时,能够尽量降低在底层网络和硬件设施上的负担。

下图显示了一个典型应用中所使用的各个 Kubernetes 组件。我们一起来看看一个实际应用程序的各个组成部分,试着从全局来审视它们。

一个典型应用中的资源

一个典型的应用 manifest 包含了一个或者多个 Deployment 和 StatefulSet 对象。这些对象中包含了一个或者多个容器的 pod 模板,每个容器都有一个存活探针,并且为容器提供的服务(如果有的话)提供就绪探针。提供服务的 pod 是通过一个或者多个服务来暴露自己的。当需要从集群外访问这些服务的时候,要么将这些服务配置为 LoadBalancer 或者 NodePort 类型的服务,要么通过 Ingress 资源来开放服务。

pod 模板(从中创建 pod 的配置文件)通常会引用两种类型的私密凭据(Secret)。一种是从私有镜像仓库拉取镜像时使用的 ;另一种是 pod 中运行的进程直接使用的。私密凭据本身通常不是应用 manifest 的一部分,因为它们不是由应用开发者来配置,而是由运维团队来配置的。私密凭据通常会被分配给ServiceAccount,然后ServiceAccount 会被分配给每个单独的 pod。

一个应用还包含一个或者多个 ConfigMap 对象,可以用它们来初始化环境变量,或者在pod中以 configMap卷来挂载。有一些pod会使用额外的卷,例如 emptyDir 或 gitRepo 卷,而需要持久化存储的 pod 则需要persistentVolumeClaim 卷。PersistentVolumeClaim 也是一个应用 manifest 的一部分,而被PersistentVolumeClaim 所引用的 StorageClass 则是由系统管理员事先创建的。

在某些情况下,一个应用还需要使用任务(Jobs)和定时任务(CronJobs)。守护进程集(DaemonSet)通常不是应用部署的一部分,但是通常由系统管理员创建,以在全部或者部分节点上运行系统服务。水平 pod 扩容器(HorizontalpodAutoscaler)可以由开发者包含在应用 manifest 中或者后续由运维团队添加到系统中。集群管理员还会创建 LimitRange 和 ResourceQuota 对象,以控制每个 pod 和所有的 pod(作为一个整体)的计算资源使用情况。

在应用部署后,各种 Kubernetes 控制器会自动创建其他的对象。其中包括端点控制器(Endpoint controller)创建的服务端点(Endpoint)对象,部署控制器(Deployment controller)创建的ReplicaSet 对象,以及由 ReplicaSet(或者 Job、CronJob、StatefulSet、DaemonSet)创建的实际的 pod 对象。

资源通常通过一个或者多个标签来组织。这不仅仅适用于 pod,同时也适用于其他的资源。除了标签,大多数的资源还包含一个描述资源的注解,列出负责该资源的人员或者团队的联系信息,或者为管理者和其他的工具提供额外的元数据。

本文节选自豆瓣9.3分好书《Kubernetes in Action》,旨在让读者了解技术本身,并掌握如何使用工具有效地在Kubernetes 集群中开发和部署应用程序。它介绍了在 Kubernetes 中有效地开发和运行应用所需的几乎所有概念,慢慢带你从基本概念到实现原理了解大部分的 Kubernetes 核心技术。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前沿技墅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本文节选自豆瓣9.3分好书《Kubernetes in Action》,旨在让读者了解技术本身,并掌握如何使用工具有效地在Kubernetes 集群中开发和部署应用程序。它介绍了在 Kubernetes 中有效地开发和运行应用所需的几乎所有概念,慢慢带你从基本概念到实现原理了解大部分的 Kubernetes 核心技术。
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档