k8s的api资源
|
NAME |
SHORTNAMES |
APIGROUP |
NAMESPACED |
KIND |
资源用途说明 |
|
bindings |
TRUE |
Binding |
已弃用。用于记录一个object和另一个object的绑定关系。 实际上主要用于将pod和node关系, 所以在1.7版本后已经改为在pods.bindings中记录了 |
||
|
componentstatuses |
cs |
FALSE |
ComponentStatus |
是一个全局的list(即不受命名空间影响), 记录了k8s中所有的组件的的相关信息,比如创建时间,现在状态等。 |
|
|
configmaps |
cm |
TRUE |
ConfigMap |
是一种用于记录pod本身或其内部配置信息的API资源, 可以认为是通过API形式存储的配置文件 |
|
|
endpoints |
ep |
TRUE |
Endpoints |
用于记录每个service的pod的真实物理ip和port的对应关系, 包括service是TCP还是UDP等。 |
|
|
events |
ev |
TRUE |
Event |
用于记录集群中的事件,可以认为类似于日志里的一条记录 |
|
|
limitranges |
limits |
TRUE |
LimitRange |
用于记录各个命名空间中的pod或container对每种资源的使用限制, 一般被包含在pod的定义中 |
|
|
namespaces |
ns |
FALSE |
Namespace |
是一个全局的list,保存集群中所有的命名空间 |
|
|
nodes |
no |
FALSE |
Node |
是一个全局的list,详细记录了每个节点的可分配资源, 各心跳状态(网络,内存,硬盘,PID数量,kubelet等), kubelet的物理port,各k8s组件image信息,node环境信息 (os, CRI version, kubeProxy version, kubelet version等) |
|
|
persistentvolumeclaims |
pvc |
TRUE |
PersistentVolumeClaim |
记录用户对持久化存储的要求 |
|
|
persistentvolumes |
pv |
FALSE |
PersistentVolume |
是一个全局的object,记录了所有的持久化存储设备的信息 |
|
|
pods |
po |
TRUE |
Pod |
对于使用k8s的开发者而言最重要的资源 |
|
|
podtemplates |
TRUE |
PodTemplate |
一般是被包含在其它资源中的一部分,比如Jobs, DaemonSets, Replication Controllers |
||
|
replicationcontrollers |
rc |
TRUE |
ReplicationController |
是系统内建的最常用的controller,用来保证Pod的实际运行数量满足定义 |
|
|
resourcequotas |
quota |
TRUE |
ResourceQuota |
用于记录和限制某个namespace的中的总的资源消耗, 一般用于多用户下利用namespace对资源进行限制 |
|
|
secrets |
TRUE |
Secret |
实际上将文件内容通过base64编码后存在etcd中。 在Pod中container启动时可以将secretes作为文件挂载在某一路径下, 如此避免重要信息存储在image中。 |
||
|
serviceaccounts |
sa |
TRUE |
ServiceAccount |
用于授权集群内的pod访问apiServer |
|
|
services |
svc |
TRUE |
Service |
对外提供统一的Service IP和port,将流量负载均衡调整至集群中多个pod |
|
|
mutatingwebhookconfigurations |
admissionregistration.k8s.io |
FALSE |
MutatingWebhookConfiguration |
||
|
validatingwebhookconfiguratio |
admissionregistration.k8s.io |
FALSE |
ValidatingWebhookConfiguration |
||
|
customresourcedefinitions |
crd,crds |
apiextensions.k8s.io |
FALSE |
CustomResourceDefinition |
自定义资源也是非常重要的一种资源,是各种k8s插件能够存在的基础 |
|
apiservices |
apiregistration.k8s.io |
FALSE |
APIService |
定义API服务的资源。一个API请求有两种形式,
和 当一个请求到达apiServer后,必然需要有相应的代码去处理它。 每一对GROUP和VERSION确定一种API,响应每一种API请求的代码被抽象为一种服务(service)。 想象一下自定义资源的相关API请求到达apiServer后如何被处理呢? 相关的service也是自定义的并且运行在master中,k8s正是根据APIService来正确地将请求与正确的service关联。 在这里可以定义service名称,安全设置,优先级等。 |
|
|
controllerrevisions |
apps |
TRUE |
ControllerRevision |
是一个beta功能,用于Controller保存自己的历史状态便于更新和回滚 |
|
|
daemonsets |
ds |
apps |
TRUE |
DaemonSet |
常见的Pod set种类,用于控制每种pod状态(在定义的范围内, 且在每node上最多有一个 |
|
deployments |
deploy |
apps |
TRUE |
Deployment |
|
|
replicasets |
rs |
apps |
TRUE |
ReplicaSet |
|
|
statefulsets |
sts |
apps |
TRUE |
StatefulSet |
|
|
tokenreviews |
authentication.k8s.io |
FALSE |
TokenReview |
||
|
localsubjectaccessreviews |
authorization.k8s.io |
TRUE |
LocalSubjectAccessReview |
||
|
selfsubjectaccessreviews |
authorization.k8s.io |
FALSE |
SelfSubjectAccessReview |
||
|
selfsubjectrulesreviews |
authorization.k8s.io |
FALSE |
SelfSubjectRulesReview |
||
|
subjectaccessreviews |
authorization.k8s.io |
FALSE |
SubjectAccessReview |
||
|
horizontalpodautoscalers |
hpa |
autoscaling |
TRUE |
HorizontalPodAutoscaler |
|
|
cronjobs |
cj |
batch |
TRUE |
CronJob |
|
|
jobs |
batch |
TRUE |
Job |
||
|
certificatesigningrequests |
csr |
certificates.k8s.io |
FALSE |
CertificateSigningRequest |
|
|
leases |
coordination.k8s.io |
TRUE |
Lease |
||
|
endpointslices |
discovery.k8s.io |
TRUE |
EndpointSlice |
||
|
events |
ev |
events.k8s.io |
TRUE |
Event |
|
|
ingresses |
ing |
extensions |
TRUE |
Ingress |
|
|
ingressclasses |
networking.k8s.io |
FALSE |
IngressClass |
||
|
ingresses |
ing |
networking.k8s.io |
TRUE |
Ingress |
|
|
networkpolicies |
netpol |
networking.k8s.io |
TRUE |
NetworkPolicy |
|
|
runtimeclasses |
node.k8s.io |
FALSE |
RuntimeClass |
||
|
poddisruptionbudgets |
pdb |
policy |
TRUE |
PodDisruptionBudget |
|
|
podsecuritypolicies |
psp |
policy |
FALSE |
PodSecurityPolicy |
|
|
clusterrolebindings |
rbac.authorization.k8s.io |
FALSE |
ClusterRoleBinding |
||
|
clusterroles |
rbac.authorization.k8s.io |
FALSE |
ClusterRole |
||
|
rolebindings |
rbac.authorization.k8s.io |
TRUE |
RoleBinding |
||
|
roles |
rbac.authorization.k8s.io |
TRUE |
Role |
||
|
priorityclasses |
pc |
scheduling.k8s.io |
FALSE |
PriorityClass |
|
|
csidrivers |
storage.k8s.io |
FALSE |
CSIDriver |
||
|
csinodes |
storage.k8s.io |
FALSE |
CSINode |
||
|
storageclasses |
sc |
storage.k8s.io |
FALSE |
StorageClass |
|
|
volumeattachments |
storage.k8s.io |
FALSE |
VolumeAttachment |
NAME:api资源名称
SHORTNAMES:api资源名称简写
APIGROUP:api分组管理
NAMESPACED:是否可使用命名空间隔离
KIND:api资源类型
- StatefulSet: 常见的Pod set种类。和Deployment的区别之处是它控制的pod不是可互换的而是在整个生命周期有不变的标签。这样,每个pod可以有自己的DNS名,存储等。即使pod被删除后这些信息也会被恢复。
- TokenReview: 不明,似乎和apiServer的Webhook的token授权相关。
- LocalSubjectAccessReview: 不明(内部object),和一个命名空间对用户/组的授权检查相关。
- SelfSubjectAccessReview: 不明(内部object),和当前用户检查自己是否有权限对一个命名空间进行操作相关。
- SelfSubjectRulesReivew: 不明(内部object),含有当前用户在一个命名空间内能进行的操作的列表。和apiServer的授权安全模式相关
- SubjectAccessReviews: 不明(内部object),和用户/组的授权检查相关,并不限定于某个命名空间。
- HorizontalPodAutoScaler: 控制Pod set(比如Deployment)的pod数量的资源。可以根据pod的CPU、内存、自定义数据动态调节pod数量。在这里可以找到相关的例子。
- CronJob: 定时运行Job pod的资源。
- Job: 常见的Pod set种类,会创建一定数量的pod,仅当特定数量的pod成功结束后这个Job才算成功结束。创建的pod在结束后不会被重启。
- CertificateSigningRequests: 可以认为是一个接口,便于Pod等资源申请获得一个X.509证书。这个证书应该被controller approve或者被手动approve,之后被合适的对象签名。具体可以参考这里。
- Lease: 是一个在1.13版本中加入的资源类型,用于Node向master通知自己的心跳信息。之前的版本中kebulet是通过更新NodeStatus通知master心跳,后来发现NodeStatus太大了而心跳信息更新频繁,导致master压力较大,于是增加了Lease这种资源。
- EndpointSlice: 是含有一个service的Endpoint的部分信息的资源。原因和Lease类似,对于含有较多信息的service(比如有很多pod分布在多个node上)一个endpoint object可能会比较大而且被频繁访问,所以这种情况下会有多个endpointSlice被创建减轻master的压力。
- Event: 描述一个集群内的事件的资源,含有message,event,reason,报告来源等详细的信息。
- Ingresse (APIGroup=extensions): 将被deprecated。
- Ingresse (APIGroup=http://networking.k8s.io): 可以简单理解为是定义loadbalancer的资源。其中含有一系列规则,定义了不同url的对应后端,SSL termination等。为什么这个新的API会取代前面那个APIGroup=extensions的Ingress API呢?我查了很多地方没有找到具体的文字解释,但是可以推测是Ingress正式成为k8s的网络模块的一部分,对应的server(代码)从extensions迁移到http://networking.k8s.io。
- NetworkPolicy: 定义了那些网络流量可以去哪些pod的资源。一个NetworkPolicy可以指定一组pods,定义只有满足了特定条件(比如源/目的IP,port,pod名等)的网络流量可以被相应的pod收发。
- RuntimeClass: 这是2019年讨论加入的新API资源。文档说明其目的是将容器运行时(Container Runtime)环境的属性暴露给k8s的控制层,便于在一个集群或节点中支持多种容器运行时环境。这样便于未来创建更具有兼容性的k8s集群。
- PodDisruptionBudget: 这一个API资源使用户可以对一组pod定义“k8s可以容忍的实际running状态的pod数量与预期的差距”。考虑这样一个情景:一集群中某个service后一共有5个相同pod处理其流量,要求至少有一半的pod是可用的,但其中3个pod由于调度运行在node A上。如果出现node A突然故障等情况导致服务不可用,暂时没有好的办法处理这种不可避免地意外情况(或者需要让调度算法知道这些pod应该被尽量均匀分布在个节点上,但目前k8s没有功能强制这种调度)。但除此之外还有很多可以避免的意外情况,比如在集群维护或者其它事件的处理过程中,集群管理员可能drain node A,导致三个pod同时被结束从而影响业务。针对这种可避免的意外,若一组pod的数量因为可避免的k8s操作将会低于可容忍程度(在PodDisruptionBudget中定义),那么这个命令会被阻止并返回失败。
- PodSecurityPolicy: 定义了一个pod在集群中被创建/运行/更新时需要满足的条件。
- ClusterRole: 定义了集群中policy rule的一些常见集合,比如
system-node等,用于控制账户权限。 - ClusterRoleBinding: 定义了某个账户/组对ClusterRole的引用,用于赋权。
- Roles: 和前面ClusterRole类似,但是顾名思义ClusterRole是和集群账户相关,Role则被用于其它的账户(比如controller使用的service account)
- RoleBindings: 定义了某个账户/组对Role的引用,用于赋权。
- PriorityClass: 定义了pod优先级名称和对应值的映射。比如
system-cluster-critical对应的优先级为2000000000。值越大代表优先级越高,那么当集群资源不足等情况发生必须终止一些pod时,优先级小的pod会先被终止。为什么不直接用数值代表优先级呢?因为这样子很容易出现确定随意性。比如开发人员A开发了一个非常重要的pod,于是在代码中将其优先级的值设置为9999。但是集群集群管理员B可能认为9999是一个小数字,他创建的随便一个pod的优先级都是999999+。于是需要PriorityClass来进行优先级的统一管理和比较。 - CSIDriver: 定义了集群中容器存储驱动的API资源。CSI代表的是Container Storage Interface,即容器存储接口。k8s应该可以利用各种各样的存储服务,各家云厂商的活开源的。k8s如何知道怎么去用这些存储服务呢?那么就是通过这个CSIDriver资源找到相应的驱动。
- CSINode: 前面CSIDriver产生的节点相关的信息便存在CSINode中。
- StorageClass: 定义了可以存在的存储类型的API资源。
- Volumeattachments: 定义了对一个node分配/回收存储空间的请求的API资源。
- NetworkSets: 接下来的都是Calico自定义API资源,就不一一分析了,都与网络协议/安全/管理相关。
- NetworkPolicies: Calico自定义API资源
- IPPools: Calico自定义API资源
- IPAMHandles: Calico自定义API资源
- IPAMConfigs: Calico自定义API资源
- IPAMBlocks: Calico自定义API资源
- HostEndpoints: Calico自定义API资源
- GlobalNetworkSets: Calico自定义API资源
- GlobalNetworkPolicies: Calico自定义API资源
- FelixConfiguration: Calico自定义API资源
- ClusterInformation: Calico自定义API资源
- BlockAffinity: Calico自定义API资源
- BGPPeer: Calico自定义API资源
- BGPConfiguration: Calico自定义API资源
k8s的api资源的更多相关文章
- k8s管理pod资源对象(下)
一.标签与标签选择器 1.标签是k8s极具特色的功能之一,它能够附加于k8s的任何资源对象之上.简单来说,标签就是键值类型的数据,它们可于资源创建时直接指定,也可随时按需添加于活动对象中,而后即可由标 ...
- 容器编排系统K8s之crd资源
前文我们了解了k8s节点污点和pod的对节点污点容忍度相关话题,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14255486.html:今天我们来聊一下扩展 ...
- 容器编排系统K8s之APIService资源
前文我们聊到了k8s上crd资源的使用和相关说明,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14267400.html:今天我们来了解下k8s的第二种扩展 ...
- Identity Server 4 - Hybrid Flow - 保护API资源
这个系列文章介绍的是Identity Server 4 的 Hybrid Flow, 前两篇文章介绍了如何保护MVC客户端, 本文介绍如何保护API资源. 保护MVC客户端的文章: https://w ...
- Identity Server 4 - Hybrid Flow - 使用ABAC保护MVC客户端和API资源
这个系列文章介绍的是Identity Server 4 实施 OpenID Connect 的 Hybrid Flow. 保护MVC客户端: https://www.cnblogs.com/cgzl/ ...
- Identity4实现服务端+api资源控制+客户端请求
准备写一些关于Identity4相关的东西,最近也比较对这方面感兴趣.所有做个开篇笔记记录一下,以便督促自己下一个技术方案方向 已经写好的入门级别Identity4的服务+api资源访问控制和简单的客 ...
- 第55章 API资源 - Identity Server 4 中文文档(v1.0.0)
此类建模API资源. Enabled 指示此资源是否已启用且可以请求.默认为true. Name API的唯一名称.此值用于内省身份验证,并将添加到传出访问令牌的受众. DisplayName 该值可 ...
- k8s容器的资源限制
1.k8s支持内存和cpu的限制 requests:容器运行需求,最低保障limits:限制,硬限制(资源上限) CPU: 1颗逻辑CPU(1核CPU=4个逻辑CPU) 1物理核=1000个微核(mi ...
- IdentityServer4关于多客户端和API的最佳实践【含多类型客户端和API资源,以及客户端分组实践】【下】
经过前两篇文章你已经知道了关于服务器搭建和客户端接入相关的基本资料,本文主要讲述整个授权系统所服务的对象,以ProtectApi资源为演示 目标: 1)实现多资源服务器针对请求的token校验,接入I ...
随机推荐
- 总结一下各种0.5px的线
在PC端用1px的边框线,看起来还好,但在手机端看起来就很难看了,而0.5px的分割线会有种精致的感觉.用普通写法border:solid 0.5px red;iPhone可以正常显示,android ...
- EDM响应式邮件框架:MJML
概述 新课题研究:响应式邮件框架MJML(MJML官网:https://mjml.io/)姐妹篇: EDM响应式邮件框架:Formerly Ink 介绍 MJML是一种标记语言,设计用于轻松实现一个响 ...
- 饿了么组件库element-ui正则表达式验证表单,后端验证表单。
前言 老是遇到一些朋友问一些element-ui组件使用相关的基础问题,因为官方文档上并没有提供所有琐碎的功能代码demo.从这里开始我会根据我实际遇到的问题记录一些常见的官方文档没有详述的功能代码, ...
- HTML5 Audio & Video 属性解析
一.HTML 音频/视频 方法 play() play() 方法开始播放当前的音频或视频. var myVideo=document.getElementById("video1" ...
- 原生ES6写的Web游戏:ES6-Mario,小美女,小帅哥快来玩啊~~
? ES6-Mario 这是一个用原生ES6语法和HTML5新特性写成的Web 游戏. 通过这个项目,你可以在实践中对ES6的主要内容.HTML Canvas 相关API以及Webpack的基础配置有 ...
- python爬取京东评论
一.分析 1.找到京东商品评论所在位置(记得点击商品评论,否则找不到productPageComments.action) 2.解析文件 打开后发现是json数据,但不是那么规范,所以需要去点前面的 ...
- Java/C++实现命令模式---多次撤销和撤回
某系统需要提供一个命令集合(注:可以使用链表,栈等集合对象实现),用于存储一系列命令对象,并通过该命令集合实现多次undo()和redo()操作,可以使用加法运算来模拟实现.\ 类图: Java代码: ...
- 什么是实例内部类 Instance inner class有什么语法?
1.Instance inner class定义,用途和用法 重要语法:马克-to-win:1)实例内部类一定得有个外层类的实例和它绑定在一起,所以可以用This指针.所以必须先实例化外层类之后才能再 ...
- nodejs创建服务器
'use strict'; //加载http模块: const http = require('http'); //创建一个http服务: const server = http.createSe ...
- 《头号玩家》AI电影调研报告(四)
五. 现实中对于技术的实现 1.自由变身 电影中,主人公借助"魔幻眼镜"让自己快速变成另一个人的模样,现实中我们一样也能做到! 在今年游戏开发者大会(GDC)上,一个名为" ...