使用Kubernetes:socket.gaierror:[Erno-2]名称或服务未知



我正试图用Kubernetes来解决问题,所以我写了一个简单的应用程序。它在我的电脑上运行良好,但在使用Kubernetes部署后,应用程序无法启动。这就是代码的样子:

import uuid
import flask
from flask import Flask
hostname = str(uuid.uuid4())
app = Flask(__name__)

@app.route('/index')
@app.route('/')
def hello_world():
return flask.render_template('index.html', hostname=hostname)

if __name__ == '__main__':
app.run(host='0.0.0.0:5000')

使用docker:部署应用程序

FROM python:3.9.0a5-buster
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]

然而,我不断得到以下错误:

kubectl logs flask-debugger-696c587755-d64rg
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
Traceback (most recent call last):
File "/app/app.py", line 17, in <module>
app.run(host='0.0.0.0:5000')
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 990, in run
run_simple(host, port, self, **options)
File "/usr/local/lib/python3.9/site-packages/werkzeug/serving.py", line 1052, in run_simple
inner()
File "/usr/local/lib/python3.9/site-packages/werkzeug/serving.py", line 996, in inner
srv = make_server(
File "/usr/local/lib/python3.9/site-packages/werkzeug/serving.py", line 847, in make_server
return ThreadedWSGIServer(
File "/usr/local/lib/python3.9/site-packages/werkzeug/serving.py", line 740, in __init__
HTTPServer.__init__(self, server_address, handler)
File "/usr/local/lib/python3.9/socketserver.py", line 452, in __init__
self.server_bind()
File "/usr/local/lib/python3.9/http/server.py", line 138, in server_bind
socketserver.TCPServer.server_bind(self)
File "/usr/local/lib/python3.9/socketserver.py", line 466, in server_bind
self.socket.bind(self.server_address)
socket.gaierror: [Errno -2] Name or service not known

问题出在哪里?

import uuid
import flask
from flask import Flask
hostname = str(uuid.uuid4())
app = Flask(__name__)

@app.route('/index')
@app.route('/')
def hello_world():
return flask.render_template('index.html', hostname=hostname)

if __name__ == '__main__':
app.run(host='0.0.0.0',port=5000)

@iain shelvington是对的。它的端口参数问题。

最新更新