我需要做些什么才能让我的本地浏览器访问并向在我的机器上本地运行的Minikube示例中运行的Web服务请求资源?
我在尝试kubectl port-forward
时得到了Connection refused
。
我的工作流程是:
1.正在创建启用Web服务的停靠文件
1.在Docker中启动minikube
1.构建Docker映像
1.将图像本地导入Minikube
1.创建了具有一个容器和一个NodePort服务的部署
1.应用部署/服务
1.运行kubectl port-forward(希望将请求转发到我的容器)
1.打开浏览器访问www.example.com 127.0.0.1:31000
端口配置摘要
- 停靠文件:
- 暴露量:80
- 葡萄膜炎:80
- 部署
- 节点端口服务:
- 端口:80
- 目标端口:80
- 节点端口:31000
- Kubectl指挥部:八千五百分三万一千分
- 浏览器:127.0.0.1:8500
设置并运行
开发文档文件(步骤1)
FROM python:3.11-buster # Some Debian Python image... I built my own
COPY ../sources/api/ /app/
RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt
ENV PYTHONPATH=/app/
EXPOSE 80
CMD ["uvicorn", "app.main:app", "--proxy-headers", "--host", "0.0.0.0", "--port", "80"]
构建序列(步骤2至4)
# 2 - start minikube
minikube start --bootstrapper=kubeadm --vm-driver=docker
minikube docker-env
## 3 - build image
docker build -f ../../service1/deploy/dev.dockerfile ../../service1 -t acme-app.service1:latest
## 4 - load image into minikube
minikube image load acme-app.service1:latest
展开(步骤5和6)
- 部署. yaml**
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: acme-service-1-deployment
namespace: acme-app-dev
labels:
app: service-1
spec:
replicas: 1
selector:
matchLabels:
app: service-1
template:
metadata:
labels:
app: service-1
spec:
containers:
- name: service1-container
image: docker.io/library/acme-app.service1:latest
imagePullPolicy: Never
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: service-1-service
namespace: acme-app-dev
spec:
type: NodePort
selector:
app: service-1
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 31000
- 部署**
kubectl apply -f deployment.yaml
kubectl端口转发(步骤7)
- 寻找Pod**
kubectl get pods -n acme-app-dev
NAME READY STATUS RESTARTS AGE
acme-service-1-deployment-76748d7ff6-llcsr 1/1 Running 0 11s
- 端口转发到pod**
port-forward acme-service-1-deployment-76748d7ff6-llcsr 8500:31000 -n acme-app-dev
Forwarding from 127.0.0.1:8500 -> 31000
Forwarding from [::1]:8500 -> 31000
在浏览器中测试(步骤8)
打开常用浏览器并导航至127.0.0.1:31000。
运行端口转发的控制台现在输出:
E0123 14:54:16.208010 25932 portforward.go:406] an error occurred forwarding 8500 -> 31000: error forwarding port 31000 to pod d4c0fa6cb16ce02335a05cad904fbf2ab7818e2073d7c7ded8ad05f193aa37e7, uid : exit status 1: 2023/01/23 14:54:16 socat[39370] E connect(5, AF=2 127.0.0.1:31000, 16): Connection refused
E0123 14:54:16.213268 25932 portforward.go:234] lost connection to pod
∮我看到了什么∮
我试着浏览kubernetes网站上的文档以及这里的问题(是的,有类似的)。这是非常相似的-虽然没有标记的答案,仍然是一个问题的外观。我看不到一个解决我的问题在这里。
NodePort exposed Port connection refused
我正在Windows上运行Minikube,我刚刚开始了一段kubernetes之旅。
图像本身在Docker中从Docker组成工作。我可以从日志(Minikube Jmeter 板)中看到Pod在Minikube中启动并运行。
1条答案
按热度按时间3pvhb19x1#
你搞混了:
请改为拨打以下电话之一:
kubectl port-forward -n acme-app-dev deploy/acme-service-1-deployment 8500:80
kubectl port-forward -n acme-app-dev service/service-1-service 8500:80
minikube service -n acme-app-dev service-1-service
并使用提供的URL。