关于 K8S API Resources: Group 和 Version 该怎么写
原来地址: https://akomljen.com/kubernetes-api-resources-which-group-and-version-to-use/
Overview
Kubernetes 使用声明式 API 来使得系统更加的健壮。但是这也意味着如果我们要创建一个对象,我们可以通过 CLI 或者 REST 的方式告诉系统我们需要什么,然后系统就会帮我们创建这些对象了。但是在定义想要什么对象的时候,我们还需要定义 API 的 resource name,group 和 version。
不过这样用户也会感到困惑,原因是用户作为人类是不擅长于去记忆太多规范的。在一个 Deloyment 的定义中,你会看到 apiVersion 是 apps/v1beta2
,但是其他的 apiVersion 却是 apps/v1
,那么到底哪个才是正确的呢?我们可以用哪一个?如果检查我们的 K8S 集群是否支持这些 apiVersion?kubectl 给出了答案。
API Resources
我们可以通过命令 kubectl api-resources
来获取 K8S 支持的 resource 类型。
输出被我截断了,你仍然可以通过这个命令来获取所有的 resource,结果输出了很多有用的信息,我们来分析一下。
- SHORTNAMES - kubectl 可以使用的缩写,比如 namepace -> ns,当然不是每种 resource 都有缩写的
- APIGROUP - 在 yaml 文件中可以看到其使用
<APIGROUP>/v1
- KIND - resource 的 name,同样也是在 yaml 中常见的字段
你也可以通过输入一些 options 给 kubectl 来获取更多的信息。
另外我们还可以通过 explain 来获取更详细的信息。
需要注意的是 resource 可以有多个 apiVersion,explain 可能会输出旧的 group/version
,但是你可以通过显示的添加 --api-version
来控制输出哪个版本的信息。
kubectl explain replicaset --api-version apps/v1
API Versions
我们可以通过下面这个命令,来获取集群支持ID所有的 API version。
有时候,你只是想检查一下某个 group/version
是否可用于某个 resource。可以通过下面这个命令来检查。deployments.v1.apps
分别对应 <API_RESOURCE_NAME>.<API_VERSION>.<API_GROUP>
。
kubectl get deployments.v1.apps -n kube-system
当这个 resource 指定的 group/version
不存在的时候,就会报错。
Summary
这篇文章帮我们理解了场景的 yaml 文件里 kind 和 apiVersion 的含义,以及当你不确定集群是否支持对应资源的时候,我们该怎么通过 kubectcl 来探查。
- Office”组合”式漏洞攻击样本分析
- jsp标签小结
- 专家解释“愤怒的小鸟”如何变身间谍
- BT5 + wireshark玩wifi捕获和中间人攻击
- Hibernate HQL注入攻击入门
- 高效开源的网络扫描框架NINJA-PingU
- 对List.Sort的简单研究
- 使用Apache API监控Uber的实时数据,第3篇:使用Vert.x的实时仪表板
- 走进科学:我是如何“黑了”星级酒店的
- OpenSSL空指针引用do_ssl3_write
- 针对近期“博全球眼球的OAuth漏洞”的分析与防范建议
- 黑掉美国(英国、澳大利亚、法国等)的交通控制系统
- Android 自定义标签 ViewLayout
- Identity Service - 解析微软微服务架构eShopOnContainers(二)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 一键实现 PowerBI 度量值批量重命名
- Ubuntu E: 无法获得锁 /var/lib/dpkg/lock-frontend – open (11: 资源暂时不可用)
- Ubuntu 18.04 安装MySQL时未提示输入密码的问题及解决方法
- ubuntu中修改grub的启动时间生成
- linux7下虚拟主机的三种实现方式
- 详解CentOS7下PostgreSQL 11的安装和配置教程
- CentOS下安装Memcached和PHP Memcached扩展
- Mac中文件权限查看和设置详解
- linux下open-vswitch安装卸载操作
- CentOS7安装GUI界面及远程连接的实现
- Centos7.4环境安装lamp-php7.0教程
- iOS摄像头推流(2)
- ubuntu 16.04LTS 开机启动自动更换壁纸的实现方法
- linux中Centos7的LVM磁盘扩容问题
- 如何禁止网站内容被搜索引擎收录的几种方法讲解