質問編集履歴

4

追記

2018/12/04 10:11

投稿

trafalbad
trafalbad

スコア303

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=redis_host, port=redis_port)
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', port=8080, debug=True)
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

修正

2018/12/04 10:11

投稿

trafalbad
trafalbad

スコア303

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
- protocol: TCP
59
+
58
-
59
-
60
-
60
+
61
+
62
+
61
- # redis_pod.yaml
63
+ # redis_pod.yaml:
62
-
64
+
63
- apiVersion: extensions/v1beta1
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: "gcr.io/sturdy-willow-167902/visit-counter:v1"
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
- - name: http
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:6379", "main:app"]
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='10.0.0.3', port=6379)
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='10.0.0.3', port=6379, debug=True)
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 0.0.0.0:6379 main:app
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: 10.0.0.3
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

追記

2018/12/03 09:29

投稿

trafalbad
trafalbad

スコア303

test CHANGED
@@ -1 +1 @@
1
- GCPで作成したインスタンスのHOSTとPORTを確認する方法
1
+ redisのインスタンスにアクセスできないエラー'Connection refused'について
test CHANGED
@@ -1,19 +1,277 @@
1
- GCPGUIで作成したVMインスタンスhostとportを確認したのですが
2
-
3
-
4
-
5
- GUIで「mlops」というインスタンスを作成して、下記コマンドで下記したのですが、確認できませんでした。
6
-
7
- ```linux
8
-
9
- gcloud compute instances describe <instance name>
10
-
11
- => gcloud compute instances describe mlops
12
-
13
- ```
14
-
15
-
16
-
17
- GUIで作成したンスタンス詳細確認するにはどしたら良ょうか?
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

追記

2018/12/01 14:01

投稿

trafalbad
trafalbad

スコア303

test CHANGED
@@ -1 +1 @@
1
- GKEkubernetes上でpythonコードわ動かす方法
1
+ GCPで作成したインスタンスHOSTとPORTを確認方法
test CHANGED
@@ -1,7 +1,19 @@
1
- GKEのkubernetes上でコードを動かし、負荷分散したIPアドレスでアクセスしたら結果が返ってくるようにしたいのですが、下記のサイトを試したのですが、上手く行きません。
2
-
3
- 何か参考になるサイトや情報等ご存知でしたらご教授お願しま
1
+ GCPGUIで作成したVMインスタンスのhostとportを確認したので
4
2
 
5
3
 
6
4
 
5
+ GUIで「mlops」というインスタンスを作成して、下記コマンドで下記したのですが、確認できませんでした。
6
+
7
+ ```linux
8
+
7
- https://cloud.google.com/memorystore/docs/redis/quickstart-gcloud
9
+ gcloud compute instances describe <instance name>
10
+
11
+ => gcloud compute instances describe mlops
12
+
13
+ ```
14
+
15
+
16
+
17
+ GUIで作成したインスタンスの詳細を確認するにはどうしたら良いでしょうか?
18
+
19
+ ご教授お願いします