自学内容网 自学内容网

Kubernetes的核心概念与术语

一、服务的状态

在kubernetes中,有状态服务和无状态服务是两种不同类型的应用程序部署方式,它们在容器编排和管理方面有一些关键区别。

1.有状态

        1.1.有状态服务是指会对本地环境产生依赖,通常需要稳定的数据和标识。每个实例都有自己的唯一表示,如消息队列或者数据库,他们需要在启动、停止、故障转移时保留数据或状态。

        1.2.有状态服务使用Kubernetes 提供 StatefulSet 来部署有状态服务。StatefulSet 具有管理有状态应用程序的能力,为每个 Pod 提供唯一的标识,以及稳定的网络标识,从而支持有状态服务的稳定性。

        1.3.代表:MySQL、Redis

2.无状态

        2.1.无状态服务是指不会对本地环境产生任何依赖,每个请求都能以相同的方式处理。也就是说无状态服务的任何一个实例都可以去处理用户的请求,请求之间没有任何关系。

        2.2.无状态服务通常使用Kubernetes 中的 Deployment 进行部署因为它们的实例可以随意启动和停止,而不会影响应用程序的状态或数据。

        2.3代表:Nginx

总结:存数据或有持久化就是有状态,不存数据、没有持久化是无状态。

二、对象规约(Spec)与状态(Status)

创建 Kubernetes 对象时,必须提供对象的 spec,用来描述该对象的期望状态, 以及关于对象的一些基本信息(例如名称)。

1.规约:

Spec规约描述对象的期望状态,必须在创建对象时设置其内容,描述你希望对象所具有的特征。

2.状态:

Status状态描述当前实际状态,由 Kubernetes 系统和组件设置并更新的。在任何时刻,Kubernetes 控制平面 都一直在积极地管理着对象的实际状态,以使之达成期望状态

三、资源与对象

划分的意识:能够更清晰的知道,资源能否跨集群使用,能否跨空间使用,为了方便后续旭熙使用,如果进行跨空间使用。

1.集群级别资源 

集群级别资源,作用于集群之上,集群下的所有资源都可以共享使用。 

1.1Namespace:命名空间,命名空间本身属于集群下的资源。

1.2Node:k8s只是管理Node上的资源。

1.3ClusterRole:集群角色,用于对集群权限管理。

1.4ClusterRoleBinding:角色绑定集群资源,用于对集群资源的管理。

2.命令空间资源

命名空间级别资源,作用在命名空间之上,一般只能在命名空间范围内使用

2.1Pod :最小的可部署单元,一个Pod(容器组)包含一个应用程序容器(或多个容器)、存储资源、唯一的网络ip地址、及一些确定容器该如何运行的选项。Pod容器组嗲表了Kubernetes中一个独立的应用程序运行实例,该实力可能由单个容器或者几个紧耦合在一起的容器组成。

控制器:

        --于无状态服务:RC、RS、Deployment

        Deployment:针对RS的更高层次的封装,提供了更丰富的部署相关功能。创建RS、滚动升级/回滚、平滑扩容缩容、暂停恢复Deplouyment

        --有状态服务:StatefulSet          

        --守护进程:DaemonSet

        --任务/定时任务:Job、CronJob

2.2Service:简称svc。Pod不能直接提供给外网访问,而是应该使用service。Service就是把Pod暴露出来提供服务。Service代理Pod集合,对外表现为一个访问入口,访问该入口的请求将经过负载均衡,转发到Pod中的容器。

2.3Ingress:将Kubernetes内部服务暴露给外网访问的服务。

2.4Volume: 数据卷,共享Pod中容器使用的数据。用来放持久化的数据,如数据库数据。

2.5CSI:规范定义拉存储提供商实现CSI兼容Volume Plugin的最小操作集合部署建议。

2.6ConfigMap:key-value的配置

2.7Secret: 解决密码、token、密钥等敏感数据的配置问题。

2.8DownwardAPI:Pod的信息共享到容器内部,容器可以读取到Pod的共享信息。

3.元数据资源

元数据级别资源,每一个资源都可以使用原空间的数据

3.1 Horizontal Pod Autosealer(HPA):Pod根据CPU使用率自定义指标自动对Pod进行扩容缩容,控制管理器每个30s查询Metrics使用资源情况,可自定义,具体细节参照官网。

3.2PodTemplate:关于pod定义,pod的模版。

3.3LimitRange:对集群资源进行一个限制,批量设置一个范围,控制预留资源以及使用上限。对某个命名空间的Pod的资源使用限制。(设置限制会影响部分策略)


原文地址:https://blog.csdn.net/z1299236067/article/details/142361430

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!