幻兽帕鲁K8S容器化部署,实现IP复用和CPU超售
容器化部署幻兽帕鲁服务器
·
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
最近幻兽帕鲁太火了,于是想着卖服务器,但是想着每个人来买都要一个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的复用了,不用每个客户过来买一台服务器就要建一个虚拟机了。
关键的地方都写好了,看着摸索一下差不多了,有问题可以私聊。
更多推荐
已为社区贡献1条内容
所有评论(0)