k8s-常用命令

k8s常用命令:

#1、查看Deployment资源对象由哪几部分组成
kubectl explain deployment

#2、查看有哪些部署文件
kubectl  get deployment

#3、查看某一个deployment的详细清单
kubectl  describe deployment deploy名称

#创建部署
kubectl create -f 部署yml文件
 
#更新部署配置
kubectl apply -f 部署yml文件
 
#查看已部署pod
kubectl get pod [-o wide]
 
#查看pod详细信息
kubectl describe pod  pod名称 
 
#查看pod日志输出
kubectl logs [-f]  pod名称

#复制本地文件到pod容器中
kubectl cp <本地文件路径> <命名空间>/<Pod名称>:<目标路径> -c <容器名称>
参数说明
<本地文件路径>:要复制的本地文件的完整路径。
<命名空间>:目标 Pod 所在的命名空间,如果是默认命名空间,可以省略。
<Pod名称>:目标 Pod 的名称。
<目标路径>:文件要复制到 Pod 内的路径。
-c <容器名称>:如果 Pod 中有多个容器,需要指定将文件复制到哪个容器中;如果 Pod 中只有一个容器,则可以省略该参数。
操作步骤
#获取k8s上部署的详细信息的pod
kubectl get pod -o wide

#创建tomcat容器实例
kubectl create -f tomcat-deploy.yml
 
#进入pod容器内部
kubectl exec -it pod名称 /bin/bash

#查看一个pod的详细信息
kubectl describe pod tomcat-deploy-b76dd4475-hh9zf(pod名称)

#查看pod日志
kubectl logs tomcat-deploy-b76dd4475-hh9zf(pod名称)

#创建service服务
kubectl create -f ./tomcat-service.yml 

#查看service是否创建成功
kubectl get service

#查看service详细信息
kubectl describe service tomcat-service

#进入容器
kubectl exec -it tomcat-deployment-795d745898-fvswl /bin/bash
#1、查看部署
kubectl get deployment
 
#2、删除部署文件
kubectl delete deployment 部署文件名称
 
#3、查看pod
kubectl get pod
 
#4、查看service
kubectl get service
 
#5、删除service
kubectl delete service  service名称

#6、查看集群信息
kubectl cluster-info
#1、创建 namespace 
kubectl create namespace lhynamespace 
 
#2、查看 namespace 
kubectl get namespace 
 
#3、删除 namespace 
kubectl delete namespace lhynamespace
#1、生成yaml文件 
kubectl create deployment mysql8 --image=mysql:8 --dry-run -o yaml > mysql8_deployment.yaml 
 
#2、修改yaml文件 指定 namespace 
metadata:
  namespace: lhynamespace 
 
#3、创建 deployment 
kubectl apply -f mysql8_deployment.yaml 
 
#4、查看 lhynamespace 命名空间下的 deployment  
kubectl get deployment -n lhynamespace 
kubectl get deployment --all-namespaces   //查看所有namespace
 
#5、删除 lhynamespace 命名空间下的 mysql8 的 deployment ,删除deployment 之后 pod 自动删除 通过yaml创建的,通过yaml文件删除 
kubectl delete -f mysql8_deployment.yaml 
kubectl delete deployment mysql8 -n lhynamespace  //命令删除
#使用 kubectl describe pod sentry-web 查看启动细节:
kubectl describe pod podname
-- 检查k8s是否正常
systemctl status kubelet

pod频繁重启分析命令:

#1、生成堆转储(Heap Dump)
kubectl exec <pod-name> -- jmap -dump:live,format=b,file=/tmp/heap.hprof <pid>
kubectl cp <pod-name>:/tmp/heap.hprof ./heap.hprof

#2、检查jvm参数,确认 -Xmx 是否合理(建议不超过容器限制的 70%)
kubectl exec <pod-name> -- ps aux | grep java

#3、如果不需要容器级别的明细,直接对 Pod 整体内存排序
kubectl top pod --sort-by=memory


#使用 awk 或 sort 命令对输出进行排序
kubectl top pod --containers --no-headers | sort -k4 -h -r
#参数说明:
#--no-headers:去除表头(避免干扰排序)。
#sort -k4:按第4列(MEMORY)排序。
#-h:以人类可读格式(如 250Mi)进行排序。
#-r:降序排列(从高到低)。


#4、OOMKilled可能是由于应用程序内存使用过高导致的。可以通过以下命令查看容器的日志,了解OOM发生前后的情况:
kubectl logs <pod-name> -n <namespace> --previous
#--previous参数用于查看被重启前的容器日志。
#如果Pod中有多个容器,可以通过-c参数指定容器名称:
kubectl logs <pod-name> -n <namespace> -c <container-name> --previous

#5、监控与分析内存使用
#5.1、查看历史内存使用:
kubectl top pod <pod-name> --containers
#5.2、检查容器日志:
kubectl logs <pod-name> --previous | grep -i "out of memory"

#6、查询node节点所归属的服务器
kubectl get nodes -o wide

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荆茗Scaler

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值