GoLand 2026.2 Help

教程:将应用程序部署到 minikube 集群

在本教程中,将学习如何通过 minikube 直接在 GoLand 启动本地 Kubernetes 集群,并部署一个示例 Go 应用程序。 在此过程中,您将构建应用程序、创建 Docker 镜像并将其部署到 minikube。

在本地运行 Kubernetes 非常适合原型开发、部署测试和学习 Kubernetes 工作流。 利用 GoLand 中提供的 Docker 和 Kubernetes 支持,无需离开 IDE 就可以启动集群、部署资源以及检查应用程序。

在开始之前

在开始之前,请确保已安装并配置如下内容:

启用必需插件

本教程中用到的功能依赖于以下插件:

该插件默认在 GoLand 中捆绑并启用。 如果相关功能不可用,请确保未禁用该插件。

  1. 按下 Ctrl+Alt+S 打开设置,然后选择 插件

  2. 打开 已安装 选项卡,找到所需插件,并勾选插件名称旁的复选框以启用。

首先,创建一个示例 Go 项目,或在 GoLand 打开现有的 Go 项目。

让我们以一个简单的 Node.js Express 应用程序为例开始。 该应用程序由一个 hello_express.js 文件组成,返回 Hello World! ,并在控制台输出 Example app listening on port 3000!

创建一个示例 Go 应用程序

  1. 创建一个新 Go 项目。

  2. 创建一个 main.go 文件并添加如下代码:

    package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello from GoLand and minikube!") }) http.ListenAndServe(":8080", nil) }

使用 Node.js 创建一个空项目

  1. 请点击 新项目欢迎屏幕或从主菜单中选择 文件 | 新建 | 项目

  2. 在打开的对话框左侧窗格中选择 Node.js

  3. 指定应用程序的位置及其名称,例如 hello_world_docker

  4. 指定要使用的本地 Node.js 运行时。 接受建议的安装,或从列表中选择其他运行时,或者如未安装 Node.js,还可以点击 下载。 了解详情请参见 创建新的 Node.js 应用程序

    使用 Node.js 创建一个空项目
  5. 点击 创建

填充应用程序

  1. 让我们为应用程序创建一个单独的文件夹,这将有助于后续将本地文件夹映射到容器内的文件夹。

    为此,请打开 项目 工具窗口 Alt+1 ,右键点击项目文件夹,从上下文菜单选择 新建 ,然后再选择 目录。 在弹出的对话框中,指定文件夹名称,例如 app

    创建应用程序文件夹
  2. 现在需要创建一个 JavaScript 文件,用于放置应用程序代码。

    app 文件夹的上下文菜单中,选择 新建 ,然后再选择 JavaScript 文件

    创建 JavaScript 文件,右键菜单

    在弹出的对话框中,指定文件的名称,例如 hello_express.js

    创建 JavaScript 文件
  3. 在编辑器中打开新建的 hello_express.js 文件并输入以下代码:

    const express = require('express'); const app = express(); app.get('/', function(req, res) { res.send('Hello World!') }); app.listen(3000,function() { console.log('Example app listening on port 3000!') });
  4. 如你所料, express 引用未被解析,并高亮显示为错误。 不过,将鼠标悬停到该引用时,GoLand 会建议快速修复:

    Express 未安装 - 建议快速修复

    点击 安装 'express' 链接后, express 会被添加到 package.json 文件并完成安装。

    package.json - 已安装 Express

本地运行应用程序

现在我们可以本地运行应用程序,确保其按预期工作。

  • 打开 hello_express.js 文件,在编辑器标签页任意位置右键点击,从上下文菜单选择 运行 'hello_express.js'

    本地运行一个应用程序

    运行 工具窗口打开,并显示 Example app listening on port 3000!

    如在 http://localhost:3000 地址中打开浏览器,可看到页面显示 Hello World! ,结果与预期一致。

    应用程序正在本地运行

构建应用程序

在将应用程序部署到 Kubernetes 之前,需要先构建,并软件包为容器镜像。 本教程中, go build 命令用于编译应用程序源代码并生成可执行文件。

  1. 终端 工具窗口中:前往 视图|工具窗口|终端 或按 Alt+F12

  2. 运行以下命令以构建应用程序:

    go build -o app .
  3. 确保 app 可执行文件出现在项目根目录下。

