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请求有两种形式,

/apis/GROUP/VERSION/*这种不被包含在namespace中的(即全局的)

/apis/GROUP/VERSION/namespaces/NAMESPACE/*这种被包含在namespace中的。

当一个请求到达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资源类型

 
  1. StatefulSet: 常见的Pod set种类。和Deployment的区别之处是它控制的pod不是可互换的而是在整个生命周期有不变的标签。这样,每个pod可以有自己的DNS名,存储等。即使pod被删除后这些信息也会被恢复。
  2. TokenReview: 不明,似乎和apiServer的Webhook的token授权相关。
  3. LocalSubjectAccessReview: 不明(内部object),和一个命名空间对用户/组的授权检查相关。
  4. SelfSubjectAccessReview: 不明(内部object),和当前用户检查自己是否有权限对一个命名空间进行操作相关。
  5. SelfSubjectRulesReivew: 不明(内部object),含有当前用户在一个命名空间内能进行的操作的列表。和apiServer的授权安全模式相关
  6. SubjectAccessReviews: 不明(内部object),和用户/组的授权检查相关,并不限定于某个命名空间。
  7. HorizontalPodAutoScaler: 控制Pod set(比如Deployment)的pod数量的资源。可以根据pod的CPU、内存、自定义数据动态调节pod数量。在这里可以找到相关的例子。
  8. CronJob: 定时运行Job pod的资源。
  9. Job: 常见的Pod set种类,会创建一定数量的pod,仅当特定数量的pod成功结束后这个Job才算成功结束。创建的pod在结束后不会被重启。
  10. CertificateSigningRequests: 可以认为是一个接口,便于Pod等资源申请获得一个X.509证书。这个证书应该被controller approve或者被手动approve,之后被合适的对象签名。具体可以参考这里。
  11. Lease: 是一个在1.13版本中加入的资源类型,用于Node向master通知自己的心跳信息。之前的版本中kebulet是通过更新NodeStatus通知master心跳,后来发现NodeStatus太大了而心跳信息更新频繁,导致master压力较大,于是增加了Lease这种资源。
  12. EndpointSlice: 是含有一个service的Endpoint的部分信息的资源。原因和Lease类似,对于含有较多信息的service(比如有很多pod分布在多个node上)一个endpoint object可能会比较大而且被频繁访问,所以这种情况下会有多个endpointSlice被创建减轻master的压力。
  13. Event: 描述一个集群内的事件的资源,含有message,event,reason,报告来源等详细的信息。
  14. Ingresse (APIGroup=extensions): 将被deprecated。
  15. Ingresse (APIGroup=http://networking.k8s.io): 可以简单理解为是定义loadbalancer的资源。其中含有一系列规则,定义了不同url的对应后端,SSL termination等。为什么这个新的API会取代前面那个APIGroup=extensions的Ingress API呢?我查了很多地方没有找到具体的文字解释,但是可以推测是Ingress正式成为k8s的网络模块的一部分,对应的server(代码)从extensions迁移到http://networking.k8s.io
  16. NetworkPolicy: 定义了那些网络流量可以去哪些pod的资源。一个NetworkPolicy可以指定一组pods,定义只有满足了特定条件(比如源/目的IP,port,pod名等)的网络流量可以被相应的pod收发。
  17. RuntimeClass: 这是2019年讨论加入的新API资源。文档说明其目的是将容器运行时(Container Runtime)环境的属性暴露给k8s的控制层,便于在一个集群或节点中支持多种容器运行时环境。这样便于未来创建更具有兼容性的k8s集群。
  18. 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中定义),那么这个命令会被阻止并返回失败。
  19. PodSecurityPolicy: 定义了一个pod在集群中被创建/运行/更新时需要满足的条件。
  20. ClusterRole: 定义了集群中policy rule的一些常见集合,比如system-node等,用于控制账户权限。
  21. ClusterRoleBinding: 定义了某个账户/组对ClusterRole的引用,用于赋权。
  22. Roles: 和前面ClusterRole类似,但是顾名思义ClusterRole是和集群账户相关,Role则被用于其它的账户(比如controller使用的service account)
  23. RoleBindings: 定义了某个账户/组对Role的引用,用于赋权。
  24. PriorityClass: 定义了pod优先级名称和对应值的映射。比如system-cluster-critical对应的优先级为2000000000。值越大代表优先级越高,那么当集群资源不足等情况发生必须终止一些pod时,优先级小的pod会先被终止。为什么不直接用数值代表优先级呢?因为这样子很容易出现确定随意性。比如开发人员A开发了一个非常重要的pod,于是在代码中将其优先级的值设置为9999。但是集群集群管理员B可能认为9999是一个小数字,他创建的随便一个pod的优先级都是999999+。于是需要PriorityClass来进行优先级的统一管理和比较。
  25. CSIDriver: 定义了集群中容器存储驱动的API资源。CSI代表的是Container Storage Interface,即容器存储接口。k8s应该可以利用各种各样的存储服务,各家云厂商的活开源的。k8s如何知道怎么去用这些存储服务呢?那么就是通过这个CSIDriver资源找到相应的驱动。
  26. CSINode: 前面CSIDriver产生的节点相关的信息便存在CSINode中。
  27. StorageClass: 定义了可以存在的存储类型的API资源。
  28. Volumeattachments: 定义了对一个node分配/回收存储空间的请求的API资源。
  29. NetworkSets: 接下来的都是Calico自定义API资源,就不一一分析了,都与网络协议/安全/管理相关。
  30. NetworkPolicies: Calico自定义API资源
  31. IPPools: Calico自定义API资源
  32. IPAMHandles: Calico自定义API资源
  33. IPAMConfigs: Calico自定义API资源
  34. IPAMBlocks: Calico自定义API资源
  35. HostEndpoints: Calico自定义API资源
  36. GlobalNetworkSets: Calico自定义API资源
  37. GlobalNetworkPolicies: Calico自定义API资源
  38. FelixConfiguration: Calico自定义API资源
  39. ClusterInformation: Calico自定义API资源
  40. BlockAffinity: Calico自定义API资源
  41. BGPPeer: Calico自定义API资源
  42. BGPConfiguration: Calico自定义API资源
 

k8s的api资源的更多相关文章

  1. k8s管理pod资源对象(下)

    一.标签与标签选择器 1.标签是k8s极具特色的功能之一,它能够附加于k8s的任何资源对象之上.简单来说,标签就是键值类型的数据,它们可于资源创建时直接指定,也可随时按需添加于活动对象中,而后即可由标 ...

  2. 容器编排系统K8s之crd资源

    前文我们了解了k8s节点污点和pod的对节点污点容忍度相关话题,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14255486.html:今天我们来聊一下扩展 ...

  3. 容器编排系统K8s之APIService资源

    前文我们聊到了k8s上crd资源的使用和相关说明,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14267400.html:今天我们来了解下k8s的第二种扩展 ...

  4. Identity Server 4 - Hybrid Flow - 保护API资源

    这个系列文章介绍的是Identity Server 4 的 Hybrid Flow, 前两篇文章介绍了如何保护MVC客户端, 本文介绍如何保护API资源. 保护MVC客户端的文章: https://w ...

  5. Identity Server 4 - Hybrid Flow - 使用ABAC保护MVC客户端和API资源

    这个系列文章介绍的是Identity Server 4 实施 OpenID Connect 的 Hybrid Flow. 保护MVC客户端: https://www.cnblogs.com/cgzl/ ...

  6. Identity4实现服务端+api资源控制+客户端请求

    准备写一些关于Identity4相关的东西,最近也比较对这方面感兴趣.所有做个开篇笔记记录一下,以便督促自己下一个技术方案方向 已经写好的入门级别Identity4的服务+api资源访问控制和简单的客 ...

  7. 第55章 API资源 - Identity Server 4 中文文档(v1.0.0)

    此类建模API资源. Enabled 指示此资源是否已启用且可以请求.默认为true. Name API的唯一名称.此值用于内省身份验证,并将添加到传出访问令牌的受众. DisplayName 该值可 ...

  8. k8s容器的资源限制

    1.k8s支持内存和cpu的限制 requests:容器运行需求,最低保障limits:限制,硬限制(资源上限) CPU: 1颗逻辑CPU(1核CPU=4个逻辑CPU) 1物理核=1000个微核(mi ...

  9. IdentityServer4关于多客户端和API的最佳实践【含多类型客户端和API资源,以及客户端分组实践】【下】

    经过前两篇文章你已经知道了关于服务器搭建和客户端接入相关的基本资料,本文主要讲述整个授权系统所服务的对象,以ProtectApi资源为演示 目标: 1)实现多资源服务器针对请求的token校验,接入I ...

  10. k8s监控api调用

    k8s监控api调用 curl -s --cacert /etc/kubernetes/ssl/ca.pem -basic -u fengjian:fengjian --insecure -X GET ...

随机推荐

  1. MySql 数据库导入到 SQL Service

    1.下载安装ODBC驱动程序 地址:http://dev.mysql.com/downloads/connector/odbc/ 注意:系统的版本问题( 我的是64位的win7系统,但是SQL Ser ...

  2. A better way to learn D3 js - iLearning D3.js

    iLearning D3.js Basic is an iPad app to learn and code with D3. In 1.1 version, new tutorial is prov ...

  3. 钢管下料问题2(剩余材料最少)lingo求解

    大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang !钢管下料问题2(剩余材料最少) 题目: 钢管原料   每根19m 客户需求   4m   50根 ...

  4. STL之priority_queue为复合结构排序

    priority_queue为复合结构排序: #include <iostream> #include <queue> using namespace std; struct ...

  5. Golang:测试map是否存在

    请看这个url:http://www.du52.com/text.php?id=561 if v, ok := m1["a"]; ok { fmt.Println(v) } els ...

  6. Java并发之CountDownLatch工具类

    一.CountDownLatch工具类介绍 CountDownLatch类是Java并发工具常用的四大工具之一,CountDownLatch允许一个或者多个线程等待其他线程完成工作.假设我们有这样的一 ...

  7. AE插件:能量激光描边光效特效Saber Mac汉化版

    与大家分享一款非常好用的AE插件Saber插件汉化版.videocopilot saber是一款能量激光描边光效特效AE插件,可以帮助用户制作出能量激光.传送门.霓虹灯.电流.光束.光剑等效果.小编现 ...

  8. js 测试性能

    console.time('querySelector');for(var i=0; i<1000; i++){document.querySelector('body');}console.t ...

  9. cetos7最小化安装设置网络启动和更新yum源

    1. 使用静态 IP 地址配置网络 你第一件要做的事情就是为你的 CentOS 服务器配置静态 IP 地址.路由以及 DNS.我们会使用 ip 命令代替 ifconfig 命令.当然,ifconfig ...

  10. select函数用法详解

    1. select函数 select的作用: 轮询的方式,从多个文件描述符中获取状态变化后的情况. 头文件 #include <sys/time.h> //for struct timev ...