K8s - 3 核心概念 - 1 kubectl


K8s - 目录



一、kubernetes 集群命令行工具 kubectl


1. kubectl 概述

kubectl

  • Kubernetes 集群的命令行工具;
  • 通过 kubectl 能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。

2. kubectl 命令的语法

$ kubectl [command] [TYPE] [NAME] [flags]
  • commond:指定要对资源执行的操作;
    例如:
    • create | get | describe | delete
  • TYPE:指定资源类型,资源类型是大小写敏感的,开发者能够以单数、复数和缩略的形式;
    例如:
    kubectl get pod nginx
    kubectl get pods nginx
    kubectl get po nginx
    
  • NAME:指定资源的名称,名称也大小写敏感的。如果省略名称,则会显示所有的资源;
    例如:
    kubectl get pods 
    
  • flags:指定可选的参数。
    例如:
    • -s 或 –server 参数指定 Kubernetes API server 的地址和端口。

3. kubectl help

获取 kubectl 帮助:

kubectl help
kubectl 控制 Kubernetes 集群管理器。

 在以下位置查找更多信息: https://kubernetes.io/docs/reference/kubectl/overview/

基本命令(初级):
  create        从文件或标准输入创建资源。
  expose        获取 replication controller, service, deployment 或 pod 并将其公开为新的 Kubernetes 服务。
  run           在集群上运行特定镜像。
  set           设置对象的特定特征。

基本命令(中级):
  explain       资源文件。
  get           显示一个或多个资源。
  edit          编辑服务器上的资源。
  delete        按文件名、标准输入、资源和名称,或按资源和标签选择器删除资源。

部署命令:
  rollout       管理资源的导出。
  scale         为 Deployment、ReplicaSet 或 Replication Controller 设置新大小。
  autoscale     自动扩展 Deployment、ReplicaSet 或 ReplicationController。

集群管理命令:
  certificate   修改证书资源。
  cluster-info  显示集群信息。
  top           显示资源(CPU/内存/存储)使用情况。
  cordon        将节点标记为不可调度。
  uncordon      将节点标记为可调度。
  drain         驱逐节点,准备维护(删除节点等)。
  taint         更新一个或多个节点上的污点。

故障排除和调试命令:
  describe      显示特定资源或资源组的详细信息。
  logs          打印 pod 中容器的日志。
  attach        附加到正在运行的容器。
  exec          在容器中执行命令。
  port-forward  将一个或多个本地端口转发到一个 pod。
  proxy         运行到 Kubernetes API 服务器的代理。
  cp            将文件和目录复制到容器和从容器复制。
  auth          检查授权。

高级命令:
  diff          将实时版本与将要应用的版本进行比较。
  apply         通过文件名或标准输入将配置应用于资源。
  patch         使用战略合并补丁更新资源的字段。
  replace       用文件名或标准输入替换资源。
  wait          实验性:等待一个或多个资源的特定条件。
  convert       在不同 API 版本之间转换配置文件。
  kustomize     从目录或远程 url 构建自定义目标。

设置命令:
  label         更新资源上的标签。
  annotate      更新资源的注释。
  completion    输出指定 shell(bash 或 zsh)的 shell 完成代码。

其他命令:
  alpha         alpha 中的功能命令。
  api-resources 打印服务器上支持的 API 资源。
  api-versions   以“组/版本”的形式打印服务器上支持的 API 版本。
  config        修改 kubeconfig 文件。
  plugin        提供与插件交互的实用程序。
  version       打印客户端和服务器版本信息。

用法:
  kubectl [flags] [options]

使用“kubectl <command> --help”获取有关给定命令的更多信息。
使用“kubectl options”获取全局命令行选项列表(适用于所有命令)。

4. kubectl 子命令使用分类

4.1 基本命令

基本命令(初级):
  create        从文件或标准输入创建资源。
  expose        获取 replication controller, service, deployment 或 pod 并将其公开为新的 Kubernetes 服务。
  run           在集群上运行特定镜像。
  set           设置对象的特定特征。

基本命令(中级):
  explain       资源文件。
  get           显示一个或多个资源。
  edit          编辑服务器上的资源。
  delete        按文件名、标准输入、资源和名称,或按资源和标签选择器删除资源。

4.2 部署和集群管理命令

部署命令:
  rollout       管理资源的导出。
  scale         为 Deployment、ReplicaSet 或 Replication Controller 设置新大小。
  autoscale     自动扩展 Deployment、ReplicaSet 或 ReplicationController。

集群管理命令:
  certificate   修改证书资源。
  cluster-info  显示集群信息。
  top           显示资源(CPU/内存/存储)使用情况。
  cordon        将节点标记为不可调度。
  uncordon      将节点标记为可调度。
  drain         驱逐节点,准备维护(删除节点等)。
  taint         更新一个或多个节点上的污点。

