docker 将FastAPI应用部署到K8

bttbmeg0  于 2023-03-07  发布在  Docker
关注(0)|答案(1)|浏览(176)

目前正在学习K8和FastAPI。我想部署一个FastAPI应用程序到我的Minikube集群。如果我运行容器,它工作正常,但我不能通过Minikube IP端口30001访问它。我做错了什么?
FastAPI代码:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello World!"}

@app.get("/hello/{name}")
async def say_hello(name: str):
    return {"message": f"Hello, {name}"}

停靠文件

FROM python:3.9
RUN pip install fastapi uvicorn
COPY ./app /app
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]

docker-compose.yaml

version: '3'
services:
  core-api:
    build: .
    container_name: "fastapi-runtime-container"
    ports:
      - "8000:8000"
    command: uvicorn app.main:app --host 0.0.0.0 --port 8000
    volumes:
      - ./app/:/app

K8部署:

apiVersion: apps/v1
kind: Deployment
metadata:
    name: fastapi-app
spec:
    replicas: 1
    selector:
        matchLabels:
            app: fastapi-app
    template:
        metadata:
            labels:
                app: fastapi-app
        spec:
            containers:
                - name: fastapi-app
                  image: luwinkler/fastapi:latest
                  ports:
                      - containerPort: 8000
---
apiVersion: v1
kind: Service
metadata:
    name: fastapi-service
spec:
    type: NodePort
    selector:
        app: fastapi-app
    ports:
        - protocol: TCP
          port: 8000
          targetPort: 8000
          nodePort: 30001

根据“kubectl get all”,服务运行良好,Pod也在运行。
我从“minikube ip”+端口30001获取IP地址。

shyt4zoc

shyt4zoc1#

请在本地网络上配置Port forwarding,因为这将允许您通过Minikube群集访问FastAPI应用程序。
请按照下面的kubectl命令建立端口转发:

kubectl port-forward <pod-name> 8080:8080

上述命令显示了以下输出。

Forwarding from 127.0.0.1:8080 → 8080
Forwarding from [::1]:8080 → 8080

请使用kubectl proxy命令建立从本地计算机到群集API服务器的直接连接,以便在特定端口上公开Kubernetes API。

kubectl proxy --port=6443

上述命令将给予以下响应:

Starting to serve on 127.0.0.1:6443

请在浏览器中键入以下信息,以查看Kubernetes群集默认命名空间中所有正在运行的Pod的列表。

http://localhost:6443/api/v1/namespaces/default/pods

要了解更多信息,请查看Lukonde Mwila编写的link

相关问题