K8S常用命令

1、create、apply 命令:根据文件或者输入来创建资在这里插入代码片2、delete 命令:删除资源3、get 命令 :获得资源信息4、top 命令:用于查看资源的cpu,内存磁盘等资源的使用率5、logs命令:用于将容器中的日志导出6、run 命令:在集群中创建并运行一个或多个容器镜像7、expose 命令:创建一个service服务,并且暴露端口让外部可以访问8、describe命令:显示特定资源的详细信息9、explain 命令:用于显示资源文档信息10、set 命令:配置应用的一些特定资源,也可以修改应用已有的资源11、label命令: 用于更新(增加、修改或删除)资源上的 label(标签) label12、exec命令:进入容器进行交互,在容器中执行命令13、api-servions命令:打印受支持的api版本信息14、rollout命令: 对指定容器进行重启15、cp:用于pod和外部的文件交换,将文件和目录复制到容器或从容器复制到容器

1、create、apply 命令:根据文件或者输入来创建资在这里插入代码片

创建Deployment和Service资源 kubectl creat xxx.yaml #如果不存在则创建,如果存在,则报错 kubectl apply xxx.yaml #如果不存在则创建,如果存在,则更新

2、delete 命令:删除资源

根据yaml文件删除对应的资源,但是yaml文件并不会被删除,这样更加高效 kubectl delete -f xxx.yaml kubectl delete -f xxx.yaml 也可以通过具体的资源名称来进行删除,使用这个删除资源,同时删除deployment、pod、service资源 kubectl delete 具体的资源名

3、get 命令 :获得资源信息

查看default命名空间的所有资源,显示运行中的Pod、Service、Deployment以及ReplicaSet的关键信息 kubectl get all 查看所有的命名空间的资源 kubectl get all --all-namespaces 查看集群命名空间(namespace = ns) kubectl get ns 列出所有运行的Pod信息 kubectl get pods 查看Pod详细信息,可以查看 pod 的列表,其中 READY 列代表该 Pod 总共有多少(查看组件状态)个容器,并且该容器已经成功启动,可以对外提供服务了,也可以看到这个pod属于哪个node kubectl get pods -o wide 以yaml格式查看Pod详细信息 kubectl get pod -o yaml 以json格式查看Pod详细信息 kubectl get pod -o json 显示pod节点的标签信息 kubectl get pod --show-labels 查看Pod标签 kubectl get pod -n nsName --show-labels 获取指定名称空间中的指定pod kubectl get pod -n kube-system podName 查询集群中的所有pod,带有namespace kubectl get pod --all-namespaces 查看所有命名空间POD详细状态,前四列查出结果与kubectl get pods -A相同 kubectl get pod --all-namespaces -o wide 查看集群节点信息 kubectl get node 显示node节点的标签信息 kubectl get node --show-labels 获取节点和服务版本,以及查看附加信息 kubectl get nodes -o wide 查看已经部署了的所有应用,可以看到容器,以及容器所用的镜像,标签等信息 kubectl get deploy -o wide kubectl get deployments -o wide 查看组件状态(componentstatuseskubectl = cs) kubectl get cs 查看所有的pod的副本数,以及他们的可用数量以及状态等信息 kubectl get rs 查看服务的详细信息,显示了服务名称,类型,集群ip,端口,时间等信息 kubectl get svc 查看指定命名空间的服务 kubectl get svc -n kube-system 查看rc和service列表 kubectl get rc,service 查看指定命名空间service信息 kubectl get services -n namespacesName 查看pod,svc,ep能及标签信息 kubectl get pod,svc,ep --show-labels 查看指定命名空间域名信息 kubernetes get ingress -n namespacesName 查看pv(persistentvolumes)信息 kubectl get -n ops pv 查看其他健康端点 kubectl get --raw ‘/healthz?verbose’ 查看集群事件,watch命令,挂起观察 kubectl get events -A replicaset是用来管理实例数量的,可以看成是rc/deployment的一个对象 kubectl get replicaset 查看关联后端的节点 kubectl get endpoints 检查ingress域 kubectl get ingress -n namespacesName

4、top 命令:用于查看资源的cpu,内存磁盘等资源的使用率

