저는 Windows에서 Docker Desktop을 사용하고 있습니다. Python 웹 앱이 포함된 도커 이미지가 있습니다. 컨테이너를 실행하고 호스트에서 http://localhost:9090으로 액세스할 수 있습니다.
이제 아래 배포 yaml을 사용하여 Kubernetes 클러스터에서 실행하려고 합니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: flask
namespace: dev
labels:
app: flask
spec:
replicas: 3
selector:
matchLabels:
app: flask
template:
metadata:
labels:
app: flask
spec:
containers:
- name: flask
image: myubuntu
imagePullPolicy: Never
resources:
requests:
cpu: "500m"
memory: "500Mi"
ports:
- containerPort: 9090
---
apiVersion: v1
kind: Service
metadata:
name: flask
namespace: dev
spec:
type: NodePort
selector:
app: flask
ports:
- protocol: TCP
port: 9090
targetPort: 9090
그런 다음 나는 다음을 실행했습니다.
kubectl apply -f deployment.yaml
kubectl get service
나에게 준 :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
flask NodePort 10.110.188.94 <none> 9090:30007/TCP 10m
하지만 호스트에서 다음을 통해 액세스할 수 없습니다.
curl http://localhost:9090
curl http://localhost:30007
curl http://10.110.188.94:9090
curl http://10.110.188.94:30007
호스트에서 웹 앱에 액세스하는 방법을 아는 사람이 있나요?
답변1
나는 알아 냈다. NodePort 서비스를 제거하고 대신 LoadBalancer를 만들었습니다.
kubectl expose deployment flask --type="LoadBalancer" -n dev
이제 localhost:9090에서 내 앱에 액세스할 수 있습니다.