質問編集履歴
4
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,7 +30,59 @@
|
|
30
30
|
|
31
31
|
```yaml
|
32
32
|
|
33
|
-
# redis_lb.yaml
|
33
|
+
# redis_lb_pod.yaml
|
34
|
+
|
35
|
+
apiVersion: extensions/v1beta1
|
36
|
+
|
37
|
+
kind: Deployment
|
38
|
+
|
39
|
+
metadata:
|
40
|
+
|
41
|
+
name: visit-counter
|
42
|
+
|
43
|
+
labels:
|
44
|
+
|
45
|
+
app: visit-counter
|
46
|
+
|
47
|
+
spec:
|
48
|
+
|
49
|
+
replicas: 1
|
50
|
+
|
51
|
+
template:
|
52
|
+
|
53
|
+
metadata:
|
54
|
+
|
55
|
+
labels:
|
56
|
+
|
57
|
+
app: visit-counter
|
58
|
+
|
59
|
+
spec:
|
60
|
+
|
61
|
+
containers:
|
62
|
+
|
63
|
+
- name: visit-counter
|
64
|
+
|
65
|
+
image: "gcr.io/buyma-dev/visit-counter:v1"
|
66
|
+
|
67
|
+
env:
|
68
|
+
|
69
|
+
- name: REDISHOST
|
70
|
+
|
71
|
+
valueFrom:
|
72
|
+
|
73
|
+
configMapKeyRef:
|
74
|
+
|
75
|
+
name: redishost
|
76
|
+
|
77
|
+
key: REDISHOST
|
78
|
+
|
79
|
+
ports:
|
80
|
+
|
81
|
+
- name: http
|
82
|
+
|
83
|
+
containerPort: 8080
|
84
|
+
|
85
|
+
---
|
34
86
|
|
35
87
|
apiVersion: v1
|
36
88
|
|
@@ -52,66 +104,10 @@
|
|
52
104
|
|
53
105
|
- port: 80
|
54
106
|
|
107
|
+
targetPort: 8080
|
108
|
+
|
55
109
|
protocol: TCP
|
56
110
|
|
57
|
-
targetPort: 8080
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
# redis_pod.yaml:
|
64
|
-
|
65
|
-
apiVersion: apps/v1
|
66
|
-
|
67
|
-
kind: Deployment
|
68
|
-
|
69
|
-
metadata:
|
70
|
-
|
71
|
-
name: visit-counter
|
72
|
-
|
73
|
-
spec:
|
74
|
-
|
75
|
-
replicas: 1
|
76
|
-
|
77
|
-
selector:
|
78
|
-
|
79
|
-
matchLabels:
|
80
|
-
|
81
|
-
app: visit-counter
|
82
|
-
|
83
|
-
template:
|
84
|
-
|
85
|
-
metadata:
|
86
|
-
|
87
|
-
labels:
|
88
|
-
|
89
|
-
app: visit-counter
|
90
|
-
|
91
|
-
spec:
|
92
|
-
|
93
|
-
containers:
|
94
|
-
|
95
|
-
- name: visit-counter
|
96
|
-
|
97
|
-
image: gcr.io/buyma-dev/visit-counter:v1
|
98
|
-
|
99
|
-
env:
|
100
|
-
|
101
|
-
- name: REDISHOST
|
102
|
-
|
103
|
-
valueFrom:
|
104
|
-
|
105
|
-
configMapKeyRef:
|
106
|
-
|
107
|
-
name: redishost
|
108
|
-
|
109
|
-
key: REDISHOST
|
110
|
-
|
111
|
-
ports:
|
112
|
-
|
113
|
-
- containerPort: 8080
|
114
|
-
|
115
111
|
|
116
112
|
|
117
113
|
```
|
@@ -126,6 +122,8 @@
|
|
126
122
|
|
127
123
|
|
128
124
|
|
125
|
+
|
126
|
+
|
129
127
|
RUN virtualenv -p python3.4 /env
|
130
128
|
|
131
129
|
|
@@ -160,6 +158,10 @@
|
|
160
158
|
|
161
159
|
|
162
160
|
|
161
|
+
EXPOSE 8080
|
162
|
+
|
163
|
+
|
164
|
+
|
163
165
|
CMD ["gunicorn", "-b", "0.0.0.0:8080", "main:app"]
|
164
166
|
|
165
167
|
|
@@ -168,6 +170,10 @@
|
|
168
170
|
|
169
171
|
|
170
172
|
|
173
|
+
|
174
|
+
|
175
|
+
|
176
|
+
|
171
177
|
# requirements.txt
|
172
178
|
|
173
179
|
Flask==1.0.2
|
@@ -202,13 +208,7 @@
|
|
202
208
|
|
203
209
|
|
204
210
|
|
205
|
-
redis_host = os.environ.get('REDISHOST', 'localhost')
|
206
|
-
|
207
|
-
redis_port = int(os.environ.get('REDISPORT', 6379))
|
208
|
-
|
209
|
-
redis_client = redis.StrictRedis(host=
|
211
|
+
redis_client = redis.StrictRedis(host='localhost', port=6379, db=0)
|
210
|
-
|
211
|
-
|
212
212
|
|
213
213
|
|
214
214
|
|
@@ -244,13 +244,7 @@
|
|
244
244
|
|
245
245
|
if __name__ == '__main__':
|
246
246
|
|
247
|
-
# This is used when running locally. Gunicorn is used to run the
|
248
|
-
|
249
|
-
# application on Google App Engine. See entrypoint in app.yaml.
|
250
|
-
|
251
|
-
app.run(host='0.0.0.0'
|
247
|
+
app.run(host='0.0.0.0')
|
252
|
-
|
253
|
-
|
254
248
|
|
255
249
|
```
|
256
250
|
|
@@ -290,6 +284,4 @@
|
|
290
284
|
|
291
285
|
name: default
|
292
286
|
|
293
|
-
|
294
|
-
|
295
|
-
```
|
287
|
+
```
|
3
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -52,15 +52,17 @@
|
|
52
52
|
|
53
53
|
- port: 80
|
54
54
|
|
55
|
+
protocol: TCP
|
56
|
+
|
55
57
|
targetPort: 8080
|
56
58
|
|
57
|
-
|
59
|
+
|
58
|
-
|
59
|
-
|
60
|
-
|
60
|
+
|
61
|
+
|
62
|
+
|
61
|
-
# redis_pod.yaml
|
63
|
+
# redis_pod.yaml:
|
62
|
-
|
64
|
+
|
63
|
-
apiVersion:
|
65
|
+
apiVersion: apps/v1
|
64
66
|
|
65
67
|
kind: Deployment
|
66
68
|
|
@@ -68,14 +70,16 @@
|
|
68
70
|
|
69
71
|
name: visit-counter
|
70
72
|
|
71
|
-
labels:
|
72
|
-
|
73
|
-
app: visit-counter
|
74
|
-
|
75
73
|
spec:
|
76
74
|
|
77
75
|
replicas: 1
|
78
76
|
|
77
|
+
selector:
|
78
|
+
|
79
|
+
matchLabels:
|
80
|
+
|
81
|
+
app: visit-counter
|
82
|
+
|
79
83
|
template:
|
80
84
|
|
81
85
|
metadata:
|
@@ -88,27 +92,27 @@
|
|
88
92
|
|
89
93
|
containers:
|
90
94
|
|
91
|
-
- name: visit-counter
|
95
|
+
- name: visit-counter
|
92
|
-
|
96
|
+
|
93
|
-
image:
|
97
|
+
image: gcr.io/buyma-dev/visit-counter:v1
|
94
|
-
|
98
|
+
|
95
|
-
env:
|
99
|
+
env:
|
96
|
-
|
100
|
+
|
97
|
-
- name: REDISHOST
|
101
|
+
- name: REDISHOST
|
98
|
-
|
102
|
+
|
99
|
-
valueFrom:
|
103
|
+
valueFrom:
|
100
|
-
|
104
|
+
|
101
|
-
configMapKeyRef:
|
105
|
+
configMapKeyRef:
|
102
|
-
|
106
|
+
|
103
|
-
name: redishost
|
107
|
+
name: redishost
|
104
|
-
|
108
|
+
|
105
|
-
key: REDISHOST
|
109
|
+
key: REDISHOST
|
106
|
-
|
110
|
+
|
107
|
-
ports:
|
111
|
+
ports:
|
108
|
-
|
109
|
-
|
112
|
+
|
110
|
-
|
111
|
-
containerPort: 8080
|
113
|
+
- containerPort: 8080
|
114
|
+
|
115
|
+
|
112
116
|
|
113
117
|
```
|
114
118
|
|
@@ -136,15 +140,13 @@
|
|
136
140
|
|
137
141
|
# See README.md on how to inject environment variable as ConfigMap on GKE
|
138
142
|
|
139
|
-
|
140
|
-
|
141
143
|
ENV REDISHOST 10.0.0.3
|
142
144
|
|
143
145
|
ENV REDISPORT 6379
|
144
146
|
|
145
147
|
|
146
148
|
|
147
|
-
|
149
|
+
# Install dependencies.
|
148
150
|
|
149
151
|
ADD requirements.txt /app/requirements.txt
|
150
152
|
|
@@ -152,11 +154,13 @@
|
|
152
154
|
|
153
155
|
|
154
156
|
|
157
|
+
# Add application code.
|
158
|
+
|
155
159
|
ADD . /app
|
156
160
|
|
157
161
|
|
158
162
|
|
159
|
-
CMD ["gunicorn", "-b", "0.0.0.0:
|
163
|
+
CMD ["gunicorn", "-b", "0.0.0.0:8080", "main:app"]
|
160
164
|
|
161
165
|
|
162
166
|
|
@@ -196,9 +200,15 @@
|
|
196
200
|
|
197
201
|
app = Flask(__name__)
|
198
202
|
|
203
|
+
|
204
|
+
|
205
|
+
redis_host = os.environ.get('REDISHOST', 'localhost')
|
206
|
+
|
199
|
-
|
207
|
+
redis_port = int(os.environ.get('REDISPORT', 6379))
|
200
|
-
|
208
|
+
|
201
|
-
redis_client = redis.StrictRedis(host=
|
209
|
+
redis_client = redis.StrictRedis(host=redis_host, port=redis_port)
|
210
|
+
|
211
|
+
|
202
212
|
|
203
213
|
|
204
214
|
|
@@ -212,6 +222,8 @@
|
|
212
222
|
|
213
223
|
|
214
224
|
|
225
|
+
|
226
|
+
|
215
227
|
@app.errorhandler(500)
|
216
228
|
|
217
229
|
def server_error(e):
|
@@ -228,9 +240,17 @@
|
|
228
240
|
|
229
241
|
|
230
242
|
|
243
|
+
|
244
|
+
|
231
245
|
if __name__ == '__main__':
|
232
246
|
|
247
|
+
# This is used when running locally. Gunicorn is used to run the
|
248
|
+
|
249
|
+
# application on Google App Engine. See entrypoint in app.yaml.
|
250
|
+
|
233
|
-
app.run(host='
|
251
|
+
app.run(host='0.0.0.0', port=8080, debug=True)
|
252
|
+
|
253
|
+
|
234
254
|
|
235
255
|
```
|
236
256
|
|
@@ -244,7 +264,7 @@
|
|
244
264
|
|
245
265
|
env: flex
|
246
266
|
|
247
|
-
entrypoint: gunicorn -b
|
267
|
+
entrypoint: gunicorn -b :$PORT main:app
|
248
268
|
|
249
269
|
|
250
270
|
|
@@ -258,7 +278,7 @@
|
|
258
278
|
|
259
279
|
env_variables:
|
260
280
|
|
261
|
-
REDISHOST:
|
281
|
+
REDISHOST: 10.0.0.3
|
262
282
|
|
263
283
|
REDISPORT: 6379
|
264
284
|
|
@@ -272,6 +292,4 @@
|
|
272
292
|
|
273
293
|
|
274
294
|
|
275
|
-
|
276
|
-
|
277
|
-
```
|
295
|
+
```
|
2
追記
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
redisのインスタンスにアクセスできないエラー'Connection refused'について
|
test
CHANGED
@@ -1,19 +1,277 @@
|
|
1
|
-
G
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
```
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
1
|
+
GKEのkubernetesで[redisインスタンスとクラスタを結合するチュートリアル](https://cloud.google.com/memorystore/docs/redis/connect-redis-instance-gke)通りにEXTERNAL-IPでアクセスしたのですが、下のようなエラーが出てしまいます
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
```
|
6
|
+
|
7
|
+
$ curl http://35.200.67.203
|
8
|
+
|
9
|
+
>>>
|
10
|
+
|
11
|
+
curl: (7) Failed to connect to 35.200.67.203 port 80: Connection refused
|
12
|
+
|
13
|
+
```
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
ファイルは下のような構成と内容になってます。おそらくserviceを定義しているロードバランサに問題があるかと思うのですが、理由がわかりません。ご教授お願いします
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
ファイル一覧
|
22
|
+
|
23
|
+
```
|
24
|
+
|
25
|
+
app.yaml Dockerfile main.py redis_lb.yaml redis_pod.yaml requirements.txt
|
26
|
+
|
27
|
+
```
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
```yaml
|
32
|
+
|
33
|
+
# redis_lb.yaml
|
34
|
+
|
35
|
+
apiVersion: v1
|
36
|
+
|
37
|
+
kind: Service
|
38
|
+
|
39
|
+
metadata:
|
40
|
+
|
41
|
+
name: visit-counter
|
42
|
+
|
43
|
+
spec:
|
44
|
+
|
45
|
+
type: LoadBalancer
|
46
|
+
|
47
|
+
selector:
|
48
|
+
|
49
|
+
app: visit-counter
|
50
|
+
|
51
|
+
ports:
|
52
|
+
|
53
|
+
- port: 80
|
54
|
+
|
55
|
+
targetPort: 8080
|
56
|
+
|
57
|
+
protocol: TCP
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
# redis_pod.yaml
|
62
|
+
|
63
|
+
apiVersion: extensions/v1beta1
|
64
|
+
|
65
|
+
kind: Deployment
|
66
|
+
|
67
|
+
metadata:
|
68
|
+
|
69
|
+
name: visit-counter
|
70
|
+
|
71
|
+
labels:
|
72
|
+
|
73
|
+
app: visit-counter
|
74
|
+
|
75
|
+
spec:
|
76
|
+
|
77
|
+
replicas: 1
|
78
|
+
|
79
|
+
template:
|
80
|
+
|
81
|
+
metadata:
|
82
|
+
|
83
|
+
labels:
|
84
|
+
|
85
|
+
app: visit-counter
|
86
|
+
|
87
|
+
spec:
|
88
|
+
|
89
|
+
containers:
|
90
|
+
|
91
|
+
- name: visit-counter
|
92
|
+
|
93
|
+
image: "gcr.io/sturdy-willow-167902/visit-counter:v1"
|
94
|
+
|
95
|
+
env:
|
96
|
+
|
97
|
+
- name: REDISHOST
|
98
|
+
|
99
|
+
valueFrom:
|
100
|
+
|
101
|
+
configMapKeyRef:
|
102
|
+
|
103
|
+
name: redishost
|
104
|
+
|
105
|
+
key: REDISHOST
|
106
|
+
|
107
|
+
ports:
|
108
|
+
|
109
|
+
- name: http
|
110
|
+
|
111
|
+
containerPort: 8080
|
112
|
+
|
113
|
+
```
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
```txt
|
118
|
+
|
119
|
+
# Dockerfile
|
120
|
+
|
121
|
+
FROM gcr.io/google_appengine/python
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
RUN virtualenv -p python3.4 /env
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
ENV VIRTUAL_ENV /env
|
130
|
+
|
131
|
+
ENV PATH /env/bin:$PATH
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
# Note: REDISHOST value here is only used for local testing
|
136
|
+
|
137
|
+
# See README.md on how to inject environment variable as ConfigMap on GKE
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
ENV REDISHOST 10.0.0.3
|
142
|
+
|
143
|
+
ENV REDISPORT 6379
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
ADD requirements.txt /app/requirements.txt
|
150
|
+
|
151
|
+
RUN pip install -r /app/requirements.txt
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
ADD . /app
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
CMD ["gunicorn", "-b", "0.0.0.0:6379", "main:app"]
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
# requirements.txt
|
168
|
+
|
169
|
+
Flask==1.0.2
|
170
|
+
|
171
|
+
gunicorn==19.9.0
|
172
|
+
|
173
|
+
redis==3.0.1
|
174
|
+
|
175
|
+
```
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
```python
|
182
|
+
|
183
|
+
# main.py
|
184
|
+
|
185
|
+
import logging
|
186
|
+
|
187
|
+
import os
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
from flask import Flask
|
192
|
+
|
193
|
+
import redis
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
app = Flask(__name__)
|
198
|
+
|
199
|
+
# ホスト、ポート
|
200
|
+
|
201
|
+
redis_client = redis.StrictRedis(host='10.0.0.3', port=6379)
|
202
|
+
|
203
|
+
|
204
|
+
|
205
|
+
@app.route('/')
|
206
|
+
|
207
|
+
def index():
|
208
|
+
|
209
|
+
value = redis_client.incr('counter', 1)
|
210
|
+
|
211
|
+
return 'Visitor number: {}'.format(value)
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
@app.errorhandler(500)
|
216
|
+
|
217
|
+
def server_error(e):
|
218
|
+
|
219
|
+
logging.exception('An error occurred during a request.')
|
220
|
+
|
221
|
+
return """
|
222
|
+
|
223
|
+
An internal error occurred: <pre>{}</pre>
|
224
|
+
|
225
|
+
See logs for full stacktrace.
|
226
|
+
|
227
|
+
""".format(e), 500
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
if __name__ == '__main__':
|
232
|
+
|
233
|
+
app.run(host='10.0.0.3', port=6379, debug=True)
|
234
|
+
|
235
|
+
```
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
```yaml
|
240
|
+
|
241
|
+
# app.yaml
|
242
|
+
|
243
|
+
runtime: python
|
244
|
+
|
245
|
+
env: flex
|
246
|
+
|
247
|
+
entrypoint: gunicorn -b 0.0.0.0:6379 main:app
|
248
|
+
|
249
|
+
|
250
|
+
|
251
|
+
runtime_config:
|
252
|
+
|
253
|
+
python_version: 3
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
# update with Redis instance host IP, port
|
258
|
+
|
259
|
+
env_variables:
|
260
|
+
|
261
|
+
REDISHOST: 10.0.0.3
|
262
|
+
|
263
|
+
REDISPORT: 6379
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
# update with Redis instance network name
|
268
|
+
|
269
|
+
network:
|
270
|
+
|
271
|
+
name: default
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
|
276
|
+
|
277
|
+
```
|
1
追記
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
G
|
1
|
+
GCPで作成したインスタンスのHOSTとPORTを確認する方法
|
test
CHANGED
@@ -1,7 +1,19 @@
|
|
1
|
-
GKEのkubernetes上でコードを動かし、負荷分散したIPアドレスでアクセスしたら結果が返ってくるようにしたいのですが、下記のサイトを試したのですが、上手く行きません。
|
2
|
-
|
3
|
-
|
1
|
+
GCPでGUIで作成したVMインスタンスのhostとportを確認したいのですが
|
4
2
|
|
5
3
|
|
6
4
|
|
5
|
+
GUIで「mlops」というインスタンスを作成して、下記コマンドで下記したのですが、確認できませんでした。
|
6
|
+
|
7
|
+
```linux
|
8
|
+
|
7
|
-
|
9
|
+
gcloud compute instances describe <instance name>
|
10
|
+
|
11
|
+
=> gcloud compute instances describe mlops
|
12
|
+
|
13
|
+
```
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
GUIで作成したインスタンスの詳細を確認するにはどうしたら良いでしょうか?
|
18
|
+
|
19
|
+
ご教授お願いします
|