flask-deployment-complete.yaml 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. apiVersion: v1
  2. kind: Namespace
  3. metadata:
  4. name: nginx-app
  5. ---
  6. apiVersion: apps/v1
  7. kind: Deployment
  8. metadata:
  9. name: flask-app
  10. namespace: nginx-app
  11. labels:
  12. app: flask-app
  13. spec:
  14. replicas: 2
  15. selector:
  16. matchLabels:
  17. app: flask-app
  18. template:
  19. metadata:
  20. labels:
  21. app: flask-app
  22. spec:
  23. containers:
  24. - name: flask
  25. image: python:3.9-slim
  26. ports:
  27. - containerPort: 8000
  28. env:
  29. - name: FLASK_APP
  30. value: "app.py"
  31. command:
  32. - sh
  33. - -c
  34. - |
  35. pip install flask && \
  36. echo '
  37. from flask import Flask
  38. app = Flask(__name__)
  39. @app.route("/")
  40. def hello():
  41. return "<h1>Hello from Flask on port 8000!</h1>"
  42. if __name__ == "__main__":
  43. app.run(host="0.0.0.0", port=8000)
  44. ' > /app.py && \
  45. python /app.py
  46. resources:
  47. requests:
  48. memory: "64Mi"
  49. cpu: "250m"
  50. limits:
  51. memory: "128Mi"
  52. cpu: "500m"
  53. ---
  54. apiVersion: v1
  55. kind: Service
  56. metadata:
  57. name: flask-service
  58. namespace: nginx-app
  59. labels:
  60. app: flask-app
  61. spec:
  62. selector:
  63. app: flask-app
  64. ports:
  65. - protocol: TCP
  66. port: 80
  67. targetPort: 8000
  68. type: ClusterIP