目录

1.查询命令

2.创建命令

3.修改命令

4.删除命令

5.回滚命令

6.滚动更新

7.去除污点

1.查询命令

kubectl get pod --show-labels
    #查询pod的标签

kubectl get pod -n defauct
    #查看名称空间下的pod,-n指定名称空间

kubectl get pod -o wide
    #查看pod的详细信息

kubectl describe deployments
    #查看控制器的详细信息

kubectl get deployment,rs,pod
    #查看多个对象的信息

kubectl get deployment nginx-deployment -o yaml
​    #将当前deployment的资源对象输出为yaml格式文件,kubectl get 控制器类型 控制器名 -o yaml

kubectl explain deployment.spec.selector
    #查看标签匹配符。

kubectl rollout history deployment/nginx-deployment
    #查看当前滚动更新的历史记录

kubectl log pod/hello-1664175300-4sq6q -c 容器名
    #查看容器日志,若pod中只有一个容器,则无需加-c

kubectl get pod -A  | grep -vE "1/1|2/2|3/3|4/4|5/5|Com"
    #查看所有异常pod

kubectl describe pod -n namespace pod名		
    #查看异常pod的异常信息

2.创建命令

kubectl create -f aaa.yaml		
    #根据yaml文件创建pod

kubectl apply -f aaa.yaml		 
    #声明式创建pod,可以进行滚动升级

#第一种create创建为命令式创建:
​     #虽然把文件改变了,但是文件已经存在,不会去检查内容,只是提醒文件已经存在。
     #虽然内容发生了变化,但是也不会去应用。

#第二种apply创建为声明式创建:
     #如果同一个对象,内部的数据不一致,目标不一致,期望不一致,会用到最新的期望。

kubectl create -f https://kubernetes.io/docs/user-guide/nginx-deployment.yaml --record	
​    #--record参数可以记录命令,我们可以很方便的查看每次 revision 的变化

kubectl create svc clusterip nginx --tcp=80:80       
​	#创建名为nginx的service环境,为用户提供访问入口,--tcp指定外部80端口与内部80端口的映射关系。

3.修改命令

kubectl scale rs rs-demo --replicas=3		
    #设置pod的副本数量为3个,kubectl scale 控制器类型 控制器名 --replicas=3

kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80
    #如果集群支持 horizontal pod autoscaling 的话,还可以为Deployment设置自动扩展

kubectl label pod rs-demo-5fhp2 app=xinxianghf --overwrite		
    #修改pod标签名,kubectl label pod pod名 标签=标签名 --overwrite

kubectl set image deployment/nginx-deployment nginx=wangyanglinux/myapp:v2 --record
    #设置镜像,deployment控制器的nginx-deployment对象,nginx容器=更改的镜像名

kubectl edit deployment/nginx-deployment		
    #在线编辑deployment,控制器类型/控制器名

kubectl cp my-namespace/my-pod:/etc/config/app.conf ./app.conf -c containers
	#将pod中容器的文件复制出来

kubectl cordon <node-name>
    #设置节点为不可调度状态

kubectl uncordon <node-name>
	#设置节点为可调度状态

kubectl drain node01 --ignore-daemonsets --delete-local-data
    #驱逐node01节点上的pod
    #--ignore-daemonsets:忽略守护进程集(DaemonSet)管理的Pod,因为这些Pod是由DaemonSet自动创建的。
    #--delete-local-data:这个选项会允许删除那些使用了本地存储的Pod(比如使用了emptyDir卷类型)。

4.删除命令

kubectl delete rs --all		
    #删除所有rs控制器创建的pod

kubectl delete svc nginx	
    #删除名为nginx的svc

kubectl delete pod deamonset-example-5mgpl		
    #delete删除pod pod名

kubectl delete pod deamonset-example-5mgpl –-force --grace-period=0
    #强制删除

kubectl get pod -A | grep -vE "1/1|2/2|3/3|4/4|5/5|Com" | awk '{print "kubectl delete pod  -n " $1 " " $2}' | bash
    #异常状态的pod,全部删除

5.回滚命令

kubectl rollout history deployment/nginx-deployment 	
    #查看当前滚动更新的历史记录

kubectl set image deployment/nginx-deployment nginx=wangyanglinux/myapp:v4   
    #升级到v4版

kubectl rollout undo deployment/nginx-deployment 	 
    #正在回滚

kubectl rollout status deployment/nginx-deployment		
    #查看rollout状态

6.滚动更新

kubectl set image deploy nginx-deployment nginx=wangyanglinux/myapp:v2
kubectl rollout pause deploy nginx-deployment
kubectl rollout status deployment/nginx-deployment
    #先设置镜像到v2版,再立马暂停更新,再立马查看更新状态

kubectl rollout resume deploy nginx-deployment   
    #如果经过金丝雀探测更新后,没有产生问题,则使用这条命令恢复更新

7.去除污点

kubectl describe pod <podname> -n <namespaces>	
    #查看pod的pending的信息
    #报错0/28 nodes are available: 1node(s) had taints that the pod didn't tolerate,27 node(s) didn't match node selector

kubectl describe node <异常节点nodename> | grep Taints	
    #查看异常污点信息

kubectl describe node <正常节点nodename> | grep Taints
    #查看正常污点信息

kubectl taint nodes <异常节点nodename> node-role.kubernetes.io/master:NoSchedule-
    #去除污点

kubectl taint nodes <异常节点nodename> node-role.kubernetes.io/master:NoSchedule
    #添加污点
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