kubectl命令技巧大全

Kubctl 命令是操作 kubernetes 集群的最直接和最 skillful 的途径,这个60多MB大小的二进制文件,到底有啥能耐呢?请看下文:

Kubectl 自动补全

$ source <(kubectl completion bash) # setup autocomplete in bash, bash-completion package should be installed first.
$ source <(kubectl completion zsh)  # setup autocomplete in zsh

Kubectl 上下文和配置

设置 kubectl 命令交互的 kubernetes 集群并修改配置信息。参阅 使用 kubeconfig 文件进行跨集群验证 获取关于配置文件的详细信息。

$ kubectl config view # 显示合并后的 kubeconfig 配置

# 同时使用多个 kubeconfig 文件并查看合并后的配置
$ KUBECONFIG=~/.kube/config:~/.kube/kubconfig2 kubectl config view

# 获取 e2e 用户的密码
$ kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}'

$ kubectl config current-context              # 显示当前的上下文
$ kubectl config use-context my-cluster-name  # 设置默认上下文为 my-cluster-name

# 向 kubeconf 中增加支持基本认证的新集群
$ kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword

# 使用指定的用户名和 namespace 设置上下文
$ kubectl config set-context gce --user=cluster-admin --namespace=foo \
  && kubectl config use-context gce

创建对象

Kubernetes 的清单文件可以使用 json 或 yaml 格式定义。可以以 .yaml.yml、或者 .json 为扩展名。

显示和查找资源

更新资源

修补资源

使用策略合并补丁并修补资源。

编辑资源

在编辑器中编辑任何 API 资源。

Scale 资源

删除资源

与运行中的 Pod 交互

与节点和集群交互

资源类型

下表列出的是 kubernetes 中所有支持的类型和缩写的别名。

资源类型

缩写别名

clusters

componentstatuses

cs

configmaps

cm

daemonsets

ds

deployments

deploy

endpoints

ep

event

ev

horizontalpodautoscalers

hpa

ingresses

ing

jobs

limitranges

limits

namespaces

ns

networkpolicies

nodes

no

statefulsets

persistentvolumeclaims

pvc

persistentvolumes

pv

pods

po

podsecuritypolicies

psp

podtemplates

replicasets

rs

replicationcontrollers

rc

resourcequotas

quota

cronjob

secrets

serviceaccount

sa

services

svc

storageclasses

thirdpartyresources

格式化输出

要以特定的格式向终端窗口输出详细信息,可以在 kubectl 命令中添加 -o 或者 -output 标志。

输出格式

描述

-o=custom-columns=<spec>

使用逗号分隔的自定义列列表打印表格

-o=custom-columns-file=<filename>

使用 文件中的自定义列模板打印表格

-o=json

输出 JSON 格式的 API 对象

-o=jsonpath=<template>

打印 jsonpath 表达式中定义的字段

-o=jsonpath-file=<filename>

打印由 文件中的 jsonpath 表达式定义的字段

-o=name

仅打印资源名称

-o=wide

以纯文本格式输出任何附加信息,对于 Pod ,包含节点名称

-o=yaml

输出 YAML 格式的 API 对象

Kubectl 详细输出和调试

使用 -v--v 标志跟着一个整数来指定日志级别。

详细等级

描述

--v=0

总是对操作人员可见。

--v=1

合理的默认日志级别,如果您不需要详细输出。

--v=2

可能与系统的重大变化相关的,有关稳定状态的信息和重要的日志信息。这是对大多数系统推荐的日志级别。

--v=3

有关更改的扩展信息。

--v=4

调试级别详细输出。

--v=6

显示请求的资源。

--v=7

显示HTTP请求的header。

--v=8

显示HTTP请求的内容。

参考

本文是对官方文档的中文翻译,原文地址:https://kubernetes.io/docs/user-guide/kubectl-cheatsheet/

Last updated

Was this helpful?