查看node的使用情况 kubectl top node 查看node的使用情况,–containers可以显示 pod 内所有的container kubectl top pod 找CPU消耗最高的Pod kubectl top pod -l -ncpu-loader --sort-by=cpu -A

5、logs命令:用于将容器中的日志导出

查看日志,-c容器名,-f 指定是否持续输出日志 kubectl logs -n namespacesName -f [-c 容器名] 查看曾经运行郭,现在已经停止的容器的日志 kubectl logs -p -n namespacesName -f -c 容器名 查看最近20条日志 kubectl logs --tail=20 -n namespacesName -f -c 容器名 查看最近一小时内产生的所有日志 kubectl logs --since=1h -n nsName -f -c 容器名

6、run 命令:在集群中创建并运行一个或多个容器镜像

启动一个实例 kubectl run NAME --image=image 启动一个有5个副本的nginx实例,并在容器中设置环境变量 kubectl run NAME --image=image --replicas=5 试运行,不创建他们的情况下,打印出所有相关的API对象 kubectl run NAME --image=image --dry-run 重启策略设置为Never,不自动重启;重启策略默认是always,总是自动拉取 kubectl run -i -t NAME --image=image --restart=Never

7、expose 命令:创建一个service服务,并且暴露端口让外部可以访问

为deployment(无状态部署)的nginx创建service,并通过Service的80端口转发至容器的80端口上,Service的名称为nginx-service类型为NodePort kubectl expose deployment nginx --port=88 --type=NodePort --target-port=80 --name=nginx-service

8、describe命令:显示特定资源的详细信息

描述一个pod,查看非running 状态到具体可能原因 kubectl describe pods podName -n namespacesName 描述xxx.yaml中的资源类型和名称指定的pod kubectl describe -f xxx.yaml 描述所有的pod kubectl describe pods --all-namespaces 描述所有Labels为xxxx的pod kubectl describe pods -l xxxx --all-namespaces

9、explain 命令:用于显示资源文档信息

命令详解 kubectl explain pods.spec.containers.livenessProbe.httpGet

10、set 命令:配置应用的一些特定资源,也可以修改应用已有的资源

这个命令用于设置资源的一些范围限制,可用资源对象包括replicationcontroller、deployment、daemonset、job、replicaset kubectl set resources … 将deployment的指定容器cpu限制为“200m”,将内存设置为“512Mi” kubectl set resources deployment 容器名 --limits=cpu=200m,memory=512Mi 删除deployment的指定容器的计算资源值 kubectl set resources deployment 容器名 --limits=cpu=0,memory=0 --requests=cpu=0,memory=0 用于更新现有资源的容器镜像 kubectl set image… 将所有deployment中的指定容器的镜像改为新镜像 kubectl set image deployment 容器名 原镜像=新镜像 将所有deployment和rc指定镜像的容器更新为新镜像 kubectl set image deployment,rc 指定镜像=新镜像 --all

11、label命令: 用于更新(增加、修改或删除)资源上的 label(标签) label

必须以字母或数字开头,可以使用字母、数字、连字符、点和下划线,最长63个字符Pod添加label unhealthy=true kubectl label pods podName unhealthy=true 给Pod修改label 为 ‘status’ / value ‘unhealthy’,且覆盖现有的value kubectl label --overwrite pods podName status=unhealthy

12、exec命令:进入容器进行交互,在容器中执行命令

连接容器,-c 容器、 -p pod名、-i 将控制台输入发送到容器、-t 将标准输入控制台作为容器的控制台输入 kubectl exec jenkins-864794d566-zj6rt -n ops -it – /bin/bash

13、api-servions命令:打印受支持的api版本信息

打印当前集群支持的api版本信息 kubectl api-versions

14、rollout命令: 对指定容器进行重启

重启容器 kubectl rollout restart statefulsets prometheus -n monitor

15、cp:用于pod和外部的文件交换,将文件和目录复制到容器或从容器复制到容器

将本地目录或文件拷贝到默认命名空间的远端pod的目录下 kubectl cp 本地目录 some-podName:远端pod目录 复制本地文件到指定目录在远程pod在一个特定的容器 kubectl cp 本地目录 some-podName:远端pod目录 -c 容器名

精彩文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: