forked from ijason/NodeJS-Sample-App
-
Notifications
You must be signed in to change notification settings - Fork 0
/
k8s.yaml
135 lines (135 loc) · 3.12 KB
/
k8s.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
---
apiVersion: v1
kind: List
items:
-
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: employee-manager
app.kubernetes.io/component: database
name: mongo
spec:
selector:
matchLabels:
app.kubernetes.io/name: employee-manager
app.kubernetes.io/component: database
template:
metadata:
labels:
app.kubernetes.io/name: employee-manager
app.kubernetes.io/component: database
name: mongo
spec:
containers:
- image: mongo
name: mongo
ports:
- name: mongo
containerPort: 27017
volumeMounts:
- name: mongo-persistent-storage
mountPath: /data/db
volumes:
- name: mongo-persistent-storage
persistentVolumeClaim:
claimName: mongo-persistent-storage
-
apiVersion: v1
kind: Service
metadata:
name: mongo
labels:
app.kubernetes.io/name: employee-manager
app.kubernetes.io/component: database
name: mongo
spec:
ports:
- port: 27017
targetPort: 27017
selector:
app.kubernetes.io/name: employee-manager
app.kubernetes.io/component: database
-
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mongo-persistent-storage
labels:
app.kubernetes.io/name: employee-manager
app.kubernetes.io/component: database
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
-
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: employee-manager
app.kubernetes.io/component: nodejs-app
name: nodejs-app
spec:
selector:
matchLabels:
app.kubernetes.io/name: employee-manager
app.kubernetes.io/component: nodejs-app
template:
metadata:
labels:
app.kubernetes.io/name: employee-manager
app.kubernetes.io/component: nodejs-app
name: nodejs-app
spec:
containers:
- image: "ijason/nodejs-sample:latest"
name: web
ports:
- containerPort: 3000
name: http-server
env:
- name: MONGO_HOST
value: "mongo"
- name: MONGO_PORT
value: "27017"
-
apiVersion: v1
kind: Service
metadata:
name: web
labels:
app.kubernetes.io/name: employee-manager
app.kubernetes.io/component: nodejs-app
spec:
type: LoadBalancer
ports:
- name: web
port: 80
targetPort: 3000
protocol: TCP
selector:
app.kubernetes.io/name: employee-manager
app.kubernetes.io/component: nodejs-app
-
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nodejs-ingress
labels:
app.kubernetes.io/name: employee-manager
app.kubernetes.io/component: nodejs-app
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: nodejs.192.168.99.100.nip.io
http:
paths:
- path: /
backend:
serviceName: web
servicePort: 80