OpenLens 是一个开源的 Kubernetes IDE(集成开发环境),它让你无需记忆复杂的 kubectl 命令,就能通过图形化界面轻松管理本地或远程的 Kubernetes 集群。
📥 第一部分:安装与准备
1. 前置条件
- 操作系统:Windows, macOS, 或 Linux。
- 依赖工具 :
- kubectl:必须安装并配置好环境变量(OpenLens 内部会调用它)。
- Kubeconfig :确保你本地
~/.kube/config文件中至少有一个可用的集群配置。 - Docker Desktop / Minikube / Kind(可选):如果你想在本地练习,需要先安装其中一个来运行集群。
2. 下载安装
- 官方地址 :访问 OpenLens GitHub Releases 下载对应系统的安装包。
- 安装步骤 :
- Windows/macOS :下载
.exe或.dmg文件,双击运行并按提示安装。 - Linux :下载
.AppImage或.deb/.rpm包进行安装。
- Windows/macOS :下载
- 首次启动 :打开应用,它会自动扫描
~/.kube/config并加载所有可用集群。
🖥️ 第二部分:核心界面导览
启动后,你首先看到的是 Cluster Catalog (集群目录) 页。
1. 集群目录页 (Catalog)
这是你的"总控台",列出所有已识别的集群。
- 列表信息 :
- Name :集群名称(如
docker-desktop,my-aliyun-cluster)。 - Status :连接状态(绿色
Connected表示正常,红色表示失败)。 - Version:K8s 版本。
- Distro :发行版(如
docker-desktop,eks,kubeadm)。
- Name :集群名称(如
- 操作 :
- 双击 任意集群行 → 进入该集群的管理仪表盘。
- 右键/三点菜单 → 可移除集群、编辑配置或查看 YAML。
- + 按钮 → 手动添加新的 Kubeconfig 文件或粘贴配置内容。
2. 集群管理页 (Dashboard)
双击进入后,左侧会出现完整的功能导航栏,这是你日常工作的核心区域。
| 模块 | 功能说明 | 常用场景 |
|---|---|---|
| Overview | 集群概览 | 查看节点状态、资源使用趋势(需 Prometheus)、最近事件。 |
| Workloads ⭐ | 工作负载 | 最常用! 管理 Pods, Deployments, StatefulSets, Jobs, CronJobs。 |
| Network | 网络 | 管理 Services (服务暴露), Ingress (路由规则), Network Policies。 |
| Config | 配置 | 管理 ConfigMaps (配置文件), Secrets (敏感密钥)。 |
| Storage | 存储 | 管理 PersistentVolumeClaims (PVC), StorageClasses。 |
| Namespaces | 命名空间 | 切换不同的逻辑隔离环境(如 default, kube-system, prod)。 |
| Events | 事件流 | 排错第一站! 查看集群内发生的所有警告和错误事件。 |
| Helm | 包管理 | 安装/升级/卸载 Helm Charts(类似应用商店)。 |
| Terminal | 终端 | 内置已配置好 kubectl 的命令行终端,无需切换窗口。 |
🌐 第三部分:连接远程集群
OpenLens 本身不直接"连接"服务器,而是读取本地的 kubeconfig 文件。只要 kubectl 能连上,OpenLens 就能连上。
方法 A:合并 Kubeconfig (推荐)
适用于长期管理多个集群。
- 获取配置 :从云厂商控制台(阿里云/腾讯云/AWS等)或远程服务器 (
/etc/kubernetes/admin.conf) 下载 kubeconfig 文件。 - 合并文件:
bash
# Mac/Linux
export KUBECONFIG=~/.kube/config:~/downloaded-config.yaml
kubectl config view --flatten > ~/.kube/config.new
mv ~/.kube/config.new ~/.kube/config
# Windows (PowerShell)
$env:KUBECONFIG="$env:USERPROFILE\.kube\config;$env:USERPROFILE\downloaded-config.yaml"
kubectl config view --flatten | Out-File -FilePath "$env:USERPROFILE\.kube\config.new"
Move-Item "$env:USERPROFILE\.kube\config.new" "$env:USERPROFILE\.kube\config" -Force
- 重启 OpenLens:新集群会自动出现在 Catalog 列表中。
方法 B:界面手动添加
适用于临时测试。
- 点击 OpenLens 左下角 Settings (⚙️) -> Clusters。
- 点击 + Add Cluster。
- 选择 Paste Kubeconfig 粘贴内容,或 Choose File 上传文件。
- 添加成功后,回到 Catalog 即可看到。
🔍 常见连接问题排查
- Connection Timeout:检查防火墙/安全组,确保你的本地 IP 被允许访问集群 API Server (默认端口 6443)。
- Certificate Expired:证书过期,需重新下载最新的 kubeconfig 或在服务端更新证书。
- Metrics 不可用:如果 CPU/内存图表为空,通常是因为集群未安装 Prometheus。这不影响管理功能,可忽略或自行安装监控组件。
🚀 第四部分:新手实战流程
1. 查看系统组件
- 进入 Workloads → Pods。
- 切换 Namespace 为
kube-system。 - 观察
coredns,etcd,kube-proxy等核心组件的运行状态。
2. 部署第一个应用 (Nginx)
- 方式一 (UI 操作) :
- 进入 Workloads → Deployments。
- 点击右上角 + 号。
- 填写 Name:
my-nginx, Image:nginx:latest, Replicas:1。 - 点击 Create。
- 方式二 (Terminal) :
- 点击底部 Terminal 标签。
- 输入:
kubectl create deployment my-nginx --image=nginx。
3. 暴露服务并访问
- 进入 Network → Services。
- 找到刚才部署的应用(如果没有 Service,需创建一个:
kubectl expose deployment my-nginx --port=80 --type=NodePort)。 - 点击 Service 右侧的 ⋮ 菜单 → 选择 Port Forward。
- 设置本地端口(如 8080),点击启动。
- 浏览器访问
http://localhost:8080即可看到 Nginx 欢迎页。
4. 调试与日志
- 在 Pods 列表点击某个 Pod 名称。
- Logs 标签:实时查看容器输出日志。
- Shell 标签:直接进入容器内部执行命令(如
ls,top)。 - Events 标签:查看该 Pod 相关的调度、启动事件(排错关键)。
💡 第五部分:高效技巧与最佳实践
- 利用搜索框 :
在任意列表页(如 Pods),顶部都有搜索框。支持按名称、标签、状态快速过滤。 - 多集群管理 :
- 给不同环境的集群打标签(右键集群 → Edit Labels),如
env=prod,env=dev。 - 在 Catalog 页搜索
env=prod快速定位生产集群。
- 给不同环境的集群打标签(右键集群 → Edit Labels),如
- YAML 编辑 :
- 在任何资源详情页,点击 YAML 标签可直接查看和编辑原始配置。
- 修改后点击 Save 立即生效(支持热更新)。
- 内置终端 :
- 不要切出软件去开命令行,直接使用底部的 Terminal 标签,它已经自动配置好了当前集群的 context。
- 插件扩展 (Extensions) :
- 点击左侧 Extensions 图标,可以安装社区插件(如 Grafana 集成、额外的图表类型等),增强功能。
❓ 常见问题 (FAQ)
Q: 为什么 CPU/内存图表是空的?
A: OpenLens 依赖 Prometheus 获取监控数据。本地 Docker Desktop 或某些精简集群默认未安装。这不影响部署和管理,如需监控可自行部署 Prometheus Operator。
Q: 可以在 OpenLens 里删除集群吗?
A: 在 Catalog 页点击 "Remove" 只是从列表中移除显示,不会 删除实际的 Kubernetes 集群。删除实际集群需要在服务器端操作。
Q: 权限不足怎么办?
A: 确保你的 kubeconfig 中的用户拥有足够的 RBAC 权限。如果是云集群,可能需要联系管理员授权。
🎉 总结:OpenLens 将复杂的 Kubernetes 命令行操作可视化,极大地降低了学习和运维门槛。从查看日志到部署应用,再到管理多集群,它都是你得力的助手。现在,开始你的 K8s 探索之旅吧!