Skip to content
This repository was archived by the owner on Feb 21, 2023. It is now read-only.

Commit 5dac944

Browse files
committed
chore: add k8s resource file
1 parent 6dde914 commit 5dac944

5 files changed

Lines changed: 348 additions & 0 deletions

File tree

scripts/k8s/README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
11
WIP Warning!
22

33
正在施工中!
4+
5+
6+
## Usage
7+
8+
```bash
9+
kubectl create namespace tailchat # 创建资源命名空间
10+
kubectl apply -f network.yaml # 安装网络配置
11+
kubectl apply -f config.yaml # 安装业务配置
12+
kubectl apply -f env.yaml # 安装依赖环境
13+
kubectl apply -f service.yaml # 安装业务服务
14+
```

scripts/k8s/config.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
labels:
5+
com.msgbyte.tailchat.k8s.service: service-chat-docker-compose-env
6+
name: docker-compose-env
7+
namespace: tailchat
8+
data:
9+
CACHER: redis://redis:6379
10+
JWT_SECRET: ""
11+
LOGGER: "true"
12+
LOGLEVEL: info
13+
MINIO_PASS: com.msgbyte.tailchat
14+
MINIO_URL: minio:9000
15+
MINIO_USER: tailchat
16+
MONGO_URL: mongodb://mongo/moleculer-test
17+
NAMESPACE: ""
18+
REDIS_URL: redis://redis:6379
19+
SERVICEDIR: dist/services
20+
STATIC_URL: https://paw-server-test.moonrailgun.com/static/
21+
TRANSPORTER: redis://redis:6379

scripts/k8s/env.yaml

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
labels:
5+
com.msgbyte.tailchat.k8s.network/internal: "true"
6+
com.msgbyte.tailchat.k8s.service: mongo
7+
name: mongo
8+
namespace: tailchat
9+
spec:
10+
containers:
11+
- image: mongo:4
12+
name: mongo
13+
resources: {}
14+
volumeMounts:
15+
- mountPath: /data/db
16+
name: data
17+
restartPolicy: OnFailure
18+
volumes:
19+
- name: data
20+
persistentVolumeClaim:
21+
claimName: data
22+
status: {}
23+
---
24+
apiVersion: v1
25+
kind: Pod
26+
metadata:
27+
labels:
28+
com.msgbyte.tailchat.k8s.network/internal: "true"
29+
com.msgbyte.tailchat.k8s.service: redis
30+
name: redis
31+
namespace: tailchat
32+
spec:
33+
containers:
34+
- image: redis:alpine
35+
name: redis
36+
resources: {}
37+
restartPolicy: OnFailure
38+
status: {}
39+
---
40+
apiVersion: v1
41+
kind: Pod
42+
metadata:
43+
labels:
44+
com.msgbyte.tailchat.k8s.network/internal: "true"
45+
com.msgbyte.tailchat.k8s.service: minio
46+
name: minio
47+
namespace: tailchat
48+
spec:
49+
containers:
50+
- args:
51+
- minio
52+
- server
53+
- /data
54+
- --console-address
55+
- :9001
56+
env:
57+
- name: MINIO_ROOT_PASSWORD
58+
value: com.msgbyte.tailchat
59+
- name: MINIO_ROOT_USER
60+
value: tailchat
61+
image: minio/minio
62+
name: minio
63+
resources: {}
64+
volumeMounts:
65+
- mountPath: /data
66+
name: storage
67+
restartPolicy: OnFailure
68+
volumes:
69+
- name: storage
70+
persistentVolumeClaim:
71+
claimName: storage
72+
status: {}
73+
---
74+
apiVersion: v1
75+
kind: PersistentVolumeClaim
76+
metadata:
77+
labels:
78+
com.msgbyte.tailchat.k8s.service: data
79+
name: data
80+
namespace: tailchat
81+
spec:
82+
accessModes:
83+
- ReadWriteOnce
84+
resources:
85+
requests:
86+
storage: 100Mi
87+
status: {}
88+
---
89+
apiVersion: v1
90+
kind: PersistentVolumeClaim
91+
metadata:
92+
labels:
93+
com.msgbyte.tailchat.k8s.service: storage
94+
name: storage
95+
namespace: tailchat
96+
spec:
97+
accessModes:
98+
- ReadWriteOnce
99+
resources:
100+
requests:
101+
storage: 100Mi
102+
status: {}

