Kubernetes常用命令汇总大全(备忘清单)

文章目录

    • 1、查看资源信息
      • 1.1、节点
      • 1.2、容器组
      • 1.3、命名空间
      • 1.4、无状态服务
      • 1.5、服务
      • 1.6、守护进程集
      • 1.7、事件
      • 1.8、日志
      • 1.9、服务帐户
      • 1.10、副本集
      • 1.11、角色
      • 1.12、保密字典
      • 1.13、配置项
      • 1.14、路由
      • 1.15、持久卷
      • 1.16、持久卷声明
      • 1.17、存储类
      • 1.18、多个资源
      • 1.19、查看和查找资源
    • 2、变更资源属性
      • 2.1、污点
      • 2.2、标签
      • 2.3、维护/可调度
      • 2.4、清空节点
      • 2.5、节点/容器组
      • 2.6、无状态/命名空间
      • 2.7、服务
      • 2.8、守护进程集
      • 2.9、服务账号
      • 2.10、注释
    • 3、添加资源
      • 3.1、创建对象
      • 3.2、创建容器组
      • 3.3、创建服务
      • 3.4、创建无状态应用
      • 3.5、容器交互
      • 3.6、输出YAML文件
      • 3.7、获取帮助
    • 4、请求
      • 4.1、API调用
      • 4.2、集群信息

1、查看资源信息

1.1、节点

资源名称: nodes, 缩写: no

$ kubectl get no          # 显示所有节点信息
$ kubectl get no -o wide  # 显示所有节点的更多信息
$ kubectl describe no     # 显示节点详情
$ kubectl get no -o yaml  # 以yaml格式,显示节点详情
$ kubectl get node --selector=[label_name] # 筛选指定标签的节点
$ kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="ExternalIP")].address}'
# 输出jsonpath表达式定义的字段信息
$ kubectl top node [node_name] # 显示节点(CPU/内存/存储)使用情况

1.2、容器组

资源名称: pods, 缩写: po

$ kubectl get po         # 显示所有容器组信息
$ kubectl get po -o wide
$ kubectl describe po
$ kubectl get po --show-labels   # 查看容器组的labels
$ kubectl get po -l app=nginx
$ kubectl get po -o yaml
$ kubectl get pod [pod_name] -o yaml --export
$ kubectl get pod [pod_name] -o yaml --export > nameoffile.yaml 
# 以yaml格式导出容器组信息到yaml文件
$ kubectl get pods --field-selector status.phase=Running     
# 使用字段选择器筛选出容器组信息

1.3、命名空间

资源名称: namespaces, 缩写: ns

$ kubectl get ns
$ kubectl get ns -o yaml
$ kubectl describe ns

1.4、无状态服务

资源名称: deployments, 缩写: deploy

$ kubectl get deploy
$ kubectl describe deploy
$ kubectl get deploy -o wide 
$ kubectl get deploy -o yaml

1.5、服务

资源名称: services, 缩写: svc

$ kubectl get svc
$ kubectl describe svc
$ kubectl get svc -o wide 
$ kubectl get svc -o yaml
$ kubectl get svc --show-labels

1.6、守护进程集

资源名称: daemonsets, 缩写: ds

$ kubectl get ds
$ kubectl describe ds --all-namespaces
$ kubectl describe ds [daemonset_name] -n [namespace_name]
$ kubectl get ds [ds_name] -n [ns_name] -o yaml

1.7、事件

资源名称: events, 缩写: ev

$ kubectl get events 
$ kubectl get events -n kube-system
$ kubectl get events -w

1.8、日志

$ kubectl logs [pod_name]
$ kubectl logs --since=1h [pod_name]
$ kubectl logs --tail=20 [pod_name]
$ kubectl logs -f -c [container_name] [pod_name]
$ kubectl logs [pod_name] > pod.log

1.9、服务帐户

资源名称: serviceaccounts, 缩写: sa

