查看原文
其他

跟着这个教程,轻松在本地调试 Sealos 公有云中的数据库

米开朗基杨 Sealos 2023-12-07

在分布式应用开发过程中,本地调试集群中的数据库是一个常见需求。Sealos 作为一款以 Kubernetes 为内核的云操作系统,提供了在云环境中部署和管理高可用数据库的能力。默认情况下,Sealos 仅允许用户在云环境内部访问数据库资源,不支持从本地或者集群外部进行访问。对于需要直接从他们的开发环境中管理和调试数据库的开发者来说,这可能会造成很大的不便。

为了解决这一问题,本教程将会提供一种方案,让开发者能够在本地环境中调试和管理 Sealos 集群内的数据库。

获取 kubeconfig 文件

kubeconfig 文件是一个配置文件,用于管理对 Kubernetes 集群的访问。这个文件为 kubectl 命令行工具以及其他 Kubernetes 客户端库提供了必要的信息,是连接和管理 Kubernetes 集群的钥匙。而 Sealos 的内核是 Kubernetes,所以我们可以使用这个文件来连接和管理 Sealos 集群。

可以通过以下步骤来获取 Sealos 集群的 kubeconfig:

  1. 浏览器进入 Sealos 桌面:https://cloud.sealos.top
  2. 点击右上角的用户头像。
  3. 在下拉菜单中点击 kubeconfig 右边的复制按钮。

安装 OpenLens

OpenLens 是一款开源的 Kubernetes 集群管理工具,它提供了一个集成开发环境 (IDE) 来控制 Kubernetes 集群。使用 OpenLens 我们就可以通过图形化界面来连接 Sealos 集群了,项目地址:

  • https://github.com/MuhammedKalkan/OpenLens

OpenLens 支持 macOS、Windows 和 Linux,具体安装方法可以参考项目仓库的 README👆。本文以 macOS 为例,安装方法如下:

$ brew install --cask openlens

安装完成后,打开 OpenLens,进入 Catalog 的 Clusters 选项,然后将鼠标悬停在右下角的 “+” 上:

点击 “+” 上方的 “Add from kubeconfig” 按钮:

然后将之前复制的 kubeconfig 内容粘贴到输入框,并点击 “Add cluster”:

点击 “Add to Hotbar” 图标,这个集群就会被固定到左边的侧栏:

点击左侧的集群入口,然后点击 Workloads 中的 Pods,便可以看到自己在 Sealos 云上部署的所有容器

点击 Network 中的 Services,便可以看到所有的 Service,也就是各个应用的集群内网负载均衡入口

开启端口转发

以 MongoDB 为例,我们来演示如何在本地调试 Sealos 中的数据库。

首先,在 OpenLens 的 Services 界面点击 MongoDB 数据库的 Service,在右边打开的窗口中点击 “Forward”:

在弹出的窗口中填入自己本地想要监听的端口,并取消 “Open in Browser”,然后点击 “Start”:

这样就会将 Sealos 中 MongoDB 数据库的 27017 端口转发到本地的 27017 端口,我们就可以通过本地的 27017 端口来访问 Sealos 中的 MongoDB 数据库了。

本地调试 Sealos 中的数据库

浏览器进入 Sealos 桌面,打开数据库 App,进入 MongoDB 数据库的详情页面,点击 connection 下方的连接地址,便会将地址复制到剪切板中:

图中的连接地址为:

mongodb://root:pb2ggdpm@fastgpt-qxfpfpob-mongo-mongodb.ns-sbjre322.svc:27017

我们需要将其修改为:

mongodb://root:pb2ggdpm@127.0.0.1:27017/?directConnection=true

我们将远程的服务地址替换为了本地的地址和端口,并添加了 directConnection=true 参数以允许直接连接 (因为本地地址属于代理地址)。

我们使用 MongoDB 本地客户端访问这个连接地址 (mongodb://root:pb2ggdpm@127.0.0.1:27017/?directConnection=true),就可以调试 Sealos 中的数据库了。

以 MongoDB Compass 客户端为例,macOS 可以通过以下命令安装:

$ brew install mongodb-compass

打开 MongoDB Compass,输入本地连接地址,然后点击 Connect:

连接成功:

通过上述步骤,你现在可以在本地环境中调试 Sealos 集群中的数据库了,你也可以通过此方案将本地数据库的数据迁移到 Sealos 的数据库中

如果您更喜欢使用命令行来操作,可以直接使用 kubectl 来转发端口,参考命令如下:

$ kubectl port-forward svc/{service-name} {local-port}:{remote-port}
  • {service-name} 是您希望在本地访问的远程服务的名称。
  • {local-port} 是您希望将远程服务转发到的本地计算机端口。
  • {remote-port} 是远程服务正在监听的端口。
  • 执行该命令后,您需要保持命令窗口开启,以便维持端口转发过程。

要了解更多关于 kubectl 的端口转发的详细信息,您可以访问 Kubernetes 官方文档,地址如下:

  • https://kubernetes.io/zh-cn/docs/tasks/access-application-cluster/port-forward-access-application-cluster/


加入 Sealos 开源社区体验像个人电脑一样简单的云操作系统



🏠官网链接

https://sealos.run


🐙GitHub 地址

https://github.com/labring/sealos


📑访问 Sealos 文档

https://sealos.run/zh-Hans/docs/Intro


🏘️逛逛论坛

https://forum.laf.run/

往期推荐

将 Llama2 中文模型接入 FastGPT,再将 FastGPT 接入任意 GPT 套壳应用,真刺激!

2023-08-29

一键部署 Umami 统计个人网站访问数据,跟 Google Analytics 说再见

2023-08-10

3 分钟将免费无限制的 Claude 2.0 接入任意 GPT 套壳应用,太香了!

2023-07-28


关于 Sealos

Sealos 是一款以 Kubernetes 为内核的云操作系统发行版。它以云原生的方式,抛弃了传统的云计算架构,转向以 Kubernetes 为云内核的新架构,使企业能够像使用个人电脑一样简单地使用云。


关注 Sealos 公众号与我们一同成长👇👇👇

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存