0


K8S 命令集锦

文章目录

kubectl get

Pod

查看名字空间下的所有 Pod。

kubectl get pods -n NAMESPACE

查看名字空间下的所有 Pod,输出更多信息,如 Pod IP、节点名等。

kubectl get pods -n NAMESPACE -o wide

查看 Pod 里的容器。

kubectl get pods POD-NAME -n NAMESPACE -o jsonpath={.spec.containers[*].name}

查看 Pod IP 地址。

kubectl get pods -n <namespace> -o wide |grep POD-NAME

# 或
kubectl describe pods POD-NAME -n <namespace>|grep IP

查看 Pod 资源量(Requets)。

kubectl describe pods POD-NAME |grep Requests
# 或
kubectl get pods POD-NAME |grep requests

Node

查看集群中所有 Node。

kubectl get nodes

按照标签查询 Node。可指定多个标签,为“与”关系。

kubectl get nodes -l | --selector KEY1=VALUE1[,KEY2=VALUE2]

自定义输出列。比如查询可分配 GPU 数的节点。

kubectl get nodes "-o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\.com/gpu"

kubectl exec

Pod

登录 Pod 中的容器。

kubectl exec -it PODNAME -n NAMESPACE -- /bin/sh

# 或指定容器
kubectl exec -it PODNAME -n NAMESPACE -c CONTAINER-NAME -- /bin/sh

kubectl describe

显示一个或多个资源的详细状态,默认情况下包括未初始化的资源。

# 显示名为 <node-name> 的 Node 的详细信息。
kubectl describe node<node-name># 或
kubectl describe node/<node-name># 显示名为 <pod-name> 的 Pod 的详细信息。
kubectl describe pod <pod-name># 或
kubectl describe pod/<pod-name># 显示由名为 <rc-name> 的副本控制器管理的所有 Pod 的详细信息。# 记住:副本控制器创建的任何 Pod 都以副本控制器的名称为前缀。
kubectl describe pods <rc-name># 描述所有的 Pod
kubectl describe pods

# 显示名为 <cm-name> 的 Configmap 的详细信息。
kubectl describe cm <cm-name># 或
kubectl describe cm/<cm-name>

kubectl logs

查看 Pod 日志。

kubectl -f logs <pod-name> -n <namespace>

其中 -f 选项表示 “follow”,意思是在输出最新日志之后保持连接并继续输出新的日志。这个选项使得命令可以持续地输出日志,直到用户手动中断它。

重启 Pod

Docker 有 restart 命令来重启容器,但是 K8S 却没有类似的命令用来重启 Pod,一般会结合 restartPolicy 进行自动重启。如果想手动重启 POD,可以通过其他方式实现。

  • 滚动重启 Deployment 下的所有 Pod。
kubectl rollout restart deployment <deployment_name> -n <namespace>
  • 直接删除 Pod实例来达到重启的目的。

因为 deployment 负责托管,手动删除 Pod,会自动创建,相当于重启。

kubectl delete pods POD-NAME -n NAMESPACE
  • 重新部署 POD。
kubectl get pod PODNAME -n NAMESPACE -o yaml | kubectl replace --force -f –

Pod CrashLoopBackOff

(1)排查容器退出状态码,查看异常 Pod 的状态。

kubectl describe pod <pod-name> -n <namespace>

(2)查看 Pod 日志。

kubectl -f logs <pod-name> -n <namespace>

其中 -f 选项表示 “follow”,意思是在输出最新日志之后保持连接并继续输出新的日志。这个选项使得命令可以持续地输出日志,直到用户手动中断它。


参考文献

Kubernetes 文档

标签: K8S kubectl

本文转载自: https://blog.csdn.net/K346K346/article/details/127929026
版权归原作者 恋喵大鲤鱼 所有, 如有侵权,请联系我们删除。

“K8S 命令集锦”的评论:

还没有评论