走到这里我们应该做个东西出来,不然会显得枯燥无味
我们就用 2048 这款游戏 + 我的服务转发 + matellb 做一个小游戏转发吧
服务转发:https://github.com/elysia673/Aether/tree/Unified-acquisition-method
2048游戏:swr.cn-north-4.myhuaweicloud.com/firfe/2048-3:2025.08.14-arm64
这个服务转发还没有完全写完,等我写的差不多了,再完整的讲一下这个程序
1、2048部署
root@k8s-master-u2404-4-100-101:~# mkdir game
root@k8s-master-u2404-4-100-101:~# cd game/
root@k8s-master-u2404-4-100-101:~/game# vim 2048.yaml
root@k8s-master-u2404-4-100-101:~/game# cat 2048.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: game-2048-arm64
labels:
app: game-2048
spec:
replicas: 1
selector:
matchLabels:
app: game-2048
template:
metadata:
labels:
app: game-2048
spec:
nodeSelector:
kubernetes.io/arch: arm64
containers:
- name: game-2048
image: swr.cn-north-4.myhuaweicloud.com/firfe/2048-3:2025.08.14-arm64
ports:
- containerPort: 5132
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: game-2048-svc
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 5132
protocol: TCP
selector:
app: game-2048
root@k8s-master-u2404-4-100-101:~/game# kubectl apply -f 2048.yaml
deployment.apps/game-2048-arm64 created
service/game-2048-svc created
root@k8s-master-u2404-4-100-101:~/game# kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
default game-2048-arm64-89f4cd8fb-tkjcx 1/1 Running 0 12s
ingress-nginx ingress-nginx-controller-856559d89-8s78b 1/1 Running 0 20h
ingress-nginx ingress-nginx-controller-856559d89-mpq4h 1/1 Running 0 20h
ingress-nginx ingress-nginx-controller-856559d89-r9v8b 1/1 Running 0 20h
kube-system calico-kube-controllers-ddf655445-tj7p8 1/1 Running 0 21h
kube-system calico-node-9k7v4 1/1 Running 0 21h
kube-system calico-node-b82vq 1/1 Running 0 20h
kube-system calico-node-g5bb7 1/1 Running 0 20h
kube-system coredns-66b4b89955-665qv 1/1 Running 0 20h
metallb-system controller-54d6798f4-m6fs9 1/1 Running 7 (19h ago) 19h
metallb-system speaker-2w7x4 1/1 Running 0 19h
metallb-system speaker-qvc2j 1/1 Running 0 19h
metallb-system speaker-vddkb 1/1 Running 0 19h
root@k8s-master-u2404-4-100-101:~/game# kubectl get svc -A
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default game-2048-svc LoadBalancer 10.0.0.91 192.168.148.201 80:30283/TCP 32s
default kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 22h
ingress-nginx ingress-nginx-controller LoadBalancer 10.0.0.64 192.168.148.200 80:30655/TCP,443:32643/TCP 20h
ingress-nginx ingress-nginx-controller-admission ClusterIP 10.0.0.69 <none> 443/TCP 20h
kube-system kube-dns ClusterIP 10.0.0.2 <none> 53/UDP,53/TCP,9153/TCP 20h
metallb-system metallb-webhook-service ClusterIP 10.0.0.177 <none> 443/TCP 19h
2、服务转发
(base) ailixiya@HUAWEI-MateBook-X-Pro ~ % aether-cli create hd_k8s_arm_n1 -remote 17335 -local 80 -bind 0.0.0.0 -local-ip 192.168.148.201
代理创建成功
公网地址: elysia.media:17335
(base) ailixiya@HUAWEI-MateBook-X-Pro ~ %
3、双向验证
k8s端验证
root@k8s-master-u2404-4-100-101:~# kubectl get svc -A
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default game-2048-svc LoadBalancer 10.0.0.91 192.168.148.201 80:30283/TCP 2d19h
default kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 3d17h
ingress-nginx ingress-nginx-controller LoadBalancer 10.0.0.64 192.168.148.200 80:30655/TCP,443:32643/TCP 3d15h
ingress-nginx ingress-nginx-controller-admission ClusterIP 10.0.0.69 <none> 443/TCP 3d15h
kube-system kube-dns ClusterIP 10.0.0.2 <none> 53/UDP,53/TCP,9153/TCP 3d15h
metallb-system metallb-webhook-service ClusterIP 10.0.0.177 <none> 443/TCP 3d15h
root@k8s-master-u2404-4-100-101:~# curl 192.168.148.201:80
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=0">
<title>海拥 | 2048</title>
<!-- <meta name="keywords" content="游戏" />
<meta name="description" content="游戏 | 2048小游戏;立志打造一个拥有100个小游戏的摸鱼网站。Made By Haiyong,技术支持——海拥" />
<meta name="author" content="海拥(http://haiyong.site/game)" />
<meta name="copyright" content="海拥(http://haiyong.site/game)" />
<link rel="icon" href="http://haiyong.site/wp-content/uploads/2021/07/cropped-59255587-1-192x192.jpg" sizes="192x192" /> -->
<link rel="stylesheet" href="css/style.css"/>
</head>
<body>
<header>
<div class="container">
<h1><span>2</span><span>0</span><span>4</span><span>8</span></h1>
<p class="inspired">by the 原2048的灵感</p>
</div>
</header>
<div class="container">
<div class="directions">
<p id="haiyong" class="haiyong"><strong>如何玩:</strong> 使用鼠标方向键键移动数字方块。相邻的两个方块数字相同,它们可合并成一个!</p>
</div>
<div class="scores">
<div class="score-container best-score">
历史最高
<div class="score">
<div id="bestScore">0</div>
</div>
</div>
<div class="score-container">
分数:
<div class="score">
<div id="score">0</div>
<div class="add" id="add"></div>
</div>
</div>
</div>
<div class="game">
<div id="tile-container" class="tile-container"></div>
<div class="end" id="end">游戏结束<div class="monkey">🙈</div><button class="btn not-recommended__item js-restart-btn"
id="try-again">再试一次</button></div>
</div>
<div class="not-recommended">
<button class="btn not-recommended__item js-restart-btn" id="restart">重新启动游戏</button>
<span class="not-recommended__annotation"></span>
</div>
<footer>
<!-- <span class="author">Created by <a href="http://haiyong.site/index">Haiyong</a></span>
<span class="center">2048</span>
<span class="opposite">友链:<a href="https://www.captainai.net/haiyong">人工智能学习</a></span> -->
<a href="https://github.com/wanghao221/moyu" target="_blank" style="border-bottom: none;">原项目仓库</a>
<a href="https://github.com/Firfr/2048-3" target="_blank" style="border-bottom: none;">镜像制作仓库</a>
</footer>
</div>
<script src="js/script.js"></script>
</body>
</html>
浏览器验证
www.elysia.media:17335

