云其它

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > 云其它 > k8s常用命令

超详细的Kubernetes (k8s)常用命令整理

作者:她与疾風*

这篇文章主要介绍了Kubernetes (k8s)常用命令整理的相关资料,讲解了Kubernetes集群管理、节点资源查看、Pod管理、部署管理、命名空间管理、服务负载均衡、调试排错以及备份恢复等操作的命令,需要的朋友可以参考下

1. 基本集群管理命令

查看集群信息

命令:kubectl cluster-info

解析:用于查看 Kubernetes 集群的基本信息,例如 API Server 和 DNS 的访问地址。

检查当前上下文(在k8s中,上下文(context)是集群信息、用户和命名空间的组合这样一个概念。)

命令:kubectl config current-context

解析:用于显示当前使用的集群上下文,尤其在多集群环境下很重要。

切换上下文

命令:kubectl config use-context <context-name>

解析:切换到其他上下文以管理不同的集群。

查看所有上下文

命令:kubectl config get-contexts

解析:列出所有的集群上下文及相关配置信息。

2. 节点与集群资源查看

查看所有节点

命令:kubectl get nodes

解析:列出当前集群中的所有节点及其状态信息。

查看节点详细信息

命令:kubectl describe node <node-name>

解析:获取指定节点的详细状态,包括容量、分配的资源和当前负载情况。

查看集群资源使用情况

命令:kubectl top nodes

解析:显示每个节点的 CPU 和内存使用情况,(需要部署 Metrics Server)。

3. 管理 Pod

查看所有 Pod

命令:kubectl get pods -A  -o wide

解析:列出所有 Pod 的基本信息,显示所有命名空间下的 Pod及分布节点ip,name等信息。

查看某命名空间的 Pod

命令:kubectl get pods -n <namespace>

解析:指定命名空间查看 Pod,可以加 -o wide 查看更多细节。

查看 Pod 详细信息

命令:kubectl describe pod <pod-name>

解析:列出指定 Pod 的详细信息,包括事件、环境变量、容器信息等。

查看 Pod 日志

命令:kubectl logs <pod-name>

解析:获取 Pod 的标准输出日志,常用于调试。

通过shell进入 Pod 容器终端

命令:kubectl exec -it <pod-name> -- /bin/bash

解析:启动一个交互式终端,与容器内部直接交互。

像这种报错进不去,可能是因为容器所基于的镜像做的非常轻量,不包含完整的shell环境,可以通过精简的shell进去

命令: kubectl exec -it <pod -name> -- /bin/sh

删除 Pod

命令:kubectl delete pod <pod-name>

解析:删除指定 Pod,常用于重新调度或解决问题。

这里启动时间已经修改,证明我们的pod已经被删了,但是因为我们的pod控制器类型这里是replicaset,所以删除过后他又自动创建了一个新的pod

4. 部署与管理工作负载

查看部署信息

命令:kubectl get deployments -A

解析:显示当前集群中的所有 Deployment。

创建或更新资源

命令:kubectl apply -f <file.yaml>

解析:使用 YAML 文件创建或更新资源,是声明式管理的核心命令。

创建Deployment

命令:  kubectl create deployment <pod_name> --image=<image> --replicas=<副本数>

解析: 创建Deployment类型的控制器,并指定镜像和副本数

查看 Deployment 详细信息

命令:kubectl describe deployment <deployment-name>

解析:列出 Deployment 的详细信息,如策略、副本数、条件等。

缩放 Deployment 副本数

命令:kubectl scale deployment <deployment-name> --replicas=<number>

解析:动态调整 Deployment 的副本数。

查看 Deployment 历史

命令:kubectl rollout history deployment <deployment-name>

解析:列出 Deployment 的历史版本信息。

回滚 Deployment

命令:kubectl rollout undo deployment <deployment-name>

解析:回滚到上一个版本,解决更新后出现的问题。

5. 命名空间管理

查看所有命名空间

命令:kubectl get namespaces(缩写ns)

解析:显示所有命名空间。

创建命名空间

命令:kubectl create namespace <namespace-name>

解析:用于隔离不同的环境或应用。

删除命名空间

命令:kubectl delete namespace <namespace-name>

解析:删除指定命名空间及其所有资源。

6. 服务与负载均衡

查看 Service

命令:kubectl get services(简写svc)

解析:显示当前集群中的 Service 信息,包括 ClusterIP 和类型。

查看 Service 详细信息

命令:kubectl describe service <service-name>

解析:查看指定 Service 的详细配置和状态。

测试 Service 连接

命令:kubectl port-forward <pod-name> <local-port>:<container-port>

解析:将本地端口映射到 Pod 的端口,测试访问服务。

8. 调试与排错

排查 Pod 问题

命令:kubectl describe pod <pod-name>

解析:通过事件日志查看 Pod 创建和运行中可能遇到的错误。

Events:主要显示镜像在创建过程,拉取镜像,启动等,

检查资源状态

命令:kubectl get events

解析:列出所有资源的事件,用于排查问题。

测试网络连通性

命令:kubectl exec -it <pod-name> -- ping <ip-address>

解析:在 Pod 中测试网络是否畅通。(部分镜像可能没有ping命令)

9. 备份与恢复

导出资源配置

命令:kubectl get <resource-type> <resource-name> -o yaml > backup.yaml

解析:导出资源配置,保存为 YAML 文件以备后续恢复。

恢复资源配置

命令:kubectl apply -f backup.yaml

解析:从 YAML 文件恢复资源。

总结

到此这篇关于超详细的Kubernetes (k8s)常用命令整理的文章就介绍到这了,更多相关k8s常用命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文