首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法连接到minikube和NodePort服务端口- windows

无法连接到minikube和NodePort服务端口- windows
EN

Stack Overflow用户
提问于 2022-08-16 04:06:19
回答 1查看 138关注 0票数 1

我试图在k8s上本地运行一个应用程序,但是我无法到达它。

这是我的工作:

代码语言:javascript
运行
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: listings
  labels:
    app: listings
spec:
  replicas: 2
  selector:
    matchLabels:
      app: listings
  template:
    metadata:
      labels:
        app: listings
    spec:
      containers:
        - image: mydockerhub/listings:latest
          name: listings
          envFrom:
            - secretRef:
                name: listings-secret
            - configMapRef:
                name: listings-config
          ports:
            - containerPort: 8000
              name: django-port

这是我的服务

代码语言:javascript
运行
复制
apiVersion: v1
kind: Service
metadata:
  name: listings
  labels:
    app: listings
spec:
  type: NodePort
  selector:
    app: listings
  ports:
    - name: http
      port: 8000
      targetPort: 8000
      nodePort: 30036
      protocol: TCP

在这个阶段,我不想使用其他方法,如入口或ClusterIP,或负载均衡器。我想让nodePort发挥作用,因为我正在努力学习。

当我运行kubectl get svc -o wide时我看到

代码语言:javascript
运行
复制
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE   SELECTOR
listings     NodePort    10.107.77.231   <none>        8000:30036/TCP   28s   app=listings

当我运行kubectl get node -o wide时我看到

代码语言:javascript
运行
复制
NAME       STATUS   ROLES                  AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION                      CONTAINER-RUNTIME
minikube   Ready    control-plane,master   85d   v1.23.3   192.168.49.2   <none>        Ubuntu 20.04.2 LTS   5.10.16.3-microsoft-standard-WSL2   docker://20.10.12

当我运行minikube ip时,它显示了192.168.49.2

我试着打开http://192.168.49.2:30036/health,但不是打开This site can’t be reached

如何对外公开我的应用程序?

请注意,我已经创建了所需的configmap和秘密对象。还请注意,这是一个简单的django restful应用程序,如果您到达/health端点,它将返回成功。仅此而已。因此,应用程序没有问题。

EN

Stack Overflow用户

回答已采纳

发布于 2022-08-16 04:36:07

这是因为您的本地和minikube不在同一网络段,因此您必须做更多的事情来访问windows上的minikube服务。

第一

代码语言:javascript
运行
复制
$ minikube service list

这将显示您的服务细节,包括名称、url、nodePort、targetPort。

然后

代码语言:javascript
运行
复制
$ minikube service --url listings

它将打开一个端口来侦听您的windows机器,该端口可以将流量转发到minikube节点端口。

也可以使用命令kubectl port-forward在主机端口上公开服务,例如:

代码语言:javascript
运行
复制
kubectl port-forward --address 0.0.0.0 -n default service/listings 30036:8000

然后尝试使用http://localhost:30036/health

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73368691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档