千家信息网

kubectl入门知识点有有哪些

发表于:2024-10-26 作者:千家信息网编辑
千家信息网最后更新 2024年10月26日,本篇内容主要讲解"kubectl入门知识点有有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"kubectl入门知识点有有哪些"吧!前言对 Kubern
千家信息网最后更新 2024年10月26日kubectl入门知识点有有哪些

本篇内容主要讲解"kubectl入门知识点有有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"kubectl入门知识点有有哪些"吧!

前言

对 Kubernetes 稍有了解的读者应该都知道声明式 API 的说法,kubectl 就是一个这种 API 的客户端,所以 kubectl 的主要功能就是用来操作对象的。

动作

在 kubectl 中被称为 command 也就是命令。使用 kubectl --help 能看到可用的命令列表:

$ kubectl --help
kubectl controls the Kubernetes cluster manager.

Find more information at: https://kubernetes.io/docs/reference/kubectl/overview/

Basic Commands (Beginner):
create Create a resource from a file or from stdin.
...
run 在集群中运行一个指定的镜像
...

Basic Commands (Intermediate):
explain 查看资源的文档
get 显示一个或更多 resources
...
Deploy Commands:
rollout Manage the rollout of a resource
...

可以看到 kubectl 的命令行帮助非常不错,不仅有功能说明、分类,还有难度标识,甚至有部分的中文说明,kubectl 的每个命令都可以用 --help 查看进一步的帮助说明。

这里列出了很多可用的命令,按照操作能力,主流命令基本可以分为增删改查(CRUD)四种。

C

新建命令用于在集群中创建对象,最常用的新建命令应该是 createrun 了,create 能够创建多种对象,而 run 则主要用来创建 Pod。这两个命令都需要在命令行中使用参数的方式来表达待创建的对象的字段内容,其表达力非常粗糙和有限,并且带有明显的命令式 API 风味,在我的日常工作中已经很少用到这样的命令了。

但是这种命令往往有个妙用,--dry-run=client(旧版本中是 --dry-run),可以在不产生实际操作的情况下,测试命令的输出,加上 -o yaml,可以帮助输出 YAML 文档。

R

get 是最常用的查询指令,用于获取对象列表和基本信息,而 describe 则用于获取一个对象的详细信息。另外一个常用的读取指令就是 Debug 常用的日志查看指令:kubectl logs

U

最重要的更新命令可以说是 applyedit 了,patchlabelannotationscale 等命令也算常用。

apply 是把 yaml 提交给 Kubernetes 集群的最常用方式,而 edit patch 都是用于修改线上负载的常用手段。labelannotation 命令则是用于修改对象元数据的,例如标签和注解。

D

这个没什么好说--delete

获取帮助

kubectl 的所有命令、子命令都支持 --help 参数,可以用这种方式获取帮助。

kubectl options 命令能够获取 kubectl 的所有全局参数。

常用参数

-f:很多指令(不只是 applycreate)都可以用 -f <文件名> 的方式进行输入,如果使用管道操作,则可以用参数 -f - 接收 STDIN 的输入。

-l:可以使用各种对象上的标签对操作范围进行过滤,例如 -l app=hello

-o:指定输出格式,这个参数相对复杂,最常用的是 yaml 或者 json 用于输出机器报文,还可以用 JSON Path 或者 Go Template 对结果进行处理。

对象

对象通常是类型+名称的一个组合,可以用 kubectl 获得当前集群支持的对象类型:

如上图,输出内容包含几个列:名称、简称、API 群组、是否归属命名空间以及对象的 Kind 属性。例如常用的 Deployment

  • 名称:

    Deployment

  • 简称:

    Deploy

  • API 群组:

    apps

  • 归属命名空间:

  • Kind:

    Deployment

使用命令 kubectl get deploy,就能获得当前命名空间中的 Deployment 对象列表,如果在尾巴上加入 Deployment 的名称,就能得到符合名称要求的 Deployment 对象,

Schema

前面提到的 -f 参数,或者是 get -o yaml,都要用到具体的对象数据结构,这个结构到底是哪里规定的呢?基本结构可以分为三个部分,以一个 Namespace 为例:

apiVersion: v1
kind: Namespace
metadata:
name: default
spec:
finalizers:
- kubernetes

一般会分为四个基础字段:apiVersionkindmetadatastatus 以及 spec

  • apiVersion:

    格式为 /,一个对象的 API Group,可以用前文提到的 api-resources 命令查到,而版本则可以通过 kubectl api-versions 查询得到。

  • kind:

    对应 api-resources 命令输出的字段。

  • metadata:

    元数据,其中包括标签、注解、名称等字段,如果对象是属于命名空间的,也会把命名空间写在这里。

  • status:

    这个字段的内容通常是由 Kubenretes 自动填写的。

    经常会被省略掉。

  • spec:

    具体的对象内容,可以由几个途径获取其定义结构

    • 部分资源可以使用 kubectl explain <对象类别> 获得解释

    • 如果该资源在集群中有对象存在,可以使用 kubectl get <对象类别> <对象名称> -o yaml 的方式获得原文,向其致敬。

    • 如果前两种方法都没有,就需要去查看 Kubernetes 或者第三方的 API Reference 了。

到此,相信大家对"kubectl入门知识点有有哪些"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

命令 对象 常用 参数 内容 名称 输出 字段 方式 空间 集群 帮助 指令 结构 知识 知识点 就是 数据 标签 资源 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 原神tw服务器是国际服吗 kfc网络安全密钥 为什么2k22服务器总是连不上 国家网络安全周会的活动目的 进口网络技术厂家现货 股票私募软件开发 单位网络安全分析会发言材料 用最便宜的价格组装mc服务器 阿里云服务器地域 6g网络技术什么时候研发 天马行空网络技术有限公司 普陀区口碑好的软件开发诚信推荐 惠普8600无法连接服务器 盘锦市网络安全和信息化委员 网络安全 海外服务器 提高软件开发效率与稳定性 浦东新区电商软件开发经验丰富 exp 导出数据库慢 mysql怎么进行数据库的备份 网络安全怎么做毕业设计 曙光服务器硬盘报警 网络版的数据库 实况21无法连线至游戏服务器 欧普康视软件开发怎样 大学生计算机网络安全论文 数据库与算法技术基础 温州手机软件开发招聘信息 网络安全 海外服务器 聚合支付类app软件开发 淮北交互软件开发团队
0