$ kubectl get sa
$ kubectl get sa -o yaml
$ kubectl get serviceaccounts default -o yaml >./sa.yaml
$ kubectl replace serviceaccount default -f ./sa.ya

1.10、副本集

资源名称: replicasets, 缩写: rs

$ kubectl get rs
$ kubectl describe rs
$ kubectl get rs -o wide
$ kubectl get rs -o yaml

1.11、角色

$ kubectl get roles --all-namespaces
$ kubectl get roles --all-namespaces -o yaml

1.12、保密字典

$ kubectl get secrets
$ kubectl get secrets --all-namespaces
$ kubectl get secrets -o yaml

1.13、配置项

资源名称: configmaps, 缩写: cm

$ kubectl get cm
$ kubectl get cm --all-namespaces
$ kubectl get cm --all-namespaces -o yaml

1.14、路由

资源名称: ingresses, 缩写: ing

$ kubectl get ing
$ kubectl get ing --all-namespaces

1.15、持久卷

资源名称: persistentvolumes, 缩写: pv

$ kubectl get pv 
$ kubectl describe pv

1.16、持久卷声明

资源名称: persistentvolumeclaims, 缩写: pvc

$ kubectl get pvc
$ kubectl describe pvc

1.17、存储类

资源名称: storageclasses, 缩写: sc

$ kubectl get sc
$ kubectl get sc -o yaml

1.18、多个资源

$ kubectl get svc, po
$ kubectl get deploy, no
$ kubectl get all
$ kubectl get all --all-namespaces

1.19、查看和查找资源

# get 命令的基本输出
kubectl get services                          # 列出当前命名空间下的所有 Service
kubectl get pods --all-namespaces             # 列出所有命名空间下的全部的 Pod
kubectl get pods -o wide                      # 列出当前命名空间下的全部 Pod 并显示更详细的信息
kubectl get deployment my-dep                 # 列出某个特定的 Deployment
kubectl get pods                              # 列出当前命名空间下的全部 Pod
kubectl get pod my-pod -o yaml                # 获取一个 Pod 的 YAML# describe 命令的详细输出
kubectl describe nodes my-node
kubectl describe pods my-pod# 列出当前名字空间下所有 Service,按名称排序
kubectl get services --sort-by=.metadata.name# 列出 Pod,按重启次数排序
kubectl get pods --sort-by='.status.containerStatuses[0].restartCount'# 列举所有 PV 持久卷,按容量排序
kubectl get pv --sort-by=.spec.capacity.storage# 获取包含 app=cassandra 标签的所有 Pod 的 version 标签
kubectl get pods --selector=app=cassandra -o \jsonpath='{.items[*].metadata.labels.version}'# 检索带有 “.” 键值,例如 'ca.crt'
kubectl get configmap myconfig \-o jsonpath='{.data.ca\.crt}'# 检索一个 base64 编码的值,其中的键名应该包含减号而不是下划线
kubectl get secret my-secret --template='{{index .data "key-name-with-dashes"}}'# 获取所有工作节点(使用选择算符以排除标签名称为 'node-role.kubernetes.io/control-plane' 的结果)
kubectl get node --selector='!node-role.kubernetes.io/control-plane'# 获取当前命名空间中正在运行的 Pod
kubectl get pods --field-selector=status.phase=Running# 获取全部节点的 ExternalIP 地址
kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="ExternalIP")].address}'# 列出属于某个特定 RC 的 Pod 的名称
# 在转换对于 jsonpath 过于复杂的场合,"jq" 命令很有用;可以在 https://jqlang.github.io/jq/ 找到它
sel=${$(kubectl get rc my-rc --output=json | jq -j '.spec.selector | to_entries | .[] | "\(.key)=\(.value),"')%?}
echo $(kubectl get pods --selector=$sel --output=jsonpath={.items..metadata.name})# 显示所有 Pod 的标签(或任何其他支持标签的 Kubernetes 对象)
kubectl get pods --show-labels# 检查哪些节点处于就绪状态
JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}' \&& kubectl get nodes -o jsonpath="$JSONPATH" | grep "Ready=True"# 使用自定义列检查哪些节点处于就绪状态
kubectl get node -o custom-columns='NODE_NAME:.metadata.name,STATUS:.status.conditions[?(@.type=="Ready")].status'# 不使用外部工具来输出解码后的 Secret
kubectl get secret my-secret -o go-template='{{range $k,$v := .data}}{{"### "}}{{$k}}{{"\n"}}{{$v|base64decode}}{{"\n\n"}}{{end}}'# 列出被一个 Pod 使用的全部 Secret
kubectl get pods -o json | jq '.items[].spec.containers[].env[]?.valueFrom.secretKeyRef.name' | grep -v null | sort | uniq# 列举所有 Pod 中初始化容器的容器 ID(containerID)
# 可用于在清理已停止的容器时避免删除初始化容器
kubectl get pods --all-namespaces -o jsonpath='{range .items[*].status.initContainerStatuses[*]}{.containerID}{"\n"}{end}' | cut -d/ -f3# 列出事件(Event),按时间戳排序
kubectl get events --sort-by=.metadata.creationTimestamp# 列出所有警告事件
kubectl events --types=Warning# 比较当前的集群状态和假定某清单被应用之后的集群状态
kubectl diff -f ./my-manifest.yaml# 生成一个句点分隔的树,其中包含为节点返回的所有键
# 在复杂的嵌套JSON结构中定位键时非常有用
kubectl get nodes -o json | jq -c 'paths|join(".")'# 生成一个句点分隔的树,其中包含为 Pod 等返回的所有键
kubectl get pods -o json | jq -c 'paths|join(".")'# 假设你的 Pod 有默认的容器和默认的名字空间,并且支持 'env' 命令,可以使用以下脚本为所有 Pod 生成 ENV 变量。
# 该脚本也可用于在所有的 Pod 里运行任何受支持的命令,而不仅仅是 'env'。
for pod in $(kubectl get po --output=jsonpath={.items..metadata.name}); do echo $pod && kubectl exec -it $pod -- env; done# 获取一个 Deployment 的 status 子资源
kubectl get deployment nginx-deployment --subresource=status

