文章目录
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 文档
版权归原作者 恋喵大鲤鱼 所有, 如有侵权,请联系我们删除。