容器化应用程序

在此步进中,将已构建的应用程序软件包为 Docker 镜像。 Kubernetes 后续会以 pod 形式使用该镜像运行容器。

创建 Dockerfile

  1. 项目 工具窗口 Alt+1 中,右键点击项目根目录,指向 新建 ,并点击 文件

  2. 新建文件… 对话框中,输入 Dockerfile 并按下 Enter

    如有提示,确认将文件添加到 Git。

  3. 请将以下代码粘贴到新的 Dockerfile 中:

    FROM golang:1.26-alpine AS builder WORKDIR /app COPY go.mod ./ RUN go mod download COPY . . RUN go build -o server . FROM alpine:latest WORKDIR /app COPY --from=builder /app/server . EXPOSE 8080 ENTRYPOINT ["./server"]

所创建的 Dockerfile 包含用于分两暂存构建 Docker 镜像的指令。 第一暂存会编译 Go 应用程序。 第二暂存会将已编译的可执行文件复制到轻量级的 Alpine Linux 镜像。

当你从该镜像启动容器时,Docker 会运行 ./server 命令,从而启动 Go 应用程序。

创建 Dockerfile

  1. 在项目文件夹的上下文菜单中选择 新建 ,然后再选择 Dockerfile

    创建 Dockerfile - 上下文菜单
  2. 在新建的 Dockerfile 中输入如下代码:

    FROM node:22-alpine WORKDIR /tmp COPY package*.json . RUN npm ci --omit=dev COPY ./app/ ./app/ CMD ["node","./app/hello_express.js"]

    Dockerfile 包含基于 node:22 镜像从 Docker Hub 构建镜像的操作指令。

    当你从此镜像运行容器时,Docker 会将 /app/ 目录的内容复制到容器内的 /tmp/app/ 目录下(在本例中, /app/ 目录包含 hello_express.js 文件)。 package.json 文件会被复制到 /tmp/

    然后 Docker 将当前工作目录设置为 /tmp 并运行 node ./app/hello_express.js。 最终,容器日志会显示 Example app listening on port 3000!

构建 Docker 镜像

  1. 项目 视图中,在编辑器里打开 Dockerfile

  2. 编辑文件:

    • 更改

      ENV RAILS_ENV="production" \ BUNDLE_DEPLOYMENT="1" \ BUNDLE_PATH="/usr/local/bundle" \ BUNDLE_WITHOUT="development"

      to

      ENV RAILS_ENV="development" \ BUNDLE_PATH="/usr/local/bundle"
    • 更改

      EXPOSE 80 CMD ["./bin/thrust", "./bin/rails", "server"]

      to

      EXPOSE 3000 CMD ["./bin/rails", "server", "-b", "0.0.0.0", "-p", "3000"]
  3. 在 Dockerfile 内侧边栏中,点击 在 Docker 上运行图标 并选择 新建运行配置

    在编辑器中创建新的 Dockerfile 运行/调试配置
  4. 编辑运行配置 对话框中,在 镜像标记 字段中输入 go-minikube-app ,在 容器名称 字段中输入 go-minikube。 然后,点击 运行

GoLand 创建一个 Dockerfile 运行配置 ,该配置从 Dockerfile 构建一个镜像,然后基于该镜像运行一个容器。 要查看整个过程,请在 日志 选项卡中打开 服务 工具窗口。

在服务工具窗口中切换日志选项卡

连接到 minikube

现在你已有包含应用程序的 Docker 镜像,需要启动本地 Kubernetes 集群用于部署。 我们将使用 minikube 从 GoLand 直接运行一个本地单节点 Kubernetes 集群。

使用 Docker 驱动启动 minikube

  1. 终端 工具窗口中:前往 视图|工具窗口|终端 或按 Alt+F12

  2. 运行以下命令以启动本地 Kubernetes 集群,并让 minikube 使用 Docker 作为虚拟化驱动:

    minikube start --driver=docker
  3. 通过运行如下命令确认集群已启动且可用:

    minikube status

使用 Docker 驱动会在 Docker 容器中运行 minikube 集群,为本地开发提供了轻量环境。