2、变更资源属性

2.1、污点

$ kubectl taint [node_name] [taint_name]

2.2、标签

$ kubectl label nodes <node-name> <label-key>=<label-value>  #增加
$ kubectl label nodes <node-name> <label-key>- #删除
$ kubectl label nodes <node-name> <label-key>=<label-value> --overwrite #修改

2.3、维护/可调度

$ kubectl cordon [node_name]   # 节点维护
$ kubectl uncordon [node_name] # 节点可调度

2.4、清空节点

$ kubectl drain [node_name]    # 清空节点

2.5、节点/容器组

$ kubectl delete node [node_name] 
$ kubectl delete pod [pod_name]
$ kubectl edit node [node_name]
$ kubectl edit pod [pod_name]

2.6、无状态/命名空间

$ kubectl edit deploy [deploy_name]
$ kubectl delete deploy [deploy_name]
$ kubectl expose deploy [deploy_name] --port=80 --type=NodePort
$ kubectl scale deploy [deploy_name] --replicas=5
$ kubectl delete ns
$ kubectl edit ns [ns_name]

2.7、服务

$ kubectl edit svc [svc_name]
$ kubectl delete svc [svc_name]

2.8、守护进程集

$ kubectl edit ds [ds_name] -n kube-system 
$ kubectl delete ds [ds_name]

2.9、服务账号

$ kubectl edit sa [sa_name]
$ kubectl delete sa [sa_name]

2.10、注释

$ kubectl annotatepo [pod_name] [annotation]
$ kubectl annotateno [node_name]

3、添加资源

3.1、创建对象

