【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服务器。
205 0
我的阿里云初体验
|
机器学习/深度学习 弹性计算 算法
阿里云初体验
正式开启学习编程,希望能通过阿里云学到本领。从教学例程来看整体的使用过程是非常简单友好的。阿里云的控制台的使用体验是非常不错的,界面的信息都比较简单易懂。感谢阿里云提供这样的资源。
136 0
|
Java Linux Docker
阿里云的使用初体验
学生党在面对虚拟机的时候首先还是推荐使用阿里云的虚拟机,原因让我娓娓道来;
|
弹性计算 Linux 网络安全
阿里云初体验
因为对linux感兴趣,第一次使用了云服务器,有些收获
|
存储 弹性计算 Linux
阿里云初体验心得
我是一名就读于计算机科学与技术专业的在校生,学习期间在老师那了解到了“飞天加速计划”,通过简单的答题之后,我领取到了一台ECS云服务器,并计划将其作为之后自学相应网站开发的基础。
|
分布式计算 Java Hadoop
hadoop集群搭建初体验
hadoop集群搭建初体验
|
人工智能 Cloud Native 算法
阿里云使用初体验
阿里云作为全球领先的科技公司,在云计算与人工智能方面很有建树,为许多国家与企业提供便利的服务与强有力的技术支撑。
196 0
|
Linux 数据安全/隐私保护
使用阿里云的初体验
使用阿里云的初体验
|
域名解析 JavaScript Java
下一篇
DataWorks