drno-reg
@drno-reg
см не кратко

Почему не проходит обращение по NodePort в minikube?

Установил на mac minikube

написал api на flask и упаковал его в docker image

FROM debian:latest

COPY . /app
WORKDIR /app
RUN pip3 install --no-cache-dir -r requirements.txt

CMD ["uwsgi", "--socket", "0.0.0.0:5001", "--protocol=http", "-w", "wsgi:app", "--ini", "wsgi.ini"]


загрузил в локальный minikube docker image

minikube image load drnoreg/devops_blog:0.0.1

написал deployment и service для размещения docker image в minikube

app.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: devops-blog
spec:
  selector:
    matchLabels:
      run: devops-blog
  replicas: 1
  template:
    metadata:
      labels:
        run: devops-blog
    spec:
      containers:
        - name: devops-blog
          image: docker.io/drnoreg/devops_blog:0.0.1
          ports:
            - name: pod-port
              containerPort: 5001
---
apiVersion: v1
kind: Service
metadata:
  name: devops-blog
  labels:
    run: devops-blog
spec:
  type: NodePort
  ports:
    - name: pod-port
      port: 5001
      targetPort: 5001
      protocol: TCP
      nodePort: 30001
  selector:
    run: devops-blog


создал namespace и отправил туда deployment и service
kubectl create namespace devops-blog
kubectl create -f app.yaml


включил проброс портов
kubectl port-forward devops-blog-f666d8cd7-njp95  5001:5001
Forwarding from 127.0.0.1:5001 -> 5001
Forwarding from [::1]:5001 -> 5001
Handling connection for 5001
Handling connection for 5001

заработало

теперь пробую зайти через NodePort

% kubectl get pods -n devops-blog -o wide                    
NAME                          READY   STATUS    RESTARTS   AGE   IP            NODE       NOMINATED NODE   READINESS GATES
devops-blog-f666d8cd7-njp95   1/1     Running   0          32m   10.244.0.21   minikube   <none>           <none>

% kubectl get service -n devops-blog -o wide
NAME          TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE   SELECTOR
devops-blog   NodePort   10.110.34.149   <none>        5001:30001/TCP   32m   run=devops-blog

% kubectl get node -o wide
NAME       STATUS   ROLES           AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION     CONTAINER-RUNTIME
minikube   Ready    control-plane   14h   v1.26.1   192.168.49.2   <none>        Ubuntu 20.04.5 LTS   5.10.47-linuxkit   docker://20.10.23


пробую пройти по url 192.168.49.2:30001 и ничего

Почему не проходит обращение по NodePort в minikube?
  • Вопрос задан
  • 552 просмотра
Пригласить эксперта
Ответы на вопрос 2
@vitaly_il1
DevOps Consulting
Наконец дошли руки и протестировал на моем Mac- и вашу конфигурацию, и https://www.decodingdevops.com/kubernetes-nodeport....
Не работает.
А вот и ответ - https://github.com/kubernetes/minikube/issues/1119...:
"This is a known issue, Docker Desktop networking doesn't support ports. "
Ответ написан
Комментировать
@My-MyGovoritKorovka
я так подозреваю, потому что вы порт открыли на локальной петле а не на eth.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы