首页 > 分享 > Kubernetes常用命令大全(非常详细)零基础入门到精通,收藏这一篇就够了

Kubernetes常用命令大全(非常详细)零基础入门到精通,收藏这一篇就够了

在这里插入图片描述

基本命令

create

根据文件或标准输入(stdin)创建资源。

创建资源

kubectl create -f ./nginx.yaml

创建当前目录下的所有yaml资源

kubectl create -f .

使用多个文件创建资源

kubectl create -f ./nginx1.yaml -f ./mysql2.yaml

使用目录下的所有清单文件来创建资源

kubectl create -f ./dir

使用 url 来创建资源

kubectl create -f xxx.git.io/vxxzso.yaml

run

在集群中运行特定镜像。

创建带有终端的pod

kubectl run -i --tty busybox --image=busybox

启动一个 nginx 实例

kubectl run nginx --image=nginx

启动多个pod实例

kubectl run mybusybox --image=busybox --replicas=5

explain

获取资源的文档。

获取 pod 和 svc 的文档

kubectl explain pods,svc

get

获取所有的resources,包括node、pod 、namespace、service 、deployment等,可以展示一个或者多个资源。

查看nodes节点

kubectl get nodes

通过yaml文件查询资源

kubectl get -f xxx.yaml

查询资源

kubectl get resourcequota

查询endpoints

kubectl get endpoints

查看pods

查看指定空间kube-system的pods

kubectl get po -n kube-system

查看所有空间的pods的详细信息

kubectl get pods -o wide --all-namespaces

查看指定空间kube-system的pods的详细信息

kubectl get pod -o wide --namespace=kube-system

获取指定namespace信息

kubectl get namespaces # 获取指定namespace的yaml格式和json格式信息 kubectl get namespaces kube-system -o yaml kubectl get namespaces kube-system -o json 123456 获取service(svc)

查看所有命令空间的service

kubectl get svc --all-namespaces

查看所有命令空间的service的其他写法

kubectl get services --all-namespaces

# 通过 yaml 方式导出所有 service kubectl get service -o yaml > backup.yaml # 通过 yaml 方式导出单个 service kubectl get service serviceName -o yaml > backup.yaml 123456 查询事件(Event)

kubectl get events --all-namespaces

查看某个命名空间下的事件

kubectl get events -n kube-system

查看某个命名空间下的事件,并根据关键字过滤

kubectl get events -n kube-system | grep “name”

通过lable查询

kubectl get pods -l app=nginx -o yaml|grep podIP

# 查看所有pod对于指定标签的key是否有value,有则显示,没有则空白 kubectl get pods -L apps,run # 获取含有指定标签key的pod kubectl get pods -l apps --show-labels # 获取含有指定标签key=value的pod kubectl get pods -l release=stable --show-labels 123456789 edit

在服务端编辑资源。

编辑名为 docker-registry 的 service

kubectl edit svc/docker-registry

delete

根据文件、标准输入(stdin)、资源名或者资源标签删除资源。

删除 pod.json 文件中定义的类型和名称的pod

kubectl delete -f ./pod.json

删除名为“baz”的 pod 和名为“foo”的 service

kubectl delete pod,service baz foo

删除具有 name=myLabel 标签的 pod 和 serivce

kubectl delete pods,services -l name=myLabel

删除具有 name=myLabel 标签的 pod 和 service,包括尚未初始化的

kubectl delete pods,services -l name=myLabel --include-uninitialized

删除 my-ns 命名空间下的所有 pod 和 serivce,包括尚未初始化的

kubectl -n my-ns delete po,svc --all

强制删除pod(如,prometheus-7fcfcb9f89-qkkf7)

kubectl delete pods prometheus-7fcfcb9f89-qkkf7 --grace-period=0 --force

cp

容器内与宿主机之间进行文件拷贝

# 拷贝容器内的文件或目录到本地 kubectl cp default/venus-registry-web-8cd94fc99-fws4b:demo.txt demo.txt kubectl cp default/venus-registry-web-8cd94fc99-fws4b:/home/xxx /home/yyy # 拷贝本地文件或目录到容器内 kubectl cp demo.txt default/venus-registry-web-8cd94fc99-fws4b:demo.txt kubectl cp /home/yyy default/venus-registry-web-8cd94fc99-fws4b:/home/xxx 12345678

部署命令

rollout

查看修订版本(revison)的历史记录

kubectl rollout history deployment nginx-deployment

回退到指定的某个版本

如果不加–to-revision=版本号,默认情况下,回退到上一个版本。

kubectl rollout undo deployment nginx-deployment --to-revision=1

scale

程序在负载加重或缩小时副本进行扩容或缩小。

扩展副本数到4

kubectl scale rc rc-nginx-3 —replicas=4

重新缩减副本数到2

kubectl scale rc rc-nginx-3 —replicas=2

autoscale

scale虽然能够很方便的对副本数进行扩展或缩小,但是仍然需要人工介入,不能实时自动的根据系统负载对副本数进行扩、缩容。

autoscale命令提供了自动根据pod负载对其副本进行扩缩的功能。

autoscale命令会给一个rc指定一个副本数的范围,在实际运行中根据pod中运行的程序的负载自动在指定的范围内对pod进行扩容或缩容。

如前面创建的nginx,可以用如下命令指定副本范围在1~4。

kubectl autoscale rc rc-nginx-3 —min=1 —max=4

集群管理命令

cluster-info

查看集群信息

kubectl cluster-info

查看更详细的集群信息。

kubectl cluster-info dump

top

显示CPU、内存、存储资源的使用情况。

显示节点(k8s-node)资源的使用情况

kubectl top node k8s-node

显示集群所有节点的资源的使用情况

kubectl top node

显示指定命名空间(如,logging)的pod的资源的使用情况

kubectl top pod -n logging

cordon

标记节点不可调度。

标记k8s-node节点不可调度

kubectl cordon k8s-node

uncordon

标记节点可调度。

标记k8s-node节点可调度

kubectl uncordon k8s-node

drain

排除某节点,准备进行维护

排除k8s-node节点,准备进行维护

kubectl drain k8s-node

故障排查和诊断命令

describe

显示特定资源或资源组的详细信息。

当我们发现一个pod迟迟无法创建时,展示一个pod的描述

kubectl describe pod xxx

显示集群节点资源(CPU/GPU/内存)的使用情况。

kubectl describe nodes

显示集群具体某个节点(如,node-work-2)资源的使用情况。

kubectl describe node node-work-2

logs

打印Pod中一个容器的日志。

查看指定Pod的日志

kubectl logs -f kube-dns-699984412-vz1q6 -n kube-system

查看指定pod的最后10行日志

kubectl logs --tail=10 nginx

指定Pod的其中一个容器查看日志

kubectl logs kube-dns-699984412-n5zkz -c kubedns --namespace=kube-system

查看指定Pod指定容器的最后10行的滚动日志

kubectl logs -f --tail=10 kube-dns-699984412-vz1q6 -c manager -n kube-system

exec

exec命令同样类似于docker的exec命令,为在一个已经运行的容器中执行一条shell命令,如果一个pod容器中,有多个容器,需要使用-c选项指定容器。

进入容器

kubectl exec -it codeleak-github-cron-1567581840-zsqpc /bin/bash

在指定命名空间(如,ns)已存在的容器中执行命令(只有一个容器的情况下)

kubectl exec nginx-pod -n ns – ls /

在已存在的容器中执行命令(pod 中有多个容器的情况下,需要指定具体那个容器)

kubectl exec nginx-pod -c my-container – ls /

注意: shell命令前,要加--号,不然shell命令中的参数,不能识别

高级命令

apply

按文件名或标准输入(stdin)将配置应用于资源

更新资源

kubectl apply -f rc-nginx.yaml

将控制台输入的JSON配置应用到Pod

cat pod.json | kubectl apply -f -

设置命令

label

更新(增加、修改或删除)资源上的标签。

如果–overwrite 为 true,则可以覆盖已有的 label,否则尝试覆盖 label 将会报错。

如果指定了–resource-version,则更新将使用此资源版本,否则将使用现有的资源版本。

Label命名规范:

label 必须以字母或数字开头,可以使用字母、数字、连字符、点和下划线,最长63个字符。

操作节点标签:

# 查看所有节点和lable kubectl get nodes --show-labels # 为某个节点增加lable kubectl label nodes 10.126.72.31 points=test # 给节点node01添加disk标签 kubectl label nodes node01 disk=ssd # 修改节点node01的标签 kubectl label nodes node01 disk=sss –overwrite # 删除节点node01的disk标签 kubectl label nodes node01 disk- 123456789101112131415

操作pod标签:

# 给名为 tomcat 的 Pod 添加 label app=tomcat。 kubectl label pods tomca app=tomcat # 把名为 tomcat 的Pod修改label 为 app=tomcat1,且覆盖现有的value kubectl label --overwrite pods tomcat app=tomcat1 # 把 namespace 中的所有 pod 添加 label kubectl label pods --all test=test # 删除名为“app”的 label 。(使用“ - ”减号相连) kubectl label pods tomcat app- 123456789101112 annotate

更新资源的Annotations信息。

更新pod(如,foo),设置其注解’description’的值为’my frontend’。

kubectl annotate pods foo description=‘my frontend’

注:如果同一个注解被赋值了多次,只保存最后一次设置的值。

其他命令

version

查看客户端和服务端的版本信息。

kubectl version

api-versions

以“组/版本”的格式输出服务端支持的API版本。

kubectl api-versions

api-resources

输出服务端API支持的资源类型。

kubectl api-resources

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

相关知识

Docker常用命令大全(超详细),零基础入门到精通,收藏这一篇就够了!
100个常用Shell命令使用讲解(非常详细)零基础入门到精通,收藏这一篇就够了
数码摄影从零基础到精通(拍摄+后期完美版)
零基础数码摄影后期 Photoshop照片处理轻松入门【全本
《数码时代无菜鸟(数码后期修片从入门到精通全新版)》(光合网)
零基础宠物美容入门必学:工具的使用、基础洗
宠物美容学习全攻略:从入门到精通
宠物养护指南:从入门到精通的全方位指南
仓鼠养殖全攻略:从入门到精通
问道手游宠物选择全面指南 从入门到精通

网址: Kubernetes常用命令大全(非常详细)零基础入门到精通,收藏这一篇就够了 https://m.mcbbbk.com/newsview381335.html

所属分类:萌宠日常
上一篇: CMD命令提示符保姆级入门教程
下一篇: 【按键精灵论坛教学】零基础教你快