Kubernetes 配置可以用 YAML 或 JSON 定义。可以使用的文件扩展名有 .yaml、.yml 和 .json。

kubectl apply -f ./my-manifest.yaml                  # 创建资源
kubectl apply -f ./my1.yaml -f ./my2.yaml            # 使用多个文件创建
kubectl apply -f ./dir                               # 基于目录下的所有清单文件创建资源
kubectl apply -f https://example.com/manifest.yaml   # 从 URL 中创建资源(注意:这是一个示例域名,不包含有效的清单)
kubectl create deployment nginx --image=nginx        # 启动单实例 nginx# 创建一个打印 “Hello World” 的 Job
kubectl create job hello --image=busybox:1.28 -- echo "Hello World" # 创建一个打印 “Hello World” 间隔 1 分钟的 CronJob
kubectl create cronjob hello --image=busybox:1.28   --schedule="*/1 * * * *" -- echo "Hello World"    kubectl explain pods                          # 获取 Pod 清单的文档说明# 从标准输入创建多个 YAML 对象
kubectl apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:name: busybox-sleep
spec:containers:- name: busyboximage: busybox:1.28args:- sleep- "1000000"
---
apiVersion: v1
kind: Pod
metadata:name: busybox-sleep-less
spec:containers:- name: busyboximage: busybox:1.28args:- sleep- "1000"
EOF# 创建有多个 key 的 Secret
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:name: mysecret
type: Opaque
data:password: $(echo -n "s33msi4" | base64 -w0)username: $(echo -n "jane" | base64 -w0)
EOF

3.2、创建容器组

$ kubectl create -f [name_of_file] 
$ kubectl apply -f [name_of_file]
$ kubectl run [pod_name] --image=nginx --restart=Never
$ kubectl run [pod_name] --generator=run-pod/v1 --image=nginx
$ kubectl run [pod_name] --image=nginx --restart=Never

3.3、创建服务

$ kubectl create svc nodeport [svc_name] --tcp=8080:80

3.4、创建无状态应用

$ kubectl create -f [name_of_file] 
$ kubectl apply -f [name_of_file]
$ kubectl create deploy [deploy_name] --image=nginx

3.5、容器交互

$ kubectl run [pod_name] --image=busybox --rm -it --restart=Never -- sh

3.6、输出YAML文件

$ kubectl create deploy [deploy_name] --image=nginx --dry-run -o yaml > deploy.yaml
$ kubectl get po [pod_name] -o yaml --export > pod.yaml
$ kubectl run nginx --image=nginx:alpine --dry-run -o -yaml > deploy.yaml

3.7、获取帮助

$ kubectl -h
$ kubectl create -h
$ kubectl run -h
$ kubectl explain deploy.spec

4、请求

4.1、API调用

$ kubectl get --raw /apis/metrics.k8s.io/

4.2、集群信息

$ kubectl config
$ kubectl cluster-info
$ kubectl get componentstatus

在这里插入图片描述


学如逆水行舟,不进则退。学习如赶路,不能慢一步。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/573792.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何解决了“该虚拟机似乎正在使用中”问题

一、问题描述 1、在用VMware虚拟机的时候&#xff0c;有时会发现打开虚拟机时提示“该虚拟机似乎正在使用中。如果该虚拟机未在使用&#xff0c;请按“获取所有权(T)”按钮获取它的所有权。否则&#xff0c;请按“取消©”按钮以防损坏。配置文件: D:\win10x64\Windows 10…

ABC346 A-G 题解

ABC346 A-G题解 A题目AC Code&#xff1a;时间复杂度 B题目时间复杂度AC Code&#xff1a; C题目时间复杂度AC Code&#xff1a; D题目时间复杂度AC Code&#xff1a; E题目时间复杂度AC Code&#xff1a; F题目时间复杂度AC Code&#xff1a; G题目时间复杂度AC Code&#xff…

C语言牛客网BC-37 牛牛的圆(求面积)

