Nocalhost
一个用来直接在 Kubernetes 集群中构建、测试和调试应用程序
install
- 在应用管理中部署
- IDEA / VS Code 中找 Nocalhost 插件
- 获取 kubeconfig
app config
# .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。