flask-simple-ingress.yaml 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: flask-app
  5. namespace: nginx-app
  6. labels:
  7. app: flask-app
  8. spec:
  9. replicas: 2
  10. selector:
  11. matchLabels:
  12. app: flask-app
  13. template:
  14. metadata:
  15. labels:
  16. app: flask-app
  17. spec:
  18. containers:
  19. - name: flask
  20. image: registry.cn-hangzhou.aliyuncs.com/zhongpengqun/wanderer:amd64-linux-python-3.10-slim
  21. ports:
  22. - containerPort: 8000
  23. env:
  24. - name: FLASK_APP
  25. value: "app.py"
  26. command:
  27. - sh
  28. - -c
  29. - |
  30. pip install flask && \
  31. echo '
  32. from flask import Flask
  33. app = Flask(__name__)
  34. @app.route("/")
  35. def hello():
  36. return "<h1>Hello from Flask on port 8000!</h1>"
  37. if __name__ == "__main__":
  38. app.run(host="0.0.0.0", port=8000)
  39. ' > /app.py && \
  40. python /app.py
  41. resources:
  42. requests:
  43. memory: "64Mi"
  44. cpu: "128m"
  45. limits:
  46. memory: "256Mi"
  47. cpu: "500m"
  48. ---
  49. apiVersion: v1
  50. kind: Service
  51. metadata:
  52. name: flask-service
  53. namespace: nginx-app
  54. labels:
  55. app: flask-app
  56. spec:
  57. selector:
  58. app: flask-app
  59. ports:
  60. - protocol: TCP
  61. port: 80
  62. targetPort: 8000
  63. type: ClusterIP
  64. ---
  65. apiVersion: networking.k8s.io/v1
  66. kind: Ingress
  67. metadata:
  68. name: flask-ingress
  69. namespace: nginx-app
  70. annotations:
  71. kubernetes.io/ingress.class: "traefik"
  72. spec:
  73. rules:
  74. - host: 215.9981.tech
  75. http:
  76. paths:
  77. - path: /hello
  78. pathType: Prefix
  79. backend:
  80. service:
  81. name: flask-service
  82. port:
  83. number: 80