Kubernetes(k8s) 常用命令
文章目录
- 前言
- Kubernetes(k8s) 常用命令
- 1. 集群与节点管理
- 1.1. 查看版本信息: 显示客户端和服务器端的版本信息
- 1.2. 查看集群信息: 显示控制平面各组件的地址
- 1.3. 列出k8s集群中所有节点及其状态
- 1.4. 查看节点详细信息
- 1.5. 查看k8s节点资源使用: 显示所有节点的 CPU/内存等资源使用情况
- 1.6. 查看 API 资源支持情况
- 2. 命名空间管理
- 2.1. 创建命名空间
- 2.2. 查看所有命名空间
- 2.3. 删除命名空间
- 2.4. 切换到 magic2 命名空间
- 3. Deployment / Pod / Service /CpnfigMap/Secret 管理
- 3.1. 列出指定命名空间下的 所有 deployment
- 3.2. 列出 指定命名空间下的 所有Pod 列表
- 3.3. 列出 指定命名空间下的 Pod,附带节点与 IP 信息
- 3.4. 列出 指定命名空间下的 所有 Service 列表
- 3.5. 列出 指定命名空间下的 所有 ConfigMap
- 3.6. 列出某个 ConfigMap下 的所有 key
- 3.7. 统计ConfigMap key 的个数
- 3.8. 查看某个ConfigMap的 完整 YAML
- 3.9. 列出 指定命名空间下的 所有 Secret
- 3.10. 查看某个Secret完整 YAML
- 4. -o 关键子,用来控制 kubectl输出结果
- 4.1. 常见的 -o 选项
- 4.2. 示例1、查询某个附带节点与 IP 信息的pod
- 4.3.示例2、4.3. 查看某个po的具体配置
- 5. 详情与日志
- 5.1. 查看某个 Deployment 的详情
- 5.2. 查看某个 Pod 的详情
- 5.3. describe 与 get -o yaml 区别
- 5.4. 查看 Pod 的日志
- 5.5. 持续查看日志
- 5.6. 查看最近5行日志
- 5.7. 持续查看最近5行日志
- 6. Pod 调试与进入容器
- 6.1. 进入 Pod 交互式 shell
- 7. 创建、删除、更新服务
- 7.1. 应用 yaml 文件(创建或更新资源)
- 7.2. 更新服务
- 7.3. 删除 deployment
- 7.4. 删除 service
前言
如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!
Kubernetes(k8s) 常用命令
1. 集群与节点管理
1.1. 查看版本信息: 显示客户端和服务器端的版本信息
kubectl version
1.2. 查看集群信息: 显示控制平面各组件的地址
kubectl cluster-info
1.3. 列出k8s集群中所有节点及其状态
kubectl get node
1.4. 查看节点详细信息
kubectl describe node <ip>
1.5. 查看k8s节点资源使用: 显示所有节点的 CPU/内存等资源使用情况
kubectl top node
1.6. 查看 API 资源支持情况
kubectl api-resources
2. 命名空间管理
2.1. 创建命名空间
kubectl create ns <命名空间>
2.2. 查看所有命名空间
kubectl get ns
kubectl get ns | grep yzy
2.3. 删除命名空间
kubectl delete ns <命名空间>
2.4. 切换到 magic2 命名空间
kubectl config set-context --current --namespace=yzy
3. Deployment / Pod / Service /CpnfigMap/Secret 管理
3.1. 列出指定命名空间下的 所有 deployment
kubectl get deploy -n <命名空间>
3.2. 列出 指定命名空间下的 所有Pod 列表
kubectl get po -n <命名空间>
3.3. 列出 指定命名空间下的 Pod,附带节点与 IP 信息
kubectl get po -n <命名空间> -o wide
3.4. 列出 指定命名空间下的 所有 Service 列表
kubectl get svc -n <命名空间>
3.5. 列出 指定命名空间下的 所有 ConfigMap
kubectl get cm -n <命名空间>
DATA 列 表示ConfigMap 里面有多少个 key:value
3.6. 列出某个 ConfigMap下 的所有 key
kubectl get cm -n <命名空间> <my-configMap> -o go-template='{{range $k,$v := .data}}{{$k}}{{"\n"}}{{end}}'
3.7. 统计ConfigMap key 的个数
kubectl get cm -n <命名空间> <my-configMap> -o go-template='{{len .data}}'
3.8. 查看某个ConfigMap的 完整 YAML
kubectl get cm -n magic2-bj modelmagic-middleware-bj-es-cnf -o yaml
3.9. 列出 指定命名空间下的 所有 Secret
kubectl get secret -n <命名空间>
3.10. 查看某个Secret完整 YAML
kubectl get secret -n <命名空间> <my-Secret> -o yaml
4. -o 关键子,用来控制 kubectl输出结果
4.1. 常见的 -o 选项
输出方式 | 用法 | 说明 |
---|---|---|
-o wide | kubectl get po -n magic2 -o wide | 在默认表格基础上多输出一些字段(例如 Pod 的 IP、Node、镜像等) |
-o yaml | kubectl get po -n magic2 -o yaml | 输出资源的完整 YAML 描述 |
-o json | kubectl get po -n magic2 -o json | 输出资源的完整 JSON 描述 |
-o name | kubectl get po -n magic2 -o name | 只输出资源的名字,常用于脚本里 |
-o jsonpath=… | kubectl get po -n magic2 -o jsonpath=‘{.items[*].status.podIP}’ | 按 JSONPath 表达式 提取字段,适合精准查询 |
-o custom-columns=… | kubectl get po -n magic2 -o custom-columns=NAME:.metadata.name,IP:.status.podIP | 自定义输出列,像表格一样 |
-o custom-columns-file=FILE | 从文件里读取自定义列配置 | 适合复杂表格 |
-o go-template=… | kubectl get po -n magic2 -o go-template=‘{{.items[0].status.phase}}’ | 使用 Go 模板提取字段,功能比 jsonpath 更强大 |
-o go-template-file=FILE | 从 Go 模板文件读取 | 用于复杂模板 |
4.2. 示例1、查询某个附带节点与 IP 信息的pod
kubectl get po -n <命名空间> -o wide | grep <具体的ip>
4.3.示例2、4.3. 查看某个po的具体配置
kubectl get po -n <命名空间> <my-pod> -o yaml
5. 详情与日志
5.1. 查看某个 Deployment 的详情
kubectl describe deploy <my-deploy> -n <命名空间>
或
kubectl get deploy <my-deploy> -n <命名空间> -o yaml
5.2. 查看某个 Pod 的详情
kubectl describe po <my-pod> -n <命名空间>
或
kubectl get po <my-pod> -n <命名空间> -o yaml
5.3. describe 与 get -o yaml 区别
特性 | describe | get -o yaml |
---|---|---|
适合人看 | ✅(排错友好) | ❌(太详细) |
包含事件 (Events) | ✅ | ❌ |
包含完整配置 | ❌(只列重点) | ✅(完整 YAML 对象) |
常用场景 | 排错、看运行状态 | 备份、导出、查看 spec |
5.4. 查看 Pod 的日志
kubectl logs -n <命名空间> <my-pod>
5.5. 持续查看日志
kubectl logs -f <my-pod> -n <命名空间>
5.6. 查看最近5行日志
kubectl logs -n <命名空间> <my-pod> --tail=5
5.7. 持续查看最近5行日志
kubectl logs -n <命名空间> <my-pod> --tail=5 -f
6. Pod 调试与进入容器
6.1. 进入 Pod 交互式 shell
kubectl exec -it -n <命名空间> <my-pod> /bin/sh
7. 创建、删除、更新服务
7.1. 应用 yaml 文件(创建或更新资源)
kubectl apply -f deploy.yaml -n <命名空间>
7.2. 更新服务
更新服务,其实就是删除deployment下pod,在让k8s自动拉取对应的pod,达到重启的效果。
kubectl delete pod -n <我的命名空间> <my-pod>
7.3. 删除 deployment
kubectl delete deploy -n <命名空间> <my-deploy>
7.4. 删除 service
kubectl delete svc -n <命名空间> <my-service>