k8s常用指令

4 篇文章 0 订阅

1、查看所有 pod 列表

 kubectl get pod

 kubectl get pod -n kube   -n 后跟 namespace, 查看指定的命名空间

 kubectl get pod -o wide

2、查看 RC 和 service 列表

kubectl get pod,svc -o wide   -o wide 查看详细信息

kubectl get rc,svc

3、查看pod配置文件

kubectl get pod -o yaml

4、显示 Node 的详细信息

kubectl describe node 192.168.0.212

5、显示 Pod 的详细信息

kubectl describe pod    特别是查看 pod 无法创建的时候的日志

6、根据 yaml 创建资源,(apply 可以重复执行,create 不行)

kubectl create -f pod.yaml

kubectl apply -f pod.yaml

7、删除管理

(1)基于 pod.yaml 定义的名称删除 pod

kubectl delete -f pod.yaml

(2)删除所有包含某个 label 的pod 和 service

kubectl delete pod,svc -l name=

 (3)删除所有 Pod

kubectl delete pod --all

8、查看 endpoint 列表

kubectl get endpoints

9、执行 pod 的 date 命令

kubectl exec – date

kubectl exec – bash

kubectl exec – ping 10.24.51.9

10、登录容器

kubectl exec -it -c – bash

11、查看日志

kubectl logs  pod

kubectl logs -f # 实时查看日志

kubectl log -c <container_name> # 若 pod 只有一个容器,可以不加 -c

kubectl logs -l app=frontend # 返回所有标记为 app=frontend 的 pod 的合并日志。

查看已经停止的Pod的日志:kubectl logs <pod-name> --previous

查看指定时间段日志    kubectl logs <pod_name> --since=<yyyy-MM-ddT00:00:00Z> --until=<yyyy-MM-ddT00:00:00Z>

查看注释

kubectl explain pod

kubectl explain pod.apiVersion

12、标签

(1)查看节点 labels

kubectl get node --show-labels

(2)添加节点标签

kubectl   kubectl label node  节点的名称 mo/gpu=enabled

(3)查看节点选择器  

 kubectl get pod -n moqi  名称 -o yaml  | grep ‘node-selectors’

(4)删除标签    kubectl label nodes <node-name> <label-key>-     <node-name> 是要删除标签的节点名称,<label-key> 是要删除的标签的键。

13、重启 pod

kubectl get pod <POD名称> -n <NAMESPACE名称> -o yaml | kubectl replace --force -f -

14、修改网络类型

kubectl patch service istio-ingressgateway -n istio-system -p ‘{“spec”:{“type”:“NodePort”}}’

15、伸缩 pod 副本

可用于将Deployment/statefulset及其Pod缩小为零个副本,实际上杀死了所有副本。当您将其缩放回1/1时,将创建一个新的Pod,重新启动您的应用程序。

kubectl scale deploy/nginx-1 --replicas=0   

kubectl scale deploy/nginx-1 --replicas=1

16、临时关闭某个节点

kubectl cordon命令:

      这个命令会将节点标记为不可调度状态,阻止新的Pod被调度到该节点,但不会对现有Pod产生影响。这是最温和的方法,适用于需要短时间隔离节点的情况。引用:“cordon命令将节点标记为不可调度状态 (SchedulingDisabled)。执行该命令后,新创建的Pod不会被调度到该节点,但现有的Pod继续运行,不受影响。”

kubectl cordon <node-name>  将指定的节点<node-name>设置为不可调度状态。

kubectl uncordon <node-name>  恢复节点的调度状态,使其重新接受新的Pod

kubectl cordon -l <label-selector>   根据节点的标签来选择节点

kubectl cordon --force <node-name>  节点上的某些Pod无法被正常驱逐,可以使用--force选项强制执行

kubectl drain命令:

       这个命令不仅会将节点标记为不可调度,还会逐步安全地驱逐节点上的Pods,将它们迁移到其他健康的节点。这个过程会考虑PodDisruptionBudgets (PDB),以确保应用的连续性和稳定性。引用:“drain命令会触发节点驱逐操作,并且将节点上的Pod迁移到其他节点上。”

kubectl drain <node-name> --ignore-daemonsets  --ignore-daemonsets选项会确保守护进程集(DaemonSet)的Pods不会被删除。

kubectl drain <node-name> --ignore-daemonsets  --grace-period 来设置每个 Pod 体面终止的时间段长度(默认为 30 秒)

kubectl drain <node-name> --ignore-daemonsets  --delete-emptydir-data 参数来强制驱逐节点上绑定了本地存储的 Pod

kubectl uncordon 回复节点命令,这将使节点再次可调度

使用kubectl-safe-drain工具:

这是一个kubectl插件,它根据Deployment和StatefulSet的更新策略安全地排空节点上的Pods。引用:“kubectl safe-drain是一个kubectl插件,用于更为安全的排空节点。”

很抱歉,我无法提供思维导图。但是,我可以为您提供一些常用Kubernetes命令。以下是一些常用Kubernetes命令: 1. kubectl get pods:获取当前集群中的所有Pods的信息。 2. kubectl get deployments:获取当前集群中的所有Deployments的信息。 3. kubectl get services:获取当前集群中的所有Services的信息。 4. kubectl create deployment \[deployment-name\] --image=\[image-name\]:创建一个新的Deployment。 5. kubectl scale deployment \[deployment-name\] --replicas=\[number\]:扩展或缩小一个Deployment的副本数量。 6. kubectl delete deployment \[deployment-name\]:删除一个Deployment。 7. kubectl describe pod \[pod-name\]:获取一个Pod的详细信息。 8. kubectl logs \[pod-name\]:获取一个Pod的日志。 9. kubectl exec -it \[pod-name\] -- \[command\]:在一个Pod中执行一个命令。 10. kubectl apply -f \[file-name\]:使用一个YAML文件创建或更新资源。 这些是一些常用Kubernetes命令,可以帮助您管理和操作Kubernetes集群中的资源。希望对您有所帮助! #### 引用[.reference_title] - *1* *2* *3* [k8s学习-思维导图与学习笔记](https://blog.csdn.net/lady_killer9/article/details/124544947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

牛马运维

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

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

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

打赏作者

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

抵扣说明:

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

余额充值