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(标签) label
- 12、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 容器名