kubernetes命令(二)
版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明。
本文地址:https://www.cnblogs.com/wannengachao/p/12092843.html
1、查看api版本信息
kubectl api-versions
k8s把apiServer中所支持的API有多少种来进行分组管理,同一组下的所有版本都可使用。
好处:
不分组的话,一更新要更新所有。分组后某一组发生改变了,只需要改变一组皆可,其它组不受影响
一个组加了版本号后,可以让同一个组的不同版本号并存
API分三个版本阿尔法(内测版)、beta(公测版)、Stable(稳定版)
[root@chushi ~]# kubectl api-versions
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
apps/v1beta1
apps/v1beta2
authentication.k8s.io/v1
authentication.k8s.io/v1beta1
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
autoscaling/v1
autoscaling/v2beta1
autoscaling/v2beta2
batch/v1
batch/v1beta1
certificates.k8s.io/v1beta1
coordination.k8s.io/v1
coordination.k8s.io/v1beta1
events.k8s.io/v1beta1
extensions/v1beta1
networking.k8s.io/v1
networking.k8s.io/v1beta1
node.k8s.io/v1beta1
policy/v1beta1
rbac.authorization.k8s.io/v1
rbac.authorization.k8s.io/v1beta1
scheduling.k8s.io/v1
scheduling.k8s.io/v1beta1
storage.k8s.io/v1
storage.k8s.io/v1beta1
v1
2、查看组件信息
kubectl get cs
3、主节点重置
kubeadm reset
4、查看replication controllers
kubectl get rc
kubectl get replicationcontrollers
5、查看未授权CSR请求(未授权的节点)
kubectl get csr ###kubelet 首次启动时向 kube-apiserver 发送CA(证书)签名请求,必须通过后 kubernetes系统才会将该 Node 加入到cluster。 自动生成 kubelet kubeconfig 文件和公私钥
6、将节点加入TLS认证
kubectl certificate approve {NodeName}
7、查看pod日志
kubectl logs pod名 ###查看容器输出的日志;
kubectl logs -f pod名 -c 容器名 ### -f 动态查看容器的日志 不加 -f 非动态查看;
kubectl logs --tail=50 pod名 -c 容器名 ##查看容器倒数后50行的日志内容
kubectl exec pod-name cmd ###在podname中执行cmd命令,该命令用‘’扩好;
kubectl exec pod名 -c 容器名 ###在pod中的容器containername中执行命令;
kubectl exec -it pod名 -c 容器名 /bin/sh -n ns-2 ###进入pod 的容器中,执行一些命令;
8、进入pod中的某个容器
kubectl exec -it pod名 --container 容器名 -- /bin/bash
kubectl exec -it pod名 -c 容器名 -- /bin/bash
9、查看token
kubeadm token list
显示所有的证书信息
10、生成新token
kubeadm token create
11、删除token
kubeadm token delete token名
12、将pod以json形式输出
kubectl get po pod名 -o json
13、将yaml文件以json形式输出
14、列出所有命名空间
kubectl get ns
15、删除命名空间
kubectl delete ns namespace名
16、删除所有命名空间及命名空间的所有资源
kubectl delete all --all
--all 命令会删除kubernetes的service,但它会自动重建
17、删除某个空间下的所有pod
kubectl delete pod -n namespace名 --all
18、查看configmaps
kubectl get cm
存储全局配置变量的,将分布式系统中不同模块的环境变量统一到一个对象中管理
19、查看daemonsets
kubectl get ds
每个节点上运行一个守护进程(如:日志采集等),有时pod处于pending可能是因为某个deamonset没起来。
20、查看endpoints
kubectl get ep
21、查看events
kubectl get ev
22、查看ingress
kubectl get ingress
kubectl get ing
23、查看horizontalpodautoscalers资源对象(pod的水平自动扩展)
kubectl get hpa
24、查看jobs
kubectl get jobs
25、查看limitranges
kubectl get limitranges
kubectl get limits
26、查看persistentvolumes(持久卷,简称PV)
kubectl get pv
27、查看pod security policies
是一种用来控制Pod安全相关配置的全局资源。
kubectl get psp
28、查看replicasets(副本控制器)
kubectl get rs
29、查看resource quotas(资源配额)
kubectl get quota
30、查看secrets
kubectl get secrets
31、查看service accounts
1、kubectl get sa
2、[root@master1 ~]# kubectl get serviceAccounts default --output=yaml
apiVersion: v1
kind: ServiceAccount
metadata:
creationTimestamp: "2019-12-24T06:40:46Z"
name: default
namespace: default
resourceVersion: "346"
selfLink: /api/v1/namespaces/default/serviceaccounts/default
uid: 754205d6-e05c-413a-9962-7205f65447c4
secrets:
- name: default-token-n8n8v
32、查看statefulsets
kubectl get statefulsets
kubectl get sts
33、查看storageclasses
kubectl get storageclasses
34、查看role
kubectl get role
35、查看rolebinding
kubectl get rolebinding
36、查看部署状态,例:nginx。
[root@master1 ~]# kubectl rollout status deploy nginx
deployment "nginx" successfully rolled out
37、查看历史部署状态,例:nginx
[root@master1 ~]# kubectl rollout history deploy
deployment.extensions/nginx
REVISION CHANGE-CAUSE
1 <none>
38、将pod中文件cp到宿主机
举例:拷贝nginx.conf文件到宿主机上
目标参数必须为文件 不能是一个目录,若不设置目标参数为文件是会报错的。注:若pod进入的家目录是/etc目录,想拷贝etc下的文件那么不是写全路径(比如文件路径是etc/nginx/nginx.conf,直接cp pod名:/nginx/nginx.conf)
kubectl cp nginx-554b9c67f9-wt64k:nginx/nginx.conf ./nginx.conf
39、查看node资源使用情况
kubectl top node
40、查看pod资源使用情况
kubectl top pod $PodName
41、污点stain操作
node添加污点:
kubectl taint node $node名 $key=$value:NoSchedule
kubectl taint nodes $node名 $key:NoSchedule-
kubectl -s https://$masterIP:6443 get componentstatuses
kubectl delete pod $podName -n $命名空间名 --grace-period=1
kubectl delete pod $podName -n $命名空间名 --now
key=value的格式,key与value是以=分开的
kubectl label no $node名 mysql.local/db-0=true 或此种格式 kubectl label no $node名 node=kube-node3