提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

最近幻兽帕鲁太火了,于是想着卖服务器,但是想着每个人来买都要一个IP和一台虚拟机,想着能不能用K8S部署,实现IP的复用和CPU的超售:


一、用什么控制器

第一想法是直接起个POD,但是想着起了POD一旦挂了没法自动拉起服务,还是用Deployment控制只起一个POD,这样来管理服务会更方便,也可以自动容灾。
以下为Deployment的关键Yaml项

apiVersion: apps/v1
kind: Deployment
metadata:
  name: palworld
  labels:
    palwold: palworld-8211
spec:
  replicas: 1
  selector:
    matchLabels:
      palwold: palworld-8211
  template:
    metadata:
      labels:
        palwold: palworld-8211
    spec:
      containers:
      - name: palworld
        image: uhub.service.ucloud.cn/hzx-uhub/palworld-dedicated-server:latest
        ports:
        - containerPort: 8211
          protocol: UDP
        env:
        - name: ALWAYS_UPDATE_ON_START
          value: "true"
        - name: MAX_PLAYERS
          value: "32"
        - name: MULTITHREAD_ENABLED
          value: "true"
        - name: RCON_ENABLED
          value: "true"
        - name: SERVER_NAME
          value: "Palworld-ucloud-server"
        - name: SERVER_DESCRIPTION
          value: "Palworld-ucloud-server"
        - name: SERVER_PASSWORD
          value: ""
        - name: ADMIN_PASSWORD
          value: ""
        - name: PORT
          value: "8211"

二、ip怎么复用

yaml没写完,大概思路就是起一个LB的SVC,然后每个区服一个端口,然后再svc里映射相应的端口

apiVersion: v1
kind: Service
metadata:
  name: palworld-8211
  labels:
    palwold: palworld-8211
  annotations:
    # 代表ULB网络类型,outer为外网,inner为内网;outer为默认值,此处可省略。
    "service.beta.kubernetes.io/ucloud-load-balancer-type": "outer"
    # 表示ULB协议类型,tcp与udp等价,表示ULB4;http与httpS等价,表示ULB7;tcp为默认值,此处可省略。
    "service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol": "udp"
    # bandwidth下默认为2Mpbs,建议显式声明带宽大小,避免费用超标。
    "service.beta.kubernetes.io/ucloud-load-balancer-eip-bandwidth": "2"
    # 付费模式,支持month,year,dynamic,默认为month
    "service.beta.kubernetes.io/ucloud-load-balancer-eip-chargetype": "month"
    # 付费时长,默认为1,chargetype为dynimic时无效
    "service.beta.kubernetes.io/ucloud-load-balancer-eip-quantity": "1"
spec:
  type: LoadBalancer
  ports:
    - protocol: UDP
      port: 8211
      targetPort: 8211
  selector:
      palwold: palworld-8211



# 总结
以上环境基于优刻得UK8S部署
总的来说已经完成了CPU的超售和IP的复用了,不用每个客户过来买一台服务器就要建一个虚拟机了。
关键的地方都写好了,看着摸索一下差不多了,有问题可以私聊。
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