【Agones系列】Agones初体验

简介: 本文介绍了Agones并在阿里云容器服务上运行Agones进行游戏服部署

Agones是为了游戏服在Kubernetes上部署、运行、伸缩而设计的框架。具体相关介绍可参考官方网站和Github。本文介绍了在阿里云ACK上部署并使用Agones的全过程。

 

Install Agones on ACK

  1. 首先创建需要的Agones命名空间
$ kubectl create namespace agones-system
  1. 通过配置文件安装对应版本的Agones,这里我选择的是1.23版本
$ kubectl apply -f https://raw.githubusercontent.com/googleforgames/agones/release-1.23.0/install/yaml/install.yaml

安装完成后,命名空间下有以下资源:

get deploy -n agones-system
NAME                READY   UP-TO-DATE   AVAILABLE   AGE
agones-allocator    3/3     3            3           3d
agones-controller   1/1     1            1           3d
agones-ping         2/2     2            2           3d

kubectl get po -n agones-system
NAME                                 READY   STATUS    RESTARTS   AGE
agones-allocator-554c79cffc-6dpzp    1/1     Running   0          3d
agones-allocator-554c79cffc-jlp5t    1/1     Running   0          3d
agones-allocator-554c79cffc-kbn5w    1/1     Running   0          3d
agones-controller-864dd7dbc4-2ghs8   1/1     Running   0          3d
agones-ping-77b7dc578c-9dfk7         1/1     Running   0          3d
agones-ping-77b7dc578c-hhvff         1/1     Running   0          3d

kubectl get svc -n agones-system
NAME                               TYPE           CLUSTER-IP       EXTERNAL-IP       PORT(S)            AGE
agones-allocator                   LoadBalancer   172.16.157.137   47.105.53.1       443:30302/TCP      3d
agones-allocator-metrics-service   ClusterIP      172.16.238.137   
    
    
                 8080/TCP           3d
agones-controller-service          ClusterIP      172.16.150.98    
     
     
                  443/TCP,8080/TCP   3d
agones-ping-http-service           LoadBalancer   172.16.253.193   118.190.206.167   80:30770/TCP       3d
agones-ping-udp-service            LoadBalancer   172.16.10.63     47.104.240.179    50000:32691/UDP    3d
     
     
    
    

需要额外注意的是阿里云上无法连接gcr.io,我在节点上提前pull了个人制作的相同镜像,再打上gcr重名tag,绕过了这个问题。

Deploy a game server on Agones

在这里,我们使用Agones官方Github中的Unity示例(path: agones/examples/unity-sample),将项目导入Unity Editor。分别build server与client

使用项目中的Dockerfile制作服务镜像:

FROM ubuntu:18.04

WORKDIR /unity

# Need to build with UnityEditor in advance.
COPY Builds/Server/ ./

# [Workaround] Wait until the sidecar is ready.
CMD sleep 2 && ./UnitySimpleServer.x86_64

将其上传至镜像仓库后我们开始部署game server。部署的方式也很简单,直接apply yaml即可:

apiVersion: "agones.dev/v1"
kind: GameServer
metadata:
  name: "unity-simple-server"
spec:
  ports:
  - name: default
    portPolicy: Dynamic
    containerPort: 7777
  template:
    spec:
      containers:
      - name: unity-simple-server
        # 使用刚刚制作的game server镜像
        image: xxx:xx 

很快,gs将完成部署:

kubectl get gs
NAME                  STATE   ADDRESS         PORT   NODE                  AGE
unity-simple-server   Ready   120.27.21.131   7050   cn-xxx.192.xx.xx.48   2d

通过ADDRESS和PORT,我们使用客户端来连接game server,看看效果如何:

输入的句子成功在屏幕上显示了,说明游戏服务正常运行中

相关文章
|
iOS开发
CTMediator 的初体验
​ 现在对于iOS开发的要求随着时代的发展,也在渐渐地演变。这几天看到了很多JD的要求,多多少少都会提到这样的一个名字-组件化。
|
存储 弹性计算 Java
我的阿里云初体验
经过同学的推荐,参加了阿里云的“飞天加速计划·高校学生在家实践 ”,首次体验了阿里云的ECS服务器,整体来说使用体验非常好,也非常推荐大家来使用ECS服务器。
200 0
我的阿里云初体验
|
Java 数据库 数据安全/隐私保护
服务器初体验
由于我是第一次使用服务器,所以有很多地方都是黑灯瞎火乱琢磨的,错误的地方请指正。 我使用学生认证在阿里云官网的飞天加速计划免费领导一台云服务器,而且必须是学生认证才可以。领取之后放回首页,点击控制台就可以看得到刚刚自己领取到的云服务器。
服务器初体验
|
机器学习/深度学习 弹性计算 算法
阿里云初体验
正式开启学习编程,希望能通过阿里云学到本领。从教学例程来看整体的使用过程是非常简单友好的。阿里云的控制台的使用体验是非常不错的,界面的信息都比较简单易懂。感谢阿里云提供这样的资源。
133 0
|
Java Linux Docker
阿里云的使用初体验
学生党在面对虚拟机的时候首先还是推荐使用阿里云的虚拟机,原因让我娓娓道来;
|
弹性计算 Linux 网络安全
阿里云初体验
因为对linux感兴趣,第一次使用了云服务器,有些收获
|
存储 弹性计算 Linux
阿里云初体验心得
我是一名就读于计算机科学与技术专业的在校生,学习期间在老师那了解到了“飞天加速计划”,通过简单的答题之后,我领取到了一台ECS云服务器,并计划将其作为之后自学相应网站开发的基础。
|
人工智能 Cloud Native 算法
阿里云使用初体验
阿里云作为全球领先的科技公司,在云计算与人工智能方面很有建树,为许多国家与企业提供便利的服务与强有力的技术支撑。
193 0
|
Linux 数据安全/隐私保护
使用阿里云的初体验
使用阿里云的初体验
|
域名解析 JavaScript Java