get命令用于获取集群的一个或一些resource信息
describe类似于get,同样用于获取resource的相关信息。不同的是,get获得的是更详细的resource个性的详细信息,describe获得的是resource集群相关的信息。describe命令同get类似,但是describe不支持-o选项
resource包括集群节点、运行的pod,ReplicationController,service等。
关于节点的常见命令
no 是 node的简写
[root@master ~]# kubectl get no #查看node节点
NAME STATUS ROLES AGE VERSION
master Ready master 4h22m v1.14.0
node1 Ready 3h52m v1.14.0
node2 Ready 3h52m v1.14.0
-----------------------------------------------------
NAME 节点的名字
STATUS 节点的状态
ROLES 节点在集群中扮演的角色
AGE 运行时长
VERSION 版本号
[root@master ~]# kubectl get no -o wide #查看node节点
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
master Ready master 4h25m v1.14.0 192.168.13.141 CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://18.6.1
node1 Ready 3h56m v1.14.0 192.168.13.142 CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://18.6.1
node2 Ready 3h56m v1.14.0 192.168.13.143 CentOS Linux 7 (Core) 3.10.0-693.el7.x86_64 docker://18.6.1
-----------------------------------------------------
INTERNAL-IP 节点所在的IP地址
EXTERNAL-IP IP的外部网络或互联网
OS-IMAGE 操作系统的镜像版本
KERNEL-VERSION 内核版本号
CONTAINER-RUNTIME 容器运行时的版本
[root@master ~]# kubectl describe no
[root@master ~]# kubectl get no -o yaml #以yaml的格式输出node的详细信息
[root@master ~]# kubectl get no -o json #以json的格式输出node的详细信息
[root@master ~]# kubectl get node --selector=[label_name] #selector 标签选择器(yaml文件中有)
[root@master ~]# kubectl top node [node_name] #查看node节点各资源的使用情况
如:
[root@master ~]# kubectl top node node1
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
node1 96m 9% 587Mi 67%
po 是pod的简写
[root@master ~]# kubectl get po #pod的信息
[root@master ~]# kubectl get po -o wide
[root@master ~]# kubectl describe po
[root@master ~]# kubectl get po --show-labels #查看pod对应的标签
NAME READY STATUS RESTARTS AGE LABELS
mysql-ft58r 1/1 Running 0 64m app=mysql
myweb-2j67r 1/1 Running 0 56m app=myweb
myweb-7nzdc 1/1 Running 0 56m app=myweb
nginx-5f965696dd-w4thr 1/1 Running 1 3h8m app=nginx,pod-template-hash=5f965696dd
[root@master ~]# kubectl get po -l app=nginx #查看标签为app: nginx 的pod
[root@master ~]# kubectl get po -o yaml #yaml格式
[root@master ~]# kubectl get po -o json #json格式
[root@master ~]# kubectl get pods -- field-selector status.phase=Running #查看状态为Running的pod
NAME READY STATUS RESTARTS AGE
mysql-ft58r 1/1 Running 0 78m
myweb-2j67r 1/1 Running 0 70m
myweb-7nzdc 1/1 Running 0 70m
nginx-5f965696dd-w4thr 1/1 Running 1 3h22m
[root@master ~]# kubectl get ns #查看命名空间
NAME STATUS AGE
default Active 5h22m
kube-node-lease Active 5h22m
kube-public Active 5h22m
kube-system Active 5h22m
[root@master ~]# kubectl get ns - o yaml
[root@master ~]# kubectl describe ns
[root@master ~]# kubectl get deploy
[root@master ~]# kubectl describe deploy
[root@master ~]# kubectl get deploy - o wide
[root@master ~]# kubectl get deploy - o yaml
[root@master ~]# kubectl get svc
[root@master ~]# kubectl describe svc
[root@master ~]# kubectl get svc - o wide
[root@master ~]# kubectl get svc - o yaml
[root@master ~]# kubectl get svc --show-labels
[root@master ~]# kubectl get ds
[root@master ~]# kubectl get ds --all-namespaces
[root@master ~]# kubectl describe ds [daemonset_name] - n [namespce_name]
[root@master ~]# kubectl get ds [ds_name] -n [ns_name] -o yaml
[root@master ~]# kubectl get events
[root@master ~]# kubectl get events -n kube-system
[root@master ~]# kubectl get events -w
[root@master ~]# kubectl logs [pod_name]
[root@master ~]# kubectl logs --since=1h [pod_name]
[root@master ~]# kubectl logs --tail =20 [pod_name]
[root@master ~]# kubectl logs -f -c [container_name] [pod_name]
[root@master ~]# kubectl logs [pod_name] > pod.log
[root@master ~]# kubectl get sa
[root@master ~]# kubectl get sa -o yaml
[root@master ~]# kubectl get serviceaccounts default -o yaml >./sa.yaml
[root@master ~]# kubectl replace serviceaccount default -f ./sa.yaml
[root@master ~]# kubectl get rs
[root@master ~]# kubectl describe rs
[root@master ~]# kubectl get rs -o wide
[root@master ~]# kubectl get rs -o yaml
[root@master ~]# kubectl get roles --all -namespaces
[root@master ~]# kubectl get roles --all -namespaces -o yaml
[root@master ~]# kubectl get secrets
[root@master ~]# kubectl get secrets --all -namespaces
[root@master ~]# kubectl get secrets -o yaml
[root@master ~]# kubectl get cm
[root@master ~]# kubectl get cm --all-namespaces
[root@master ~]# kubectl get cm --all-namespaces -o yaml
[root@master ~]# kubectl get ing
[root@master ~]# kubectl get ing --all-namespaces
[root@master ~]# kubectl get pv
[root@master ~]# kubectl describe pv
[root@master ~]# kubectl get pvc
[root@master ~]# kubectl describe pvc
[root@master ~]# kubectl get sc
[root@master ~]# kubectl get sc -o yaml
[root@master ~]# kubectl get svc,po
[root@master ~]# kubectl get deploy,no
[root@master ~]# kubectl get all
[root@master ~]# kubectl get all --all -namespaces
Changing Resource Attributes //改变资源属性
[root@master ~]# kubectl taint [node_name] [taint_name]
[root@master ~]# kubectl label [node_name] disktype=ssd
[root@master ~]# kubectl label [pod_name] env=prod
[root@master ~]# kubectl cordon [node_name]
[root@master ~]# kunectl uncordon [node_name]
[root@master ~]# kubectl drain [node_name]
[root@master ~]# kubectl delet enode [node_name]
[root@master ~]# kubectl delet epod [pod_name]
[root@master ~]# kubectl edit node [node_name]
[root@master ~]# kubectl edit pod [pod_name]
[root@master ~]# kubectl edit deploy [deploy_name]
[root@master ~]# kubectl delete deploy [deploy_name]
[root@master ~]# kubectl expse deploy [deploy_name] --por=80 -type=NodePort
[root@master ~]# kubectl scale deploy [deploy_name] --repicas=5
[root@master ~]# kubectl delete ns
[root@master ~]# kubectl edit ns [ns_name]
[root@master ~]# kubectl edit svc [svc_name]
[root@master ~]# kubectl delete svc [svc_name]
[root@master ~]# kubectl edit ds [ds_name] -n kube-system
[root@master ~]# kubectl delete ds [ds_name]
[root@master ~]# kubectl edit sa [sa_name]
[root@master ~]# kubectl delete sa [sa_name]
[root@master ~]# kubectl annotate po [pod_name] [annotation]
[root@master ~]# kubectl annotate no [node_name]
Adding Resources //添加资源
[root@master ~]# kubectl create -f [name_of_file]
[root@master ~]# kubectl apply -f [name_of_file]
[root@master ~]# kubectl run [pod_name] --image=nginx --resart=Never
[root@master ~]# kubectl run [pod_name] --geneator=run-pod/v1 --image=nginx
[root@master ~]# kubectl run [pod_name] --image=nginx --restart=Never
[root@master ~]# kubectl create svc nodeport [svc_name] --tcp=8080: 80
[root@master ~]# kubectl create -f [name_of_file]
[root@master ~]# kubectl apply -f [name_of_file]
[root@master ~]# kubectl create deploy [deploy_name] --image=ngi nx
[root@master ~]# kubectl run [pod_name] --image=busybox --rm -it --restart=Never -- sh
[root@master ~]# kubectl create deploy [deploy_name] --image=nginx --dry-run -o yaml > depl oy. yaml
[root@master ~]# kubectl get po [pod_name] -o yaml --export > pod. yaml
[root@master ~]# kubectl -h
[root@master ~]# kubectl create -h
[root@master ~]# kubectl run -h
[root@master ~]# kubectl explain deploy.spec
Requests //请求
[root@master ~]# kubectl get --raw /apis/metrics.k8s.io/
[root@master ~]# kubectl config
[root@master ~]# kubectl cluster-info
[root@master ~]# kubectl get componentstatuses
kubectl -n kube-system edit cm coredns