周五下午在@kubernetesio上运行@quake的团队项目变成了周六上午,通过@Linkerd使其运行。感谢@CapitalOneTech提供https://t.co/YP0jRynOi1 pic.twitter.com/juxIEsuH7R
-克里斯·坎贝尔(@ChrsCmpbl)2020年11月21日
几年前,我花了很多时间(和浪费了)与朋友和敌人一起玩这个快节奏的游戏,现在,Capital One Tech用QuakeKube将它带入了容器和Kubernetes的世界。
QuakeKube是QuakeJS的Kubernetes认证版本,可在Kubernetes部署中运行专用的Quake 3服务器,然后允许客户端通过浏览器中的QuakeJS连接。
当然,我迫不及待想尝试一下,尤其是在阅读了文档之后,说:
容器映像正在与Docker Buildx交叉编译,因此它可以在具有不同架构和操作系统的硬件上运行。当前,它正在为linux / amd64和linux / arm64构建。
支持ARM64!太好了,这意味着我可以在我的Raspberry Pi上运行它!
大多数工作已经由其他人完成,因此使用适当的工具和项目,仅需几分钟即可启动并运行所有内容。
k3sup,一种轻量级实用程序,可在任何本地或远程VM上使用k3从零到KUBECONFIG。
arkade,一个简单的Golang CLI,带有强类型标志,可通过一个命令将图表和应用程序安装到您的集群中。
在Raspberry Pi上安装k3后,k3sup还将在当前工作目录中下载所需的kubeconfig文件。确保将kubectl配置为使用此配置文件:
入口操作员将在DigitalOcean上创建一个入口出口节点,为私有k3s群集中的LoadBalancer服务提供一个公共IP地址。
当客户端使用Websocket通过浏览器中的QuakeJS连接到服务器时,OSS版本的入口将正常运行。如果您希望对TLS等有更好的支持,我强烈建议您看一看inserts PRO版本。
最后,从QuakeKube GitHub存储库中获取示例yaml文件,并进行适当的更改。该服务应更新为LoadBalancer而不是NodePort类型,并且您当然可以更改配置以根据自己的需要调整游戏首选项。
apiVersion:apps / v1kind:Deploymentmetadata:名称:quakejsspec:选择器:matchLabels:运行:quakejs副本:1模板:元数据:标签:运行:quakejs注释:prometheus.io/scrape:'true'prometheus.io/port:'8080 '规范:容器:-命令:-q3-服务器---config = / config / config.yaml---content-server = http:// localhost:9090---agree-eula映像:docker.io/criticalstack / quake:v1。 0.5名称:服务器端口:-容器端口:8080准备就绪探针:tcpSocket:端口:8080 initialDelaySeconds:15 periodSeconds:5 volumeMounts:-名称:quake3-server-config mountPath:/ config-名称:quake3-content mountPath:/ assets-命令: -第3季度-内容---seed-content-url = http://content.quakejs.com图片:docker.io/criticalstack/quake:v1。 0.5名称:内容服务器端口:-containerPort:9090 volumeMounts:-名称:quake3-content mountPath:/ assets卷:-名称:quake3-server-config configMap:名称:quake3-server-config-名称:quake3-content emptyDir :{} --- apiVersion:v1kind:Servicemetadata:名称:quakejsspec:类型:LoadBalancer选择器:运行:quakejs端口:-端口:80 targetPort:8080名称:http --- apiVersion:v1kind:ConfigMapmetadata:名称:quake3-server -configdata:config.yaml:| fragLimit:25时间限制:15m bot:minPlayers:3游戏:motd:“ Welcome to Critical Stack”类型:FreeForAll forceRespawn:错误,不活跃:10m quadFactor:3武器Respawn:3服务器:主机名:“ quakekube” maxClients:12密码:“ changeme “命令:-addbot sarge 2映射:-名称:q3dm7类型:FreeForAll timeLimit:10m-名称:q3dm17类型:FreeForAll-名称:q3wctf1类型:CaptureTheFlag captureLimit:8-名称:q3tourney2类型:Tournament-名称:q3wctf3类型:CaptureTheFlag captureLimit:8-名称:ztn3tourney1类型:Tournament
$ kubectl get pods,serviceNAME就绪状态重新启动AGEpod / inlets-operator-76fb794578-s2fg4 1/1正在运行0 147mpod / quakejs-tunnel-client-6f7c986dfc-mdt5w 1/1正在运行0 50spod / quakejs-786cc496b-g7b7n 2/2 0 80s名称类型群集IP外部IP端口(S)AGE服务/ kubernetes ClusterIP 10.43.0.1 443 / TCP 152mservice / quakejs LoadBalancer 10.43.46.33 143.110.174.204,143.110.174.204 80:32116 / TCP 80s
就是这样!打开您喜欢的浏览器,加载应用程序,然后开始整理!”!