envd-server 的开发指南
envd-server 是 envd 的后端服务。它在 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>