首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏TA码字

    K8s源码分析(18)-资源API的注册

    上篇文章里,我们主要介绍了 kubernetes 中资源 API 的数据结构对象实例 APIGroupInfo 的创建,包括对于核心组资源和非核心组资源该结构的创建过程,本篇文章我们主要介绍资源 API 对象来注册安装核心资源组的 API 3.在注册安装核心资源API 的过程中, 创建核心资源API 的数据结构 APIGroupInfo 4.对于非核心资源组, 会创建上篇文章中我们介绍的 RESTStorageProvider 对象 5.利用非核心组的 RESTStorageProvider 对象来注册安装非核心组资源 API 6.在注册安装非核心资源API 过程中, 创建非核心资源API 数据结构 APIGroupInfo 7.对于核心资源组与非核心资源组,均注册安装里面的资源 API 8.在上述的过程中, 会创建以前文章我们介绍的结构体 APIGroupVersion , 将资源访问路径(上篇文章中介绍的资源名称和子资源名称)和资源处理类, 注册成相应的 REST API,另外 kubernetes 的 API 使用了 go-restful 这个 web 框架,我们在源码里可以明确的看到核心对象

    70310编辑于 2022-05-30
  • 来自专栏山河已无恙

    K8s面试系列:K8s常用 API 资源总结速记

    写在前面 博文内容为 K8s 中常用的 API 资源简单总结 适合对 K8s 有基本认知,温习,面试准备的小伙伴 内容涉及:API 资源组成 ,SSA 和CSA 资源操作方式,以及资源类别工作负载,服务 Kubernetes API概述 官方文档位置: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/ 在 k8s 体系中 API 资源组成 在 K8s中 一个常见的 API 对象由下面四部分构成: 资源种类和API版本ResourceKind、Version: 这是关于 API 资源的类型和版本说明 apiVersion API资源的操作 API 资源对象的基本操作分为4 类,即传统的增删改查。 到 V1 版本 认证 下面API 资源用于身份认证, TokenRequest TokenRequest 为给定的服务账号SA请求一个令牌 apiVersion: authentication.k8s.io

    64600编辑于 2025-02-25
  • 来自专栏软件工程师Michael

    .NET定义身份资源API资源

    OpenID Connect 和 Oauth 令牌服务的最终目的是控制对资源的访问。 public class InMemoryResourcesStore : IResourceStore 定义身份资源 代表有关用户的声明,例如用户ID,显示名称,电子邮件地址等。 Identity Resource Reference 以下示例显示了一个名为 profile 的自定义身份资源 public static IEnumerable GetIdentityResources 定义 API 资源 代表客户端想要访问的功能。通常,它们是基于HTTP的终结点,也可以是其它。 每个API 也可能具有作用域。某些范围可能是该资源专有的,而某些范围可能是共享的。 ."), new ApiScope(name: "delete", displayName: "Delete your data.") }; } API Scope Reference 然后,您可以将范围分配给各种客户端

    1.1K70编辑于 2023-03-03
  • 来自专栏TA码字

    K8s源码分析(16)-资源API数据结构

    但是不论如何, 在 kubernetes 定义中所有的组以及组内各个版本的资源都是通过 REST API 来向外暴露提供操作的,在本篇文章中我们主要介绍 kubernetes 资源 API 的数据结构。 APIGroupInfo结构体 对于 APIGroupInfo 结构体,其主要定义了具体某一个资源API 的相关信息,例如常见的 apps 和 core 资源组,其图解和源码如下: // k8s.io 结构体有属性 Root 代表 API 的根路径。 结构体中有 Serializer 属性来辅助完成资源的序列化和反序列化操作。 结构体有 Typer 属性辅助识别资源类型。 APIInstaller结构体 对于 APIInstaller 结构体,主要用来辅助完成资源到 REST API 的注册,其图解和源码如下: // k8s.io/apiserver/pkg/endpoints 目前先我们写到这里,在下一篇文章中我们继续来介绍 kubernetes 资源 API 结构体的创建。

    73130编辑于 2022-02-25
  • 来自专栏山河已无恙

    K8S:通过 kubectl 插件 ketall 查看所有API对象资源

    ——《郑风·出其东门》 ---- 分享一个查看集群所有资源的小工具,正常如果我们要删除集群,需要删除集群的所有 API 资源,需要获取当前命名空间所有的资源,通过命令行的方式可以实现,但是往往不是很简单的命令就可以实现 今天分享的 kubectl 插件可以很方便的获取到当前所有的资源。 如果看一些常见的 API 资源,可以通过下面的命令获取 ┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-helm-create] └─$kubectl 命名空间所有的资源,可以通过下面的命令获取 ┌──[root@vms81.liruilongs.github.io]-[~/ansible/k8s-helm-create] └─$kubectl api-resources ,下面为过滤出 age 为小于等于 5天的 所有API 资源

    1K20编辑于 2023-08-21
  • 来自专栏TA码字

    K8s源码分析(17)-资源API数据结构的创建

    在上一篇文章里,我们主要介绍了 kubernetes 中资源 API 的具体数据结构,其中包括结构体 APIGroupInfo 代表了某一个组中所有版本资源API 信息具体数据结构,结构体 APIGroupVersion 代表了某一个组中的某一个版本里所有资源API 信息的具体数据结构,APIInstaller 结构体用来辅助资源 API 的注册。 同样,根据上文的介绍, 结构体 APIGroupVersion 代表了某一个组中的某一个版本里所有资源API 信息数据。 该结构体的 NewLegacyRESTStorage() 方法创建 APIGroupInfo 实例, 代表核心组中所有资源API 信息。 对于每个资源,映射资源名称和资源操作类的关系。 目前先我们写到这里,在下一篇文章中我们继续来介绍 kubernetes 资源 API 的注册。

    93330编辑于 2022-05-30
  • 来自专栏机器学习与系统

    RESTful API模式系列三:资源

    资源是任何RESTful API中的基本概念。资源是对象,包括类型、关联的数据、资源间的关系以及资源上的操作集合。 下图描述了RESTful API的关键概念: 我们把描述资源的类型、行为和关系的信息称为API资源模型。RESTful中的资源模型可以视为到应用数据模型的映射。 资源数据 资源关联数据。 API资源模型还包括关联数据的丰富性。比如,它定义了哪些可用的数据类型和行为。 就我个人经验,我坚信JSON这种数据模型完美满足API的丰富性要求,它是RESTful资源的理想数据模型。 实际上,RHEV-M(译者注:红帽的一款产品)最终API中就使用XMLSchema来描述资源。事后来看(With hindsight),RESTful API使用XML模型是个糟糕的选择。 另一类RESTful API会为资源模型中的每个资源类型都定义内容类型。一个例子是vSphere Director API。在我看来这也不妥。

    1.5K10发布于 2020-06-17
  • 来自专栏全栈程序员必看

    k8s有哪些资源_k8s资源类型

    k8s Namespace Pod Label Deployment Service Namespace 概述 Namespace是kubernetes系统中一种非常重要的资源,它的主要作用是用来实现多套系统的资源隔离或者多租户的资源隔离 此时还能结合kubernetes的资源配额机制,限定不同租户能占用的资源,例如CPU使用量、内存使用量等等,来实现租户可用资源的管理。 一个资源对象可以定义任意数量的Label,同一个Label也可以被添加到任意数量的资源对象上去。 Label通常在资源对象定义时确定,当然也可以在对象创建后动态的添加或删除。 可以通过Label实现资源的多纬度分组,以便灵活、方便地进行资源分配、调度、配置和部署等管理工作。 EXTERNAL-IP PORT(S) AGE nginx ClusterIP 10.103.38.69 <none> 80/TCP 8m43s

    73540编辑于 2022-09-22
  • 来自专栏小工匠聊架构

    Java 8 - 时间API

    Pre 并发编程-12线程安全策略之常见的线程不安全类 ---- 模拟SimpleDateFormate线程安全问题 package com.artisan.java8.testDate; import TODO * @date 2021/3/5 0:22 * @mark: show me the code , change the world */ public class DateInJava8 ---- LocalDate https://nowjava.com/docs/java-api-11/java.base/java/time/LocalDate.html LocalDate 是final The assumption from this API is that all the calendar system uses the same way of representing the time

    55310发布于 2021-08-17
  • 来自专栏CNCF

    Kubernetes 1.26: 动态资源分配 Alpha API

    作者: Patrick Ohly (Intel)、Kevin Klues (NVIDIA) 译者: 空桐 动态资源分配是一个用于请求资源的新 API。它是对为通用资源所提供的持久卷 API 的泛化。 动态资源分配是一个 alpha 特性,只有在启用 DynamicResourceAllocation特性门控[1]和 resource.k8s.io/v1alpha1 API 组时才启用。 API 新的 resource.k8s.io/v1alpha1 API 组提供了四种新类型: ResourceClass 定义由哪个资源驱动程序处理哪种资源,并为其提供通用参数。 假设已安装名为 resource-driver.example.com 的资源驱动程序和以下资源类: apiVersion: resource.k8s.io/v1alpha1 kind: ResourceClass 因此,Kubernetes 提供了以下软件包,其中包括用于调用此样板代码的 API, 以及可以实现自定义业务逻辑的 Driver 接口: k8s.io/dynamic-resource-allocation

    1.5K30编辑于 2023-02-12
  • 来自专栏nginx遇上redis

    k8s资源限制

    Kubernetes对资源的限制实际上是通过cgroup来控制的,cgroup是容器的一组用来控制内核如何运行进程的相关属性集合。针对内存、CPU和各种设备都有对应的cgroup。 一般会针对某些应用的Pod资源进行资源限制,这个资源限制是通过resources的requests【要分配的资源】和limits【最大使用资源】来实现的。 CPU资源限制示例 ​ K8S 提供了 requests 和 limits 两个配置参数来定义资源的范围和额度。 requests 定义了工作负载的资源下限,是容器启动时 K8S 资源分配的默认值。 limits 定义了工作负载的资源上限,是容器运行时 K8S 资源预分配的额度。

    40850编辑于 2023-09-01
  • 来自专栏小手冰凉

    k8s——资源限制

    注:以下只是在yaml文件中进行资源限制的一个片段,并不是完整的yaml文件 1、针对Pod的资源限制 // cgroup-pod.yaml spec: containers: - name: limits: //硬限制 cpu: "4" memory: 2Gi requests: //运行pod时请求的资源数量 cpu: 260m memory: 260Mi 2、基于名称空间的资源限制(可以具体制定限制某一个名称空间) //计算资源配额 // compute-resource.yaml 初始请求的内存不可以超过100G limits.cpu: "40" //CPU的硬限制 limits.memory: 200Gi //内存的硬限制 //资源对象数量配额限制 persistentvolumeclaims: "4" //最多可以创建4个PVC replicationcontrollers: "20" //最多可以创建20个RC资源对象

    88820发布于 2020-09-15
  • 来自专栏全栈程序员必看

    k8s资源分类机制_k8s资源分类机制

    (第三章)资源管理 yaml语言介绍 资源管理方式介绍 方式1:命令式对象管理 方式2:命令式对象配置 方式3:声明式对象配置 配置方式总结 kubectl在node节点上执行 资源管理 本章节主要介绍 yaml语法和kubernetes的资源管理方式 学习kubernetes的核心,就是学习如何对集群上的Pod、Pod控制器、Service、存储等各种资源进行操作 [外链图片转存失败,源站可能有防盗链机制 , 可以通过下面的命令进行查看: kubectl api-resources [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nna5MElb-1651391374871 ) 方式3:声明式对象配置 其实声明式对象配置就是使用apply描述一个资源最终的状态(在yaml中定义状态) 使用apply操作资源: 如果资源不存在,就创建,相当于 kubectl create 创建/更新资源 使用声明式对象配置 kubectl apply -f XXX.yaml 删除资源 使用命令式对象配置 kubectl delete -f XXX.yaml 查询资源 (测试常用) 使用命令式对象管理

    42920编辑于 2022-09-21
  • 来自专栏24k

    Java8 Stream API

    Stream API是Java8中处理集合的关键组件,提供了各种丰富的函数式操作。

    85160发布于 2019-05-15
  • 来自专栏全栈程序员必看

    Java8-Stream API

    了解Stream ​ Java8中有两个最为重要的改变,一个是Lambda表达式,另一个就是Stream API,针对常见的集合数据处理,Stream API 提供了一种高效且易于使用的数据处理方式。 Java 8给Collection接口增加了两个默认方法,它们可以返回一个Stream default Stream stream() { ​ return StreamSupport.stream 使用Stream API处理集合类代码更加简洁易读. Stream API : Java Platform SE 8 Stream API 使用 中间操作 终止操作 输出结果为: 田:[Employee [id=105, name=田七, age=38 使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。

    1K20编辑于 2022-07-20
  • 来自专栏一滴水的眼泪

    Java 8 日期时间 API

    java 8 通过发布新的Date-Time API (JSR 310)来进一步加强对日期和时间的处理。 Java 8 日期时间 API 在旧版本的Java中,日期时间API存在诸多问题,其中有: 非线程安全 - java.util.Date 是非线程安全的,所有的日期类都是可变的,这是Java日期类最大的问题之一 Java 8 在java.time包下提供了很多新的API。以下为两个比较重要的API: Local(本地) - 简化了日期时间的处理,没有时区的问题。 代码如下 public class Java8Tester{ public static void main(String args[]){ Java8Tester java8Tester ,就可以使用时区的日期时间API: public class Java8Tester { public static void main(String args[]) { Java8Tester

    1.4K10发布于 2020-09-21
  • 来自专栏默存

    Java8 常用 API

    Java8的Stream就是典型的例子,Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。 一、Stream API filter 1、统计 long count = data.stream().filter(i -> i > 20).count(); 结果:5 2、过滤转换 List<Integer 8, 15, 16, 19, 23, 27, 56, 99, 232] [232, 99, 56, 27, 23, 19, 16, 15, 8, 8, 5, 4, 3] [ 3, 4, 5, 8, 8, 15, 16, 19, 23, 27, 56, 99, 232] [232, 99, 56, 27, 23, 19, 16, 15, 8, 8, 5, 4, 4).name("DDD").age(20).build(), Demo.builder().id(5).name("EEE").age(21).build()); 二、日期时间 API

    2.5K10编辑于 2022-06-24
  • 来自专栏小四的技术文章

    Java8 Stream API

    今天来分享一下Java8的Stream API,Stream API可以是我们的代码写起来更加整洁,丝滑,在对数据筛选,处理等方面有很好的帮助,下面我们通过一个简单的案例来看一下使用Stream API 下面是一个简单的筛选,我们需要筛选出年龄小于25岁,性别为男的所有人员,如果没有使用Stream API,那么我相信多数人肯定会这样去写。 ) { if (user.getAge() < 25 && user.getSex().equals("男")) userList.add(user); } 使用了Stream API

    57530编辑于 2022-07-26
  • 来自专栏happyJared

    Java8 Date API

    Java8 在 java.time 包下新增了全新的日期和时间 API。新的 Date API 与 Joda-Time 库有点相似,但又有不一样。 12T08:46:42.588Z System.out.println(legacyDate); // Tue Mar 12 16:32:59 CST 2019 Timezones(时区) 在新 API

    1K20发布于 2019-08-02
  • 来自专栏你我杂志刊

    Java8 Stream API

    链接Stream概述 Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。 Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。 通常编写并行代码很难而且容易出错, 但使用 Stream API 无需编写一行多线程的代码,就可以很方便地写出高性能的并发程序。 所以说,Java 8 中首次出现的 java.util.stream 是一个函数式语言+多核时代综合影响的产物。 注意:forEach的迭代操作是由Stream API完成的称为内部迭代 //借助于iterator的方式为外部迭代 --------------------- ②归约 1. reduce(T

    81030编辑于 2022-08-09
领券