kubectl get nodes -o wide
时间: 2024-10-11 08:02:34 浏览: 6
`kubectl get nodes -o wide` 是一个命令,用于获取 Kubernetes 集群中的节点信息,并以宽格式(wide)输出。宽格式意味着除了基本的节点信息,如名称、状态和IP地址之外,还会展示额外的详细字段,比如CPU和内存资源。
运行这个命令的示例如下[^1]:
```shell
[root@k8s-master ~]# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
node1 Ready <roles> 28h v1.20.4 10.0.0.101 CentOS Linux 7 (Core) 3.10.0-1160.13.1.el7.x86_64 containerd://1.4.6
node2 Ready <roles> 28h v1.20.4 10.0.0.102 CentOS Linux 7 (Core) 3.10.0-1160.13.1.el7.x86_64 containerd://1.4.6
```
在这个输出中,你可以看到每个节点的名字(NAME)、其当前状态(STATUS)、角色(ROLES),以及更多信息如创建时间(AGE)、集群版本(VERSION)、外部IP地址、操作系统和内核版本,以及正在使用的容器运行时。
相关问题
清空 my-node 以待维护 将运行在node1运行的pod平滑的赶到其他节点上;
在 Kubernetes 中,清空 `my-node` 节点并迁移正在运行的 Pod 到其他节点通常涉及以下几个步骤:
1. **暂停新Pod调度**:首先,为了防止新的 Pod 自动被调度到该节点,你需要更新节点的标签选择器(label selector),将它从可用性策略(taints)中移除,或者直接暂停其调度功能。
```yaml
kubectl taint nodes my-node node-role.kubernetes.io/master:NoSchedule-
```
2. **迁移现有Pod**:查看当前在 `my-node` 上运行的 Pod 使用命令:
```
kubectl get pods -A -o wide --show-labels --field-selector spec.nodeName=my-node
```
对于每个需要迁移的 Pod,可以手动调度到其他节点,例如:
```
kubectl drain my-node --force --ignore-daemonsets --delete-emptydir-data --timeout=60s
```
或者,如果希望自动完成迁移,可以使用 `kubectl uncordon` 来取消节点的“drain”状态,然后让Kubernetes自动调度。
3. **清理残留资源**:确认所有Pod都已经成功迁移后,检查并删除任何未迁移的遗留资源,如未清理的Volume、持久化卷(Persistent Volumes/PVs)等:
```
kubectl delete pod --all --node=my-node
kubectl delete configmap serviceaccount secrets --namespace=default --node=my-node
```
4. **验证节点状态**:最后,使用 `kubectl get nodes` 确认 `my-node` 已经清空,并检查是否有Pod已经成功迁移到其他节点上。