介绍
Kubernetes 是一个容器编排平台,能够自动化容器化应用的部署、扩展和管理。在本实验中,你将探索如何使用 cluster-info 命令来深入了解你的 Kubernetes 集群。通过本实验,你将掌握如何启动 Kubernetes 集群、获取关键的集群信息、检查内部组件以及测试 API 服务器的连接性。
本实验专为初学者设计,无需具备 Kubernetes 的先前经验。
启动 Kubernetes 集群
Kubernetes 集群需要一个运行环境。在本实验中,我们将使用 Minikube,这是一个允许你在本地运行 Kubernetes 集群的工具。请按照以下步骤操作:
打开终端并确保你位于
/home/labex/project目录下:cd ~/project启动 Minikube 集群:
minikube start- Minikube 会创建一个单节点的 Kubernetes 集群。
- 此过程可能需要几分钟,具体取决于你的系统。在初始化过程中,将设置各种 Kubernetes 组件。

获取集群基本信息
Minikube 启动后,使用 kubectl cluster-info 命令查看集群信息。运行以下命令:
kubectl cluster-info
- API server 的 URL 是与集群交互的主要端点。
- CoreDNS 负责集群内的服务发现和 DNS 解析。
示例输出:
Kubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
https://192.168.49.2:8443是 Kubernetes API server 的 URL。所有kubectl命令都会发送到此地址。- CoreDNS 服务帮助 Kubernetes 解析服务和 Pod 的域名。
详细检查集群组件
为了更深入地了解集群及其内部组件,请使用以下命令:
kubectl cluster-info dump
该命令提供关键组件的详细信息:
- etcd:存储所有集群数据的键值存储系统。
- kube-apiserver:Kubernetes API 请求的入口点。
- kube-scheduler:将工作负载(Pod)分配到可用节点。
- kube-controller-manager:维护集群状态(例如,确保运行所需数量的 Pod 副本)。
示例输出:
该命令会生成详细的输出,描述 Kubernetes 系统组件的配置和状态。你可以将输出重定向到文件中以便更轻松地分析:
kubectl cluster-info dump > cluster-details.txt
这将把输出保存到当前目录下的 cluster-details.txt 文件中。
查看集群中的节点
节点是 Kubernetes 中运行工作负载的机器。要列出集群中的节点,请运行以下命令:
kubectl get nodes
- 节点名称(例如
minikube)用于标识机器。 - 状态(
Ready)表示节点健康且可以运行工作负载。 - 在 Minikube 集群中,节点同时充当控制平面(control plane)和工作节点(worker node)。
示例输出:
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 5m v1.20.0
测试 API 服务器访问
API 服务器是 Kubernetes 控制平面的关键组件。你可以通过运行以下命令测试其可访问性:
curl $(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}') --insecure
- 该命令获取 API 服务器的 URL 并对其执行简单的请求。
--insecure标志绕过 SSL 证书验证,在此本地设置中是可以接受的。
示例输出:
如果 API 服务器可访问,响应应如下所示:
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {},
"status": "Failure",
"message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
"reason": "Forbidden",
"details": {},
"code": 403
}
此响应确认 API 服务器正在运行,但由于缺少身份验证而拒绝访问,这是预期的结果。
总结
在本实验中,你学习了如何:
- 使用 Minikube 启动 Kubernetes 集群。
- 使用
kubectl cluster-info获取集群详细信息。 - 使用
kubectl cluster-info dump深入检查集群组件。 - 使用
kubectl get nodes列出集群中的节点。 - 使用
curl命令测试 API 服务器的连接性。
这些动手实践为你理解和探索 Kubernetes 集群奠定了基础。这些命令对于调试和管理 Kubernetes 环境至关重要。
下一步:
- 探索 Kubernetes 中的 Pod 和工作负载。
- 学习如何创建服务以暴露应用程序。
- 尝试在集群中扩展工作负载。
继续练习,祝你学习愉快!