将 minikube 集群添加到 GoLand

  1. 打开 Services工具窗口:转到 查看 | 工具窗口 | 服务 或按 Alt+8

  2. 选择 Kubernetes 节点,点击 添加集群 按钮,再从上下文菜单选择 来自默认目录

    在服务工具窗口的 Kubernetes 欢迎屏幕添加新集群
  3. 添加集群 对话框中,选择 minikube},{ 并点击 添加集群

    添加的集群将在 服务 工具窗口中可用。

  4. 服务 工具窗口内,右键点击 minikube 集群后,选择 连接集群

    连接到 minikube 集群

此时,GoLand 已连接到正在运行的 minikube 集群,可以显示其 Kubernetes 资源。 可以在 服务 工具窗口直接查看命名空间、节点等集群对象。

部署应用程序

在教程前面,你已经 本地构建了应用程序镜像。 但 minikube 集群无法自动访问本地 Docker daemon 的镜像。 需要将该镜像加载到 minikube,才可使用。

将 Docker 镜像加载到 minikube

  1. 终端 工具窗口中:前往 视图|工具窗口|终端 或按 Alt+F12

  2. 在 minikube 中运行以下命令来构建容器镜像:

    minikube image load go-minikube-app
  3. 通过运行以下命令,验证 go-minikube-app 镜像是否在您的集群中可用:

    minikube image ls | grep go-minikube-app

    您应当在输出中看到 docker.io/library/go-minikube-app:latest

现在镜像已在 minikube 可用,下一步是描述 Kubernetes 将如何运行它。 让我们创建两个 Kubernetes 清单:

  • 部署,它可以帮助您在 pod 中运行容器

  • Service,用于 Exposed 应用,从你的计算机访问

创建部署清单

  1. 项目 工具窗口(Alt+1 )中,右键点击项目名称并选择 新建 Kubernetes 资源

  2. 新建 Kubernetes 资源 对话框中,选择 部署 文件类型,将 go-minikube-deployment 设为清单名称,然后按 Enter

    创建新部署

    如有提示,确认将文件添加到 Git。

  3. 将生成的 go-minikube-deployment.yaml 文件内容替换为以下代码:

    apiVersion: apps/v1 kind: Deployment metadata: name: go-minikube spec: replicas: 1 selector: matchLabels: app: go-minikube template: metadata: labels: app: go-minikube spec: containers: - name: go-minikube image: go-minikube-app:latest imagePullPolicy: IfNotPresent ports: - containerPort: 8080
  4. 浮动工具栏中,选择当前集群和命名空间,然后点击 应用图标Apply 以将更改部署到本地集群。

    浮动工具栏上的 Apply 按钮

创建服务清单

  1. 项目 工具窗口(Alt+1 )中,右键点击项目名称并选择 新建 Kubernetes 资源

  2. 新建 Kubernetes 资源 对话框中,选择 Service 文件类型,将 go-minikube-service 设为清单名称,然后按 Enter

    如有提示,确认将文件添加到 Git。

  3. 将生成的 go-minikube-service.yaml 文件内容替换为以下代码:

    apiVersion: v1 kind: Service metadata: name: go-minikube spec: type: NodePort selector: app: go-minikube ports: - port: 8080 targetPort: 8080
  4. 浮动工具栏中,选择当前集群和命名空间,然后点击 应用图标Apply 以将更改部署到本地集群。

访问应用程序

  1. 在编辑器中打开 go-minikube-deployment.yaml 文件。

  2. 点击 端口转发 属性旁边的嵌入提示,位于 - containerPort: 8080 属性旁。

  3. 端口转发 对话框中,保留默认值并点击 前进

  4. go-minikube-deployment.yaml 文件中,点击 在浏览器中打开 嵌入提示。

    在服务工具窗口启动新的端口转发会话

    GoLand 会将您重定向到默认浏览器,在那里可以检查部署在本地 minikube 集群中的 Go 应用程序。

您已经学会如何使用 minikube 和 GoLand 将 Go 应用程序部署到本地 Kubernetes 集群。 这种方法可启用本地对 Kubernetes 的快速测试和实验,而无需远程集群。

后续步骤

您可以通过以下主题了解如何使用 Kubernetes:

2026年 7月 14日