Skip to content

在 Kubernetes 中,安装的 kubectl 是客户端工具,而 Kubernetes 集群本身是服务端。以下是详细解析:


1. 核心组件分工

组件角色安装位置
kubectl客户端命令行工具,用于与集群交互(如部署应用、查看资源)安装在本地电脑或跳板机
Kubernetes 集群服务端,包含 Control Plane(API Server、Scheduler 等)和 Worker Node运行在服务器/云平台/本地虚拟机

2. 常见安装场景分析

(1) 仅安装 kubectl(纯客户端)

bash
# 安装 kubectl(不包含集群)
brew install kubectl          # macOS
choco install kubernetes-cli  # Windows
apt-get install kubectl       # Ubuntu

用途:连接远程已有的 Kubernetes 集群(如云厂商的 EKS/GKE/AKS)。 • 验证:运行 kubectl cluster-info,若显示 Unable to connect to the server,说明未配置集群。

(2) 安装单机集群(客户端+服务端)

Docker Desktop(内置单节点集群):

bash
# 启用 Kubernetes
Settings -> Kubernetes -> Enable Kubernetes

Minikube(本地开发集群):

bash
minikube start  # 自动安装 kubectl 并创建本地集群

(3) 生产级集群(多节点服务端)

云托管服务(如 EKS/GKE/AKS):通过云控制台创建集群,本地仅需 kubectl 连接。 • 自建集群(如 kubeadm):

bash
# 在服务器上初始化 Control Plane
kubeadm init --pod-network-cidr=10.244.0.0/16

3. 如何判断当前环境?

命令结果说明
kubectl version --short显示客户端 (Client) 和服务端 (Server) 版本,若只有 Client 则是纯客户端
kubectl cluster-info显示集群地址和状态,若报错则未连接集群
kubectl get nodes列出集群节点,空结果或报错表示未配置正确集群

4. 连接现有集群的步骤

若已有集群,需将集群配置写入 ~/.kube/config

bash
# 从集群管理员处获取 kubeconfig 文件(通常包含证书和API地址)
# 方法一:直接合并配置
mkdir -p ~/.kube
cp /path/to/cluster-config ~/.kube/config

# 方法二:手动添加配置
kubectl config set-cluster my-cluster --server=https://1.2.3.4:6443 --certificate-authority=ca.crt
kubectl config set-credentials my-user --client-certificate=user.crt --client-key=user.key
kubectl config set-context my-context --cluster=my-cluster --user=my-user
kubectl config use-context my-context

5. 关键结论

• ✅ kubectl 是客户端工具:无论集群在哪,都需要它来操作 Kubernetes。 • 🖥️ 集群是服务端:可以运行在本地、云平台或物理服务器。 • 🔗 两者关系kubectl 通过 kubeconfig 文件认证并访问集群的 API Server。


常见问题

Q1: 可以只安装集群不装 kubectl 吗?

• 可以,但无法直接管理集群(需通过其他节点的 kubectl 或 API 调用)。

Q2: 为什么 kubectl get pods 返回空?

• 可能原因:
• 未切换到正确的上下文 (kubectl config use-context)
• 当前命名空间无 Pod (kubectl get pods -A 查看所有命名空间)

Q3: 如何安全卸载集群?

Minikube: minikube delete
Docker Desktop: 关闭 Kubernetes 功能
云集群: 通过云控制台删除

✨ 网站运行时间: 3年11月15天 ❤️ 道阻且长,行则将至 - 微信号: heikedreamer