Skip to main content

Nocalhost

一个用来直接在 Kubernetes 集群中构建、测试和调试应用程序

install

https://nocalhost.dev/docs/installation

  1. 在应用管理中部署
  2. IDEA / VS Code 中找 Nocalhost 插件
  3. 获取 kubeconfig

app config

https://nocalhost.dev/zh-CN/tools

# .nocalhost/config.yaml
name: sat-account
serviceType: deployment
containers:
- name: container-efd5fo
dev:
gitUrl: ""
image: docker.m.daocloud.io/maven:3.9-eclipse-temurin-21
shell: ""
workDir: ""
storageClass: ""
resources: null
persistentVolumeDirs: []
command:
run:
- mvn
- -DskipTests=true
- org.springframework.boot:spring-boot-maven-plugin:4.1.0:run
debug: []
debug:
remoteDebugPort: 5005
language: java
hotReload: false
sync:
type: send
mode: gitIgnore
filePattern: []
ignoreFilePattern: []
env: []
portForward:
- 8000:8000

connect

  • DevMode: 替换容器,影响整个环境
  • DevMode(Duplicate):
  • DevMode(ProxyMode)

DevMode

Replace DevMode

  • 将重复容器数量减少到1个。应用程序只需在一个容器中开发。
  • 用DevImage替换容器镜像。
  • 添加侧边容器。为了将本地源代码同步到容器中,需要在容器中运行文件同步服务器。为了将文件同步过程与业务过程分离(syncthing)

DevMode Duplicate

Replace DevMode 它可能会影响其他团队成员的正常环境使用。其他成员可能只希望访问正常环境而不是开发环境。

  • Nocalhost会创建原始工作负载的副本并继续对其进行开发,而不是修改原始工作负载。
  • 副本及其管理的 Pod将使用与原始工作负载不同的标签,因此不会接收任何试图访问原始工作负载的流量。
  • Duplicate Mode 创建的副本无法被其他服务访问,但它可以直接访问集群中的其他服务。

DevMode ProxyMode

VPN proxy mode

  • Nocalhost将为您提供本地K8s网络环境,您可以直接使用K8s DNS访问K8s服务(例如通过Svc名称直接访问K8s服务)、Pod IP、Svc IP等
  • Nocalhost将拦截指定服务的所有入站流量并将其转发到本地,您可以直接在本地启动业务代码进行开发和调试。

Mesh

使用特殊头信息将流量路由到您的DevMode Pod,其他流量将路由到原始Pod。