scripts/k8s/network.yaml

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
apiVersion: networking.k8s.io/v1
2+
kind: NetworkPolicy
3+
metadata:
4+
name: internal
5+
namespace: tailchat
6+
spec:
7+
ingress:
8+
- from:
9+
- podSelector:
10+
matchLabels:
11+
com.msgbyte.tailchat.k8s.network/internal: "true"
12+
podSelector:
13+
matchLabels:
14+
com.msgbyte.tailchat.k8s.network/internal: "true"
15+
---
16+
apiVersion: networking.k8s.io/v1
17+
kind: NetworkPolicy
18+
metadata:
19+
name: default
20+
namespace: tailchat
21+
spec:
22+
ingress:
23+
- from:
24+
- podSelector:
25+
matchLabels:
26+
com.msgbyte.tailchat.k8s.network/default: "true"
27+
podSelector:
28+
matchLabels:
29+
com.msgbyte.tailchat.k8s.network/default: "true"
30+
---
31+
apiVersion: v1
32+
kind: Service
33+
metadata:
34+
labels:
35+
com.msgbyte.tailchat.k8s.service: traefik
36+
name: traefik
37+
namespace: tailchat
38+
spec:
39+
ports:
40+
- name: "11000"
41+
port: 11000
42+
targetPort: 80
43+
- name: "11001"
44+
port: 11001
45+
targetPort: 8080
46+
selector:
47+
com.msgbyte.tailchat.k8s.service: traefik
48+
status:
49+
loadBalancer: {}
50+
---
51+
apiVersion: apps/v1
52+
kind: Deployment
53+
metadata:
54+
labels:
55+
com.msgbyte.tailchat.k8s.service: traefik
56+
name: traefik
57+
namespace: tailchat
58+
spec:
59+
replicas: 1
60+
selector:
61+
matchLabels:
62+
com.msgbyte.tailchat.k8s.service: traefik
63+
strategy:
64+
type: Recreate
65+
template:
66+
metadata:
67+
annotations:
68+
kompose.cmd: kompose convert
69+
kompose.version: 1.24.0 (HEAD)
70+
labels:
71+
com.msgbyte.tailchat.k8s.network/default: "true"
72+
com.msgbyte.tailchat.k8s.network/internal: "true"
73+
com.msgbyte.tailchat.k8s.service: traefik
74+
spec:
75+
containers:
76+
- args:
77+
- --api.insecure=true
78+
- --providers.docker=true
79+
- --providers.docker.exposedbydefault=false
80+
image: traefik:v2.1
81+
name: traefik
82+
ports:
83+
- containerPort: 80
84+
- containerPort: 8080
85+
resources: {}
86+
volumeMounts:
87+
- mountPath: /var/run/docker.sock
88+
name: traefik-claim0
89+
readOnly: true
90+
restartPolicy: Always
91+
volumes:
92+
- name: traefik-claim0
93+
persistentVolumeClaim:
94+
claimName: traefik-claim0
95+
readOnly: true
96+
status: {}
97+
---
98+
apiVersion: v1
99+
kind: PersistentVolumeClaim
100+
metadata:
101+
labels:
102+
com.msgbyte.tailchat.k8s.service: traefik-claim0
103+
name: traefik-claim0
104+
namespace: tailchat
105+
spec:
106+
accessModes:
107+
- ReadOnlyMany
108+
resources:
109+
requests:
110+
storage: 100Mi
111+
status: {}

scripts/k8s/service.yaml

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# 业务服务
2+
# 先 all in one
3+
4+
apiVersion: apps/v1
5+
kind: Deployment
6+
metadata:
7+
annotations:
8+
traefik.enable: "true"
9+
traefik.http.routers.api-gw.rule: PathPrefix(`/`)
10+
traefik.http.services.api-gw.loadbalancer.server.port: "3000"
11+
labels:
12+
com.msgbyte.tailchat.k8s.service: tailchat-service-all
13+
name: tailchat-service-all
14+
namespace: tailchat
15+
spec:
16+
replicas: 1
17+
selector:
18+
matchLabels:
19+
com.msgbyte.tailchat.k8s.service: tailchat-service-all
20+
strategy: {}
21+
template:
22+
metadata:
23+
annotations:
24+
traefik.enable: "true"
25+
traefik.http.routers.api-gw.rule: PathPrefix(`/`)
26+
traefik.http.services.api-gw.loadbalancer.server.port: "3000"
27+
labels:
28+
com.msgbyte.tailchat.k8s.network/internal: "true"
29+
com.msgbyte.tailchat.k8s.service: tailchat-service-all
30+
spec:
31+
containers:
32+
- image: moonrailgun/tailchat-server
33+
name: tailchat-service-all
34+
resources: {}
35+
env:
36+
- name: SERVICES
37+
value: gateway
38+
- name: SERVICEDIR
39+
value: services
40+
- name: CACHER
41+
valueFrom:
42+
configMapKeyRef:
43+
key: CACHER
44+
name: docker-compose-env
45+
- name: JWT_SECRET
46+
valueFrom:
47+
configMapKeyRef:
48+
key: JWT_SECRET
49+
name: docker-compose-env
50+
- name: LOGGER
51+
valueFrom:
52+
configMapKeyRef:
53+
key: LOGGER
54+
name: docker-compose-env
55+
- name: LOGLEVEL
56+
valueFrom:
57+
configMapKeyRef:
58+
key: LOGLEVEL
59+
name: docker-compose-env
60+
- name: MINIO_PASS
61+
valueFrom:
62+
configMapKeyRef:
63+
key: MINIO_PASS
64+
name: docker-compose-env
65+
- name: MINIO_URL
66+
valueFrom:
67+
configMapKeyRef:
68+
key: MINIO_URL
69+
name: docker-compose-env
70+
- name: MINIO_USER
71+
valueFrom:
72+
configMapKeyRef:
73+
key: MINIO_USER
74+
name: docker-compose-env
75+
- name: MONGO_URL
76+
valueFrom:
77+
configMapKeyRef:
78+
key: MONGO_URL
79+
name: docker-compose-env
80+
- name: NAMESPACE
81+
valueFrom:
82+
configMapKeyRef:
83+
key: NAMESPACE
84+
name: docker-compose-env
85+
- name: PORT
86+
value: "3000"
87+
- name: REDIS_URL
88+
valueFrom:
89+
configMapKeyRef:
90+
key: REDIS_URL
91+
name: docker-compose-env
92+
- name: STATIC_URL
93+
valueFrom:
94+
configMapKeyRef:
95+
key: STATIC_URL
96+
name: docker-compose-env
97+
- name: TRANSPORTER
98+
valueFrom:
99+
configMapKeyRef:
100+
key: TRANSPORTER
101+
name: docker-compose-env
102+
restartPolicy: Always
103+
status: {}

0 commit comments

Comments
 (0)