【k8s】pod简单启动一个python http服务示例

93 阅读1分钟

pod简单启动一个python http服务,而又不想打镜像,可以把python代码写到command中,示例:

apiVersion: v1
kind: Pod
metadata:
  name: python-http-server
spec:
  containers:
  - name: python-http-server
    image: python:3
    command:
    - /bin/bash
    - -c
    - |
      python3 -c "
      from http.server import BaseHTTPRequestHandler, HTTPServer
      import json

      class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
          def do_GET(self):
              if self.path == '/v1/test':
                  self.send_response(200)
                  self.send_header('Content-type', 'application/json')
                  self.end_headers()
                  response = json.dumps({'test': 'ok'})
                  self.wfile.write(response.encode('utf-8'))
              elif self.path == '/':
                  self.send_response(200)
                  self.send_header('Content-type', 'application/json')
                  self.end_headers()
                  response = json.dumps({'root': 'ok'})
                  self.wfile.write(response.encode('utf-8'))
              else:
                  self.send_response(404)
                  self.send_header('Content-type', 'application/json')
                  self.end_headers()
                  response = json.dumps({'error': 'Not Found'})
                  self.wfile.write(response.encode('utf-8'))

      def run(server_class=HTTPServer, handler_class=SimpleHTTPRequestHandler, port=8000):
          server_address = ('', port)
          httpd = server_class(server_address, handler_class)
          print(f'Starting httpd server on port {port}...')
          httpd.serve_forever()

      if __name__ == '__main__':
          run()
      "
    ports:
    - containerPort: 8000