Skip to content

envd-server 的开发指南

envd-serverenvd 的后端服务。它在 Kubernetes 上管理环境并支持多个并发用户。

工作流程

以下是如何在 Kubernetes 上创建 envd 环境的工作流程。

  • 用户在 envd 控制台使用 envd 创建一个环境。
  • envd-server 对环境进行验证,并为在 Kubernetes 上的配置做准备。
  • envd-server 在 Kubernetes 上配置环境。
  • 用户会被通知环境已经准备好了,可以使用。
  • 用户用 ssh 连接到环境。
  • containerssh 是一个 ssh 代理,捕获并转发 ssh 连接到所需的 pod。

开发过程

下面的步骤指导你完成设置过程。如果你有问题,你可以在 discord 上提问,或者发布一个 issue,描述你被卡住的地方,我们会尽力帮助。

首先,你可以运行 envd-server 中的命令来构建和推送开发镜像。

bash
$ BASE_REGISTRY_USER=<username in docker hub> make build-image

之后,你可以用 helm 将 envd-server 和新镜像一起安装:

bash
$ helm install --set image.repository=<username in docker hub>/envd-server --set image.tag=dev envd-server ./manifests

然后将这两个端口转发到 localhost 用于调试:

bash
$ export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=envd-server,app.kubernetes.io/instance=envd-server" -o jsonpath="{.items[0].metadata.name}")
$ kubectl --namespace default port-forward $POD_NAME 8080:8080
$ kubectl --namespace default port-forward $POD_NAME 2222:2222

然后登录到 envd-server,并创建环境以测试其是否工作:

bash
# Create the context to tell envd to use the envd-server to run the environments.
$ envd context create --name envd-server --use --builder docker-container --runner envd-server --runner-address http://localhost:8080
# Build the image, and push it to docker hub.
$ envd build --output type=image,name=docker.io/<username>/<image>,push=true
# login to the envd-server.
$ envd login
# Create the environment and attach to the the environment.
$ envd run --image <username>/<image>

参考资料

Released under the Apache-2.0 License. Built with VitePress.