4.3 故障排除和调试命令

  describe      显示特定资源或资源组的详细信息。
  logs          打印 pod 中容器的日志。
  attach        附加到正在运行的容器。
  exec          在容器中执行命令。
  port-forward  将一个或多个本地端口转发到一个 pod。
  proxy         运行到 Kubernetes API 服务器的代理。
  cp            将文件和目录复制到容器和从容器复制。
  auth          检查授权。

4.4 其他命令

高级命令:
  diff          将实时版本与将要应用的版本进行比较。
  apply         通过文件名或标准输入将配置应用于资源。
  patch         使用战略合并补丁更新资源的字段。
  replace       用文件名或标准输入替换资源。
  wait          实验性:等待一个或多个资源的特定条件。
  convert       在不同 API 版本之间转换配置文件。
  kustomize     从目录或远程 url 构建自定义目标。

设置命令:
  label         更新资源上的标签。
  annotate      更新资源的注释。
  completion    输出指定 shell(bash 或 zsh)的 shell 完成代码。

其他命令:
  alpha         alpha 中的功能命令。
  api-resources 打印服务器上支持的 API 资源。
  api-versions   以“组/版本”的形式打印服务器上支持的 API 版本。
  config        修改 kubeconfig 文件。
  plugin        提供与插件交互的实用程序。
  version       打印客户端和服务器版本信息。

5. kubectl [command] --help

以 kubectl create --help 举例:

kubectl create --help
从文件或标准输入创建资源。

 接受 JSON 和 YAML 格式。

例子:
  # 使用 pod.json 中的数据创建一个 pod。
  kubectl create -f ./pod.json
  
  # 根据传入标准输入的 JSON 创建一个 pod。
  cat pod.json | kubectl 创建 -f -
  
  # 以 JSON 格式编辑 docker-registry.yaml 中的数据,然后使用编辑后的数据创建资源。
  kubectl create -f docker-registry.yaml --edit -o json

可用命令:
  clusterrole         创建一个 ClusterRole。
  clusterrolebinding  为特定 ClusterRole 创建 ClusterRoleBinding。
  configmap           从本地文件、目录或文字值创建 configmap。
  cronjob             创建一个具有指定名称的 cronjob。
  deployment          创建具有指定名称的deployment。
  job                 创建具有指定名称的job。
  namespace           创建具有指定名称的命名空间。
  poddisruptionbudget 创建具有指定名称的 pod disruption budget。
  priorityclass       创建一个具有指定名称的priorityclass。
  quota               创建具有指定名称的配额。
  role                使用单一规则创建角色。
  rolebinding         为特定的 Role 或 ClusterRole 创建 RoleBinding。
  secret              使用指定的子命令创建一个secret。
  service             使用指定的子命令创建服务。
  serviceaccount      创建具有指定名称的服务帐户。

选项:
      --allow-missing-template-keys=true:如果为 true,则忽略模板中的任何错误,当字段或模板中缺少映射键。仅适用于 golang 和 jsonpath 输出格式。
      --dry-run='none':必须是“none”、“server”或“client”。如果是客户端策略,只打印将被发送的对象,而不发送它。如果是服务器策略,提交服务器端请求没有持久化资源。
      --edit=false:在创建之前编辑 API 资源  -f、--filename=[]:文件名、目录或用于创建资源的文件的 URL  -k, --kustomize='':处理kustomization目录。此标志不能与 -f 一起使用或-R。  -o, --output='':输出格式。之一:json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file。
      --raw='':用于 POST 到服务器的原始 URI。使用 kubeconfig 文件指定的传输。
      --record=false:在资源注解中记录当前的 kubectl 命令。如果设置为 false,请执行不记录命令。如果设置为 true,则记录命令。如果未设置,则默认更新仅当一个已经存在时才存在注释值。  -R,--recursive=false:递归处理-f,--filename中使用的目录。当你有用想要管理组织在同一目录中的相关清单。
      --save-config=false:如果为true,当前对象的配置将保存在它的注解。否则,注释将保持不变。当您想要时,此标志很有用以后在这个对象上执行 kubectl apply。  -l, --selector='':选择器(标签查询)过滤,支持'='、'=='和'!='。(例如-l键1=值1,键2=值2)
      --template='':-o=go-template 时要使用的模板字符串或模板文件的路径,-o=转到模板文件。模板格式为golang模板[http://golang.org/pkg/text/template/#pkg-overview]。
      --validate=true:如果为真,则在发送之前使用模式来验证输入
      --windows-line-endings=false:仅在 --edit=true 时相关。默认为以原生结尾的行到您的平台。

用法:
  kubectl create -f 文件名 [选项]

使用“kubectl <command> --help”获取有关给定命令的更多信息。
使用“kubectl options”获取全局命令行选项列表(适用于所有命令)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qumy97

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值