集群管理
可以在集群主页中执行kubectl
命令管理集群
查看所有命名空间
kubectl get namespace
查看所有的pod
kubectl get pod --all-namespace
查看pod详细信息
kubectl get pods -o wide
查看某个命名空间下的pod,如default
kubectl get pod -n default
根据关键字查找pod,如查找nginx相关的pod
kubectl get pod --all-namespace | grep nginx
查找某个主机上的所有pod,如查找名为webserver主机上的所有pod
kubectl get pods --all-namespace -o wide --field-selector spec.nodeName=webserver
查看所有部署
kubectl get deployment --all-namespace
注:`部署`支持的查询参数与`pod`类似。比较重要的是理解`部署`和`pod`区别。简单的说,如果把`部署`看成一个对象,那么`pod`就是该对象的实例,属于一对多的关系。单独删除一个健康的`pod`是无效的,因为当`k8s`检测到一个健康的`pod`不存在以后,会立即启动恢复机制,恢复被删除的或者不健康的`pod`。所以应该通过删除`部署`来删除其所对应的实例。删除一个部署,如删除一个名为nginx的部署
kubectl delete deployment nginx
kubectl get pod --all-namespaces
显示所有假死pod
kubectl get pod --all-namespace | grep -E 'Terminating|Unknown|Evicted'
强制删除单个pod
kubectl delete pod test-6b8866f678-9tpqh --kubeconfig kube.config --grace-period=0 --force
强制删除所有假死pod
kubectl get pod -A | grep -E 'Terminating|Unknown|Evicted' | awk '{system("kubectl delete pod "$2" -n "$1" --force --grace-period=0")}'
或
kubectl get pod --all-namespaces | grep -E 'Terminating|Unknown|Evicted' | awk '{system("kubectl delete pod "$2" -n "$1" --force --grace-period=0")}'