题目如下 代码实现 #include<stdio.h> int main() { float r 0;float s 0;scanf("%f",&r);s 3.14*r*r;printf("%.2f",s);return 0; } 创作不易&#xff0c;点点关注&#xff0c;感谢支持&#xff01;&#xff01;&#xff01;

element表格 加滚动,监听底部实现分页加载

表格要实现滚动很简单&#xff0c;给他加一个高度即可 height"300" 然后是监听事件 mounted() {this.lazyLoading();}, methods:{lazyLoading(){let dom document.querySelector(".el-table__body-wrapper");dom.addEventListener("scroll", (…

ROS2从入门到精通0-4:ROS2核心架构与常用指令大全

目录 0 专栏介绍1 ROS2核心架构1.1 工作空间1.2 功能包 2 ROS2常用指令2.1 功能包相关2.2 节点运行相关2.3 话题相关2.4 参数相关2.4 录制包、播放包相关2.5 服务相关2.6 动作相关2.7 生命周期相关 0 专栏介绍 本专栏旨在通过对ROS2的系统学习&#xff0c;掌握ROS2底层基本分布…

【绘图案例-自定义进度条 Objective-C语言】

一、好,我们接着来说这个自定义进度条 1.这个Slider啊,简单的这个value属性,介绍完了,以后,监听也可以监听的到了,接下来,我们来做这个自定义进度条啊, 那么,首先啊,我是这么想的,在这个slider的最小值、和、最大值、我给它改成0、到、1、 因为如果这样的话,到时候…

展示大屏-24小时天气预报

一、项目说明 展示大屏显示未来一周天气和24小时天气详情。 二、技术工具 1.语言&框架&#xff1a;java、springboot 2.UI界面&#xff1a;jQuery、HTML、CSS、 VUE 3.开发工具&#xff1a;IntelliJ IDEA、Eclipse 三、实现步骤 后端步骤 1.调取免费或收费的API接口。 …

2024最赚钱的副业!一月轻松上万!实操分享快来学习!

​​每个人都玩抖音吧&#xff0c;我相信大家的手机上必有的两个软件&#xff0c;除了微信&#xff0c;就是抖音 但微信只有上班或者亲戚朋友来信息时才会打开看&#xff0c;而抖音是我们蹲厕所都要打开刷一刷的东西 那找兼职或副业的人有没有想过在抖音上赚钱 抖音最赚钱的…

【前端学习——js篇】11.元素可见区域

具体见&#xff1a;https://github.com/febobo/web-interview 11.元素可见区域 ①offsetTop、scrollTop offsetTop&#xff0c;元素的上外边框至包含元素的上内边框之间的像素距离&#xff0c;其他offset属性如下图所示&#xff1a; 下面再来了解下clientWidth、clientHeight…

Linux系统编程--信号

1、信号&#xff08;一&#xff09; 1.1、什么是中断 1.2、中断分类 1.3、信号 1.4、信号与中断 1.5、信号名称 1.6、进程对信号的三种响应 1.7、signal函数&#xff1a;注册信号 signal(SIGINT, handler);返回值是SIGINT所对应的处理程序 再调用一下signal(SIGINT, handler2…

前端实现浏览器自定义滚动条

前言&#xff1a; 最近有个项目&#xff0c;产品觉得浏览器默认滚动条太丑了。想美化一下&#xff0c;比如自定义颜色&#xff0c;加上圆角&#xff0c;宽高都要更改一下。我查了资料和文档总结了一下 写法&#xff0c;特此记录以便之后使用。 浏览器滚动条api 总结&#xff…

【计算机网络】启程

&#x1f4dd;本文介绍 本文为计算机网路系列的开始篇&#xff0c;会介绍一下使用的书籍和自己做的思维导图。 &#x1f44b;作者简介&#xff1a;一个正在积极探索的本科生 &#x1f4f1;联系方式&#xff1a;943641266(QQ) &#x1f6aa;Github地址&#xff1a;https://githu…