Kubernetes——命令行操作

时间:2021-08-14 09:15:18

如果集群初始化失败需要的操作:
 master:
   kubeadm reset   #回答y
   执行一条它提示给你的iptables命令即可
 node:
   systemctl stop kubelet
   rm -rf /etc/kubernetes/*
   注意:检查防火墙、swap分区、内存
 
kubernetes使用
运行pod的两种方式:命令行、yaml文件
控制器:deploy rs ds sts job cj(简写)

命令行操作deploy:
 kubectl delete deploy httpd  #删除要指定资源类型,这里的资源类型是deploy
 kubectl delete deploy nginx
 kubectl get po
 kubectl run nginx --image=nginx -r 2
 kubectl run nginx --image=nginx --replicas=2
 kubectl get po
 kubectl get deploy
 #deploy管理多副本,但是不是直接管理,而是通过rs管理多副本。
 kubectl get deploy
 kubectl describe deploy nginx
 #能够发现的是replicaset的名称是deployment的name上加上一串随机字符串,pod的name又是在rs的基础上再加上一个随机字符串。
 #describe中的Events可以当作简单日志来看,有时候的pod没有起来,可以通过描述下对应的deploy来查看。
 kubectl get rs
 kubectl describe rs nginx-2dhorht341
 #会发现其中有一项叫做controlled by :deployment/nginx
 #也印证了pod rs deploy三者之间的命名规则。

删除pod:
 在删除的时候要指定资源类型,pod是资源的一种。
 k8s的一些基本资源类型:
  deploy   rs   pod  ns   svc   pv   pvx
 kubectl delete po --force nginx-12sdfgfdsgs-w4ntd
 kubectl get pod   #发现删除后又重新起来一个pod,这是因为受deploy管控的pod会自动按照要求启动相应数量的pod,少了一个会再重启一个。
 这个时候要想删除pod就要连同deploy一起删掉。
 kubectl delete deploy nginx
 kubectl get po   #发现删除成功,但是所有的deploy下的pod均被删除了。
 
命令行实现动态replicas的伸缩
 kubectl run nginx --image=nginx --replicas 2
 kubeclt get po
 kubectl scale --replicas 5 deploy nginx
 kubectl get pod
 kubectl get po -w    #-w watch——监控
 kubectl scale --replicas 3 deploy nginx  #缩容为三个
 
如果pod起不来,如何排错?
 kubectl describe deploy nginx    #查看Events
 kubectl describe po nginx-qwehtqg12sdge-wq3rg
 kubectl logs nginx-qwehtqg12sdge-wq3rg     #logs只能存放pod日志,所以无需指定资源类型。
 kubectl get po -o wide  #可产看相应的node信息
 kubectl logs nginx-qwehtqg12sdge-wq3rg  -f   #持续监控