ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Agones Make Reference 全指南:构建系统变量、Target 与开发工作流速查手册

Agones Make Reference 全指南:构建系统变量、Target 与开发工作流速查手册 游戏开发云原生【免费下载链接】agonesDedicated Game Server Hosting and Scaling for Multiplayer Games on Kubernetes项目地址https://gitcode.com/gh_mirrors/ag/agones点击查看免费下载本文是 Agones 构建系统的完整参考手册围绕仓库中的 build/docs/make-reference.md 展开系统讲解其全部 Make 变量、Make Target、环境适配细节与实战用法。无论你是要在本地跑通make build构建镜像、用 Minikube/Kind/GKE 搭建测试集群并安装 Agones、执行 SDK 一致性测试与 e2e 测试还是为各服务controller、extensions、ping、allocator、processor、SDK 侧车配置 Delve 远程调试读完本文你都能照着命令直接操作并理解每条命令背后的真实实现。引言Agones 的构建系统是如何组织的Agones 是一个运行在 Kubernetes 之上的专用游戏服务器托管与弹性伸缩项目其日常的构建、测试、安装、压测和发布流程全部收敛在仓库根目录的 build/Makefile 中。这份文件本身并非一座孤岛它通过include ./includes/*.mk的方式按平台与主题拆分了大量子 Makefile例如 build/includes/minikube.mkMinikube 相关 target、build/includes/kind.mkKind 相关 target、build/includes/google-cloud.mkGCP/GKE 与 Terraform 相关 target、build/includes/sdk.mkSDK 构建与一致性测试、build/includes/website.mk文档站点、build/includes/examples.mk示例游戏服务器镜像等。它支持通过环境变量或命令行参数覆写几乎所有变量文档 build/docs/make-reference.md 就是这份变量与 target 的权威速查表。绝大多数命令在**构建容器build image**内执行容器内预装了 Go 工具链、kubectl、helm、protoc、golangci-lint 等开发工具所有 target 都会在镜像不存在时自动创建ensure-build-image依赖链见 build/includes/build-image.mk。文档中给出了一张快速索引原文档中与本文同源故不再重复引用路径下文将按「变量参考 → Target 参考 → 三大本地集群工作流 → 调试与监控」的顺序展开每节都会给出可以直接复制的命令。一、Make 变量参考以下变量均可在调用 target 时以make target VARvalue的形式覆写或提前在环境变量中导出。变量含义默认值VERSION本次构建的版本号最新提交的 7 位短哈希形如1.62.0-dev-xxxxxxxREGISTRY存放 Docker 镜像的仓库无默认值必须显式设置源码中默认local见 build/MakefileCHARTS_REGISTRY存放 Helm 包的 Chart 仓库无默认值未设置时使用GCP_BUCKET_CHARTS默认为agones-chartKUBECONFIG访问集群用的 kubeconfig 路径~/.kube/configkubectl 默认文件CLUSTER_NAME与之工作的gcloud测试集群名test-cluster源码中对应GCP_CLUSTER_NAME见 build/MakefileGCP_PROJECT部署 GKE 集群的 GCP 项目gcloud 默认项目GKE_PASSWORD指定后开启 basic auth用户名admin则禁用空IMAGE_PULL_SECRET拉取 Agones 镜像所需 secret 名称不设置则不用空IMAGE_PULL_SECRET_FILE包含拉取 secret 的文件的完整路径设置后make install会把它同时装进agones-system拉取 controller 镜像与default拉取 sdk 镜像两个命名空间空WITH_WINDOWS是否构建 Windows 容器镜像1默认启用WINDOWS_VERSIONS构建的 Windows Server 版本列表ltsc2019 ltsc2022源码见 build/MakefileWITH_ARM64是否构建 ARM64 容器镜像1默认启用MINIKUBE_DRIVERMinikube 使用的虚拟机驱动docker见 build/includes/minikube.mk补充几个文档未列出但非常常用的变量它们在源码 build/Makefile 与各 include 文件中均有定义GCP_CLUSTER_ZONE默认us-west1-c、GCP_CLUSTER_LOCATION默认等于 zone、GCP_BUCKET_CHARTS默认agones-chartMINIKUBE_PROFILE/KIND_PROFILE均默认agones分别见 build/includes/minikube.mk 与 build/Makefile用于指定本地集群的名字SDK_FOLDER默认go见 build/includes/sdk.mk用于指定要构建/测试的 SDK 类型ARGS用于向go test传递参数典型用于挑选 e2e 子测试GS_TEST_IMAGE默认us-docker.pkg.dev/agones-images/examples/simple-game-server:0.44e2e 测试使用的游戏服务器镜像STRESS_TEST_LEVEL默认20压测等级 1~100STRESS_TEST_LEVELn需要 50n~100n 个 simple-game-server 的容量见 build/MakefileBETA_FEATURE_GATES/ALPHA_FEATURE_GATESbeta/alpha 特性门控集合源码中与 pkg/util/runtime/features.go 的featureDefaults保持同步见 build/MakefilePASSWORD安装 Grafana 时自定义密码。版本号机制VERSION由 build/Makefile 计算VERSION ? $(base_version)-dev-$(shell git rev-parse --short7 HEAD)其中base_version 1.62.0是下一个发布版本的占位。也就是说日常开发构建的版本号是基线版本 dev 最新提交短哈希例如1.62.0-dev-abc1234。这个VERSION不仅用于镜像 tag如$(REGISTRY)/agones-controller:$(VERSION)还会通过-ldflags -X agones.dev/agones/pkg.Version$(VERSION)注入到二进制中build/Makefile。镜像与架构变量构建系统为每个服务维护了一组带架构后缀的镜像 tagbuild/Makefilecontroller_tag、extensions_tag、sidecar_tagSDK 侧车、allocator_tag、ping_tag、processor_tag的基础 tag 均为$(REGISTRY)/agones-service:$(VERSION)各服务另有-amd64/-arm64后缀 tagSDK 侧车在开启WITH_WINDOWS时还会生成VERSION-linux-amd64/-linux-arm64以及按 Windows 版本命名的-windows_amd64-ltsc2019|ltsc2022tag构建 multi-arch manifest 的列表由WITH_WINDOWS/WITH_ARM64动态拼接build/Makefile。关于 Windows 与 ARM64 的默认行为文档明确WITH_WINDOWS与WITH_ARM64在源码中默认就是1build/Makefile等价于隐式执行make WITH_WINDOWS1 WITH_ARM641 build-images。若需要禁用某一种架构显式传0即可make WITH_WINDOWS0 build-images # 不构建 Windows 镜像 make WITH_ARM640 build-images # 不构建 ARM64 镜像Windows 版本列表WINDOWS_VERSIONS ltsc2019 ltsc2022基础镜像为mcr.microsoft.com/windows/servercore由于微软 Windows 容器仓库存在已知问题LTSC2019 还被固定到了指定 sha 的镜像 tagbuild/Makefile。私有仓库拉取镜像Pull Secret当镜像存放在私有仓库时用IMAGE_PULL_SECRET指定 secret 名称或用IMAGE_PULL_SECRET_FILE给出包含该 secret 的文件完整路径。后者生效后make install会在安装时把 secret 同步创建到agones-system供 controller 等组件拉取和default供游戏服务器 pod 内的 SDK 侧车拉取两个命名空间。从 build/Makefile 可以看到installtarget 会把IMAGE_PULL_SECRET通过 Helm 参数--set agones.image.controller.pullSecret$(IMAGE_PULL_SECRET)传入。二、Make Target 参考按用途分组文档将所有 target 划分为若干组下文沿用其分组并补充源码级细节。所有 target 都会在需要时自动创建构建镜像。1. 开发DevelopmentTarget构建类Target作用make build构建 Agones 全部镜像与全部 SDKmake build-images仅构建全部镜像controller、extensions、sdk sidecar、ping、allocator、processormake build-debug-images为全部服务构建带 Delve 调试器的镜像暴露调试端口供远程调试make build-sdks构建全部 SDKmake build-sdk SDK_FOLDERcpp构建指定 SDK例如SDK_FOLDERcpp会构建 cpp SDK 的静态/动态库仅 Linuxmake run-sdk-command COMMANDgen SDK_FOLDERrestapi对指定 SDK 执行命令例如修改 swagger.json 后重新生成 swagger 代码make build-examples对examples下所有子目录执行make buildmake build-controller-image/make build-agones-sdk-image/make build-ping-image分别编译对应组件二进制并构建其 Docker 镜像源码对应关系buildbuild-imagesbuild-sdksbuild-images又由六个子镜像 target 组合而成build/Makefilebuild-debug-images同样由六个*-debug-imagetarget 组合它们通过GO_BUILD_TAGS -gcflagsall-N -l关闭编译优化并保留调试符号build/Makefile二进制统一在构建容器内以go build -modvendor -buildvcsfalse编译go_build_cmdbuild/Makefile并可按GOOS/GOARCH交叉编译 Linux amd64/arm64、darwin amd64/arm64、windows amd64build/Makefile。SDK 一致性测试ConformanceTarget作用make run-sdk-conformance-local运行 Agones sidecar等待 SDK 客户端的全部请求注意 annotation 需包含 UID、label 需包含 CreationTimestamp 才能通过make run-sdk-conformance-no-build只运行指定 SDK 的一致性测试不构建make run-sdk-conformance-test构建、运行并清理指定 SDK 的一致性测试make run-sdk-conformance-tests运行全部 SDK 一致性测试sidecar 以测试模式运行并记录所有 gRPC 请求与所有 SDK 测试客户端逐一比对覆盖全部方法make clean-sdk-conformance-tests清理一致性测试产生的遗留二进制与包文件一致性测试的本质是验证各语言 SDKGo、C、C#、Node.js、Python、Rust、Unity、Unreal 等见 sdks/与 Agones sidecar 的 gRPC 协议完全兼容sidecar 记录收到的全部请求再与客户端应产生的请求序列比对任何一个方法不匹配都会失败。这与 test/sdk/ 下各语言的测试实现对应。测试与质量Target作用make test运行 Go 测试、SDK 测试、站点测试与 YAML 测试make test-go仅运行 Go 测试make lint对 Go 代码做 lint默认超时LINT_TIMEOUT15m通过golangci-lint执行见 build/Makefilemake test-gen-api-docs校验生成的 Agones CRD API 参考文档 与当前版本一致用于 CImake gen-api-docs生成 CRD API 参考文档并自动设置featureshortcode 版本make gen-install从 Helm 模板生成 install/yaml/install.yamlmake gen-embedded-openapi生成内置对象的 OpenAPI spec如PodTemplateSpec、ObjectMeta建议在全新集群上运行避免外部 CRD/模式干扰make gen-crd-code生成 CRD 客户端、conversion、deepcopy 与 defaults 代码make gen-allocation-grpc生成 allocator 的 gRPC 代码make gen-all-sdk-grpc为全部 SDK 生成 gRPC server/client 代码make gen-sdk-grpc为单个 SDKSDK_FOLDER指定生成 gRPC 代码test-go实际运行pkg/...、sdks/go/...、cmd/...的测试build/Makefile注意sdks/go/...而非sdks/...是为了避免 go test 与并发运行的 cargo 构建在sdks/rust/target/目录上产生竞争源码注释明确说明。make test还包含test-install-yaml它会对install.yaml排序后与make gen-install重新生成的版本做diff不一致即报错并要求重新生成build/Makefile因此改过 Helm 模板后必须记得跑make gen-install。站点文档网站Target作用make site-server本地生成 agones.dev 网站并托管在http://localhost:1313make hugo-test检查网站内的链接make site-test检查网站链接含test-gen-api-docsmake site-images根据 site/static/diagrams 下的 dot/puml 图生成站点图片安装、卸载与推送Target作用make push把所有已构建镜像推送到$(REGISTRY)make install将当前开发版本安装进 Kubernetes 集群make uninstall从集群移除 Agonesmake update-allocation-certs用 Allocation LoadBalancer 的 IP 更新安装为 Allocation gRPC 端点签发有效证书证书从测试集群下载并存放到 build/allocationinstall的源码实现非常有信息量build/Makefile它先检查agones-system中既有的 helm release 状态若 release 处于非deployed/not-found的异常状态会先卸载清理避免失败安装残留然后以helm upgrade --install --rollback-on-failure --wait --timeout 10m安装把VERSION/REGISTRY、拉取策略Always、PING_SERVICE_TYPELoadBalancer、ALLOCATOR_SERVICE_TYPELoadBalancer、CRD_CLEANUPtrue、LOG_LEVELdebug、默认 alpha 特性门控、ServiceMonitor 开关默认关闭等一次性注入安装失败时自动收集helm ls、pod 状态、kubectl describe与近期事件并输出方便排查。观测Prometheus 与 GrafanaTarget作用make setup-prometheus用 Prometheus Community chart 安装 Prometheus默认关闭 exporters 与 alertmanager用于采集 Agones Metricsmake setup-prometheus-stack用同一 chart 安装 Prometheus-stack默认只装 prometheus 与 grafana其余关闭可通过 ServiceMonitor 采集指标make setup-grafana用 grafana community chart 安装 Grafana并配置带 Prometheus 数据源的 Agones dashboards密码可用PASSWORD变量自定义make helm-repo-update执行helm repo update拉取最新 chartsmake prometheus-portforward端口转发到 Prometheus deployment9090 为 UI 端口Windows/macOS 需预先安装 kubectlmake grafana-portforward端口转发到 Grafana deployment3000 为 UI 端口make controller-portforward端口转发到 controller deployment 的指定端口默认 8080用于 controller 指标make pprof-cpu-web启动 pprof 的 CPU profiling 网页make pprof-heap-web启动 pprof 的 heap profiling 网页开发容器与工具Target作用make shell进入包含全部开发工具Go 工具链、kubectl 等与源码的交互式 bash 容器make pkgsite在 8888 端口运行 pkgsite 容器shell使用的就是DOCKER_RUN定义的那个构建镜像容器挂载了源码目录、kubeconfig、helm 配置与 Go 模块缓存common_mountsbuild/Makefile。2. 构建镜像Build ImageTargetTarget作用make build-build-image创建构建用的 Docker 镜像make clean-build-image删除本地构建镜像make clean-config清理 Kubernetes 与 gcloud 配置源码中ensure-build-image会在镜像缺失时自动拉起依赖链build/includes/build-image.mk这就是所有 target 都会创建构建镜像这一行为的实现。构建镜像的 tag 由 Dockerfile 的哈希决定build_version $(call sha,...)build/Makefile因此 Dockerfile 变更会自动触发重建。3. Google Cloud PlatformGCP/GKETargetTarget作用make gcloud-init初始化 gcloud 登录与项目配置make gcloud-test-cluster创建并认证一个 GKE 集群make clean-gcloud-test-cluster删除gcloud-test-cluster创建的 GKE 集群make gcloud-auth-cluster拉取 kubectl 访问集群的认证信息集群名可用CLUSTER_NAME指定默认test-clustermake gcloud-auth-docker创建访问 GCR 的短期凭证以便直接docker push常与make push配合使用gcloud-test-cluster支持通过变量控制节点池初始节点数、机器类型、镜像流式传输、自动伸缩及最小/最大节点数、Windows 节点数等见 build/includes/google-cloud.mk默认值例如GCP_CLUSTER_NODEPOOL_INITIALNODECOUNT4、GCP_CLUSTER_NODEPOOL_MACHINETYPEe2-standard-4。4. Terraform Target以下 target 使用googleTerraform provider 在 GCP 上部署 GKE 集群Target作用make gcloud-terraform-cluster创建 GKE 集群并安装 helm 仓库中指定版本的 Agonesmake gcloud-terraform-install创建 GKE 集群并安装当前版本 Agones当前版本需先构建并推送make build-images→make pushmake gcloud-terraform-destroy-cluster对集群执行terraform destroymake terraform-clean移除.terraform目录含配置与 tfstate 文件创建带 basic auth 的集群并安装[GKE_PASSWORDYOUR_PASSWORD] make gcloud-terraform-cluster其中YOUR_PASSWORD至少 16 个字符省略GKE_PASSWORD则禁用 basic auth。此外可通过 tfvars 文件修改ports7000-8000等设置可在 build/terraform.tfvars 中写passwordYOUR_PASSWORD通过AGONES_VERSION指定要安装的 Agones 版本。gcloud-terraform-install会使用--set agones.image.sdk.alwaysPulltrue、IMAGE_PULL_POLICYAlways、CRD_CLEANUPtrue等参数build/includes/google-cloud.mk因为镜像刚推到私有仓库、需要强制拉取。5. Minikube TargetMinikube 在本地运行因此有专属 target 替代上面的标准 targetTarget作用make minikube-test-cluster切换到agonesprofile 并启动指定 Kubernetes 版本的集群默认驱动docker可用MINIKUBE_DRIVER换驱动make minikube-install安装当前开发版本替代make install关闭 install.yaml 上的 PullAlwaysmake minikube-push把已构建镜像用minikube image load推入agones实例make minikube-setup-prometheus替代make setup-prometheus关闭 Persistent Volume Claimmake minikube-setup-grafana替代make setup-grafana关闭 PVCmake minikube-setup-prometheus-stack替代make setup-prometheus-stack关闭 PVCmake minikube-prometheus-portforwardMinikube 版prometheus-portforwardmake minikube-grafana-portforwardMinikube 版grafana-portforwardmake minikube-test-e2e对已安装版本运行端到端测试make minikube-shell连接 Minikube 需要增强权限用它替代make shell进入交互 shellmake minikube-controller-portforwardMinikube 版controller-portforwardmake minikube-install-debug以调试模式安装全部服务 1 副本 调试镜像make minikube-debug-portforward为全部服务建立远程调试端口转发make minikube-debug-sdk-portforward为游戏服务器 pod 内的 SDK 侧车建立调试端口转发minikube-test-cluster的源码实现build/includes/minikube.mk会执行minikube start --kubernetes-version v1.35.6 -p agones --driver docker随后自动拉起minikube tunnelminikube-install实际是复用make install并覆写IMAGE_PULL_POLICYIfNotPresent、ALWAYS_PULL_SIDECARfalsebuild/includes/minikube.mk这正是它关闭 PullAlways的原因minikube-push则逐一minikube image load六个镜像并打上无架构后缀的 tagbuild/includes/minikube.mk。⚠ 运行全部 e2e 测试常会压垮本地 Minikube 集群请谨慎使用建议参考 Building and Testing Guide 按需挑选单个测试来跑。6. Kind TargetKindKubernetes IN Docker用 Docker 容器充当集群节点同样提供一组本地专用 targetTarget作用make kind-test-cluster启动本地 Kubernetes 集群make kind-delete-cluster可删除KIND_PROFILE可改集群名make kind-push把已构建镜像推入 Kind 集群make kind-install安装当前开发版本替代make install关闭 PullAlwaysmake kind-setup-prometheus替代make setup-prometheus关闭 PVCmake kind-setup-grafana替代make setup-grafana关闭 PVCmake kind-setup-prometheus-stack替代make setup-prometheus-stack关闭 PVCmake kind-prometheus-portforwardKind 版prometheus-portforwardmake kind-grafana-portforwardKind 版grafana-portforwardmake kind-test-e2e对已安装版本运行端到端测试make kind-shellKind 版shell连接 Kind 需要增强权限make kind-controller-portforwardKind 版controller-portforwardkind-test-cluster会在同名集群不存在时用kind create cluster --name $(KIND_PROFILE) --image kindest/node:v1.35.6 --wait 5m创建build/includes/kind.mk。7. e2e 测试 Target 的完整矩阵端到端测试在「通用集群 / Minikube / Kind」三套环境各有入口这里统一列出环境运行命令通用make test-e2e、make test-e2e-integration、make test-e2e-failure、make test-e2e-allocator-crashMinikubemake minikube-test-e2eKindmake kind-test-e2e细节与源码对应test-e2e依次串联 integration、failure、ha-extensions、allocator-crash 四个子测试build/Makefile分别对应 test/e2e/、test/e2e/controller/、test/e2e/extensions/、test/e2e/allocator/ 下的测试它们使用KUBECONFIG定位目标集群GAMESERVERS_NAMESPACE可为空为空时自动创建随机命名空间通过ARGS向go test传参例如只跑TestGameServerReservemake test-e2e-integration ARGS-run TestGameServerReserve还支持GO_E2E_TEST_ARGS传给测试二进制默认注入--kubeconfig、GOTESTSUM_ARGS启用 gotestsum 时、FEATURE_GATES、CLOUD_PRODUCT默认generic、--pullsecret等build/Makefileminikube-test-e2e/kind-test-e2e只是给test-e2e额外加上了--networkhost与 Minikube 证书挂载等 Docker 运行参数build/includes/minikube.mk。三、端到端工作流实战从零构建到安装综合上面全部 target一条典型的本地开发链路是# 1. 构建全部镜像与 SDK make build # 2.可选只构建镜像 make build-images # 3. 推送到你的 registry make push REGISTRYyour.registry.example/agones # 4. 安装到已配置好 kubeconfig 的集群 make install REGISTRYyour.registry.example/agones # 5. 跑一遍完整的 Go 测试 make test-go # 6. 跑 e2e 集成测试可只挑一个用例 make test-e2e-integration ARGS-run TestGameServerReserve在 Minikube 上则是另一条路径make minikube-test-cluster # 启动本地集群 make build # 或 make build-images make minikube-push # 把镜像载入 minikube make minikube-install # 安装关闭 PullAlways make minikube-test-e2e # 端到端测试注意资源消耗 make minikube-shell # 进入带增强权限的开发 shell在 Kind 上几乎等价把命令前缀换成kind-即可make kind-test-cluster→make kind-push→make kind-install→make kind-test-e2e。如果需要观测指标安装后追加make setup-prometheus # 安装 Prometheus make setup-grafana PASSWORD你的密码 # 安装 Grafana Agones 面板 make prometheus-portforward # 打开 Prometheus UI9090 make grafana-portforward # 打开 Grafana UI3000Minikube/Kind 用户请使用minikube-setup-*/kind-setup-*版本它们关闭了本地环境不支持的 PVC。四、远程调试Delve 调试镜像与端口转发Agones 为 controller、extensions、ping、allocator、processor 五个服务以及游戏服务器内的 SDK 侧车都提供了基于 Delve 的远程调试支持。构建调试镜像make build-debug-images会为六个服务含 SDK 侧车构建带 Go 调试器、暴露调试端口的镜像build/Makefile。以调试模式安装Minikubemake minikube-install-debug它会把各服务副本数都设为 1并配合调试镜像安装build/includes/minikube.mk。建立调试端口转发make minikube-debug-portforward各服务默认端口映射如下build/includes/minikube.mk服务本地端口目标Controllerlocalhost:2346agones-controller:2346Extensionslocalhost:2347agones-extensions:2346Pinglocalhost:2348agones-ping:2346Allocatorlocalhost:2349agones-allocator:2346Processorlocalhost:2350agones-processor:2346各端口可用MINIKUBE_DEBUG_CONTROLLER_PORT、MINIKUBE_DEBUG_EXTENSIONS_PORT、MINIKUBE_DEBUG_PING_PORT、MINIKUBE_DEBUG_ALLOCATOR_PORT、MINIKUBE_DEBUG_PROCESSOR_PORT变量自定义默认值见 build/includes/minikube.mk。调试游戏服务器内的 SDK 侧车make minikube-debug-sdk-portforward它会先搜索带agones-gameserver-sidecar容器的 pod 并让你交互式选择或直接指定make minikube-debug-sdk-portforward MINIKUBE_DEBUG_POD_NAMEpod名 MINIKUBE_DEBUG_SDK_NAMESPACE命名空间本地端口MINIKUBE_DEBUG_SDK_PORT默认 2351转发到 pod 内调试端口 2346build/includes/minikube.mk。更完整的调试工作流请参考 Development Workflow Guide。五、源码级补充构建容器与平台适配最后补充几个理解整个构建系统所必需的实现细节构建容器挂载common_mountsbuild/Makefile把本地 gcloud 配置、kubeconfig 目录、helm 配置/缓存、仓库源码和 Go 模块缓存build/.gomod都挂进容器因此容器内的一切操作都能与宿主共享状态非 FULL_BUILD 时还会挂载build/.gocache缓存 Go 编译产物build/Makefile。按平台拆分 includeMakefile 根据uname自动引入 build/includes/linux.mk、build/includes/macos.mk 或 build/includes/windows.mkbuild/Makefile同时还会-include ./local-includes/*.mk加载被 git 忽略的个人覆写文件build/Makefile开发者可以在本地覆盖任意变量而不污染仓库。FULL_BUILD 语义定义FULL_BUILD时会启用go build -a强制全量重建并用-9压缩 zip否则增量构建、zip 不压缩以提速build/Makefile。LOCAL_GO定义LOCAL_GO则放弃容器、直接使用宿主机 Go 工具链可显著加速 macOS 上的增量构建build/Makefile但要求agones.dev位于 GOPATH 中。压测入口stress-test-e2e通过--stress $(STRESS_TEST_LEVEL)与--perf-output驱动 test/e2e 中的 Stress 测试产出放在build/.perfbuild/Makefile。下一步基础构建工作流见 Building and Testing Guide搭建各平台集群见 Cluster Setup Guide高级开发模式含调试细节见 Development Workflow Guide故障排查见 Troubleshooting Guide性能与压测见 Performance Testing Guide赞分享游戏开发云原生【免费下载链接】agonesDedicated Game Server Hosting and Scaling for Multiplayer Games on Kubernetes项目地址https://gitcode.com/gh_mirrors/ag/agones点击查看免费下载相关推荐Agones 构建系统 local-includes 机制本地覆盖 Make 构建变量的完整指南Agones 构建系统 local includes 机制本地覆盖 Make 构建变量的完整指南 Agones基于 Kubernetes 的专用游戏服务器托游戏开发云原生Claude Code Router 落地指南3 个目标搭起本地模型路由网关接入 OpenRouterClaude Code Router 落地指南3 个目标搭起本地模型路由网关接入 OpenRouter Claude Code Router下称 CCR后端API网关LLM 网关大模型CCX 项目开发工作流速查Make 命令、Bun 脚本与 Docker 部署全指南CCX 项目开发工作流速查Make 命令、Bun 脚本与 Docker 部署全指南 CCXClaude / Codex / Gemini API ProxyAPI网关LLM 网关后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进