首页 > 技术文章 > kubernetes命令(二)

wannengachao 2019-12-24 17:59 原文

版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明。

本文地址: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 describe nodes | grep Tain      
 

node添加污点:
kubectl taint node $node名 $key=$value:NoSchedule

 

删除污点,删除时不用写value:

kubectl taint nodes $node名 $key:NoSchedule- 

 
42、查看运行pod的环境变量
kubectl exec $podName env
 
43、创建namespace
kubectl create namespace $要创建的名
 
 44、查看各组件信息
kubectl -s https://$masterIP:6443 get componentstatuses
 
45、强制删除
kubectl delete pod $podName -n $命名空间名 --grace-period=0 --force
kubectl delete pod $podName -n $命名空间名 --grace-period=1
kubectl delete pod $podName -n $命名空间名 --now
 
46、为Node打标签

key=value的格式,key与value是以=分开的

kubectl label no $node名 mysql.local/db-0=true 或此种格式  kubectl label no $node名 node=kube-node3

推荐阅读