MacBook 配置 kubectl 连接 K8s 集群
环境信息
- 集群 VIP: 10.0.5.10 (HAProxy + Keepalived)
- Master 节点: 10.0.5.1 / 10.0.5.2 / 10.0.5.3
- SSH 密码: a110120119
配置步骤
1. 安装 kubectl(如果还没装)
brew install kubectl
# 验证安装
kubectl version --client2. 创建 kubeconfig 目录
mkdir -p ~/.kube3. 下载集群配置文件
从任意 Master 节点复制 admin.conf 到本地:
# 使用 sshpass 自动输入密码(需先安装: brew install sshpass)
sshpass -p 'a110120119' ssh -o StrictHostKeyChecking=no root@10.0.5.1 'cat /etc/kubernetes/admin.conf' > ~/.kube/config或者手动复制:
# SSH 到 master 节点
ssh root@10.0.5.1
# 查看配置文件内容
cat /etc/kubernetes/admin.conf
# 复制内容到本地 ~/.kube/config 文件4. 修改 server 地址(关键!)
原配置使用的是 lb-vip 域名:
server: https://lb-vip:6443由于 API Server 证书没有包含 VIP (10.0.5.10),需要改为直接使用 Master IP:
# 修改为 Master-01 的 IP
sed -i '' 's|server: https://lb-vip:6443|server: https://10.0.5.1:6443|' ~/.kube/config注意: 如果集群证书包含了 VIP,可以直接使用
https://10.0.5.10:6443实现高可用。
5. 验证连接
# 测试连接
kubectl get nodes
# 预期输出
NAME STATUS ROLES AGE VERSION
k8s-master-01 Ready control-plane 11h v1.30.14
k8s-master-02 Ready control-plane 11h v1.30.14
k8s-master-03 Ready control-plane 11h v1.30.14
k8s-node-01 Ready <none> 11h v1.30.14
k8s-node-02 Ready <none> 11h v1.30.14
k8s-node-03 Ready <none> 11h v1.30.14常见问题
Q1: 证书错误(x509: certificate is valid for…)
原因: API Server 证书没有包含你使用的 IP/域名
解决:
- 使用证书中包含的 IP(如 10.0.5.1/2/3)
- 或重新生成证书包含 VIP
Q2: 连接超时
检查:
# 测试网络连通性
ping 10.0.5.1
# 测试端口
nc -zv 10.0.5.1 6443Q3: 权限不足
解决: 确保使用的是 admin.conf(集群管理员权限)
可选:配置命令补全
# Bash
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
# Zsh (Mac 默认)
source <(kubectl completion zsh)
echo "source <(kubectl completion zsh)" >> ~/.zshrc完整命令速查
# 一键配置(复制粘贴执行)
mkdir -p ~/.kube
sshpass -p 'a110120119' ssh -o StrictHostKeyChecking=no root@10.0.5.1 'cat /etc/kubernetes/admin.conf' > ~/.kube/config
sed -i '' 's|server: https://lb-vip:6443|server: https://10.0.5.1:6443|' ~/.kube/config
kubectl get nodes配置完成!现在可以在 MacBook 上直接管理 K8s 集群了。