kubernetes webapp无法在浏览器中访问,但在curl中

new9mtju  于 2023-03-29  发布在  Kubernetes
关注(0)|答案(1)|浏览(106)

我使用minikube设置了一个本地kubernetes集群。在我的集群上,我只有一个部署正在运行,并连接了一个服务。我在端口30100上使用了一个NodePort来暴露服务,因此我可以从浏览器或通过curl访问它。
下面是我用来设置集群的python-server.yml文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: python-server-deployment
  namespace: kubernetes-hello-world
  labels:
    app: python-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: python-server
  template:
    metadata:
      labels:
        app: python-server
    spec:
      containers:
      - name: python-hello-world
        image: hello-world-python:latest
        imagePullPolicy: Never
        ports:
        - containerPort: 5000
---
apiVersion: v1
kind: Service
metadata:
  name: python-server-internal-service
  namespace: kubernetes-hello-world
spec:
  type: NodePort
  selector:
    app: python-server
  ports:
    - protocol: TCP
      port: 80
      targetPort: 5000
      nodePort: 30100

我的python-hello-world图像基于这个python文件:

from http.server import BaseHTTPRequestHandler, HTTPServer

class MyServer(BaseHTTPRequestHandler):
    def do_GET(self):
        html = """
<!DOCTYPE html>
<html>
<head>
    <title>Hello World</title>
    <meta charset="utf-8">
</head>
<body>
    <h1>Hello World</h1>
</body>
</html>
        """
        self.send_response(200)
        self.send_header('Access-Control-Allow-Origin', '*')
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        self.wfile.write(bytes(html, "utf-8"))
    

def run():
    addr = ('', 5000)
    httpd = HTTPServer(addr, MyServer)
    httpd.serve_forever()

if __name__ == '__main__':
    run()

当我运行集群时,我可以像预期的那样接收到带有curl {node_ip}:30100的hello world html。但是当我试图通过浏览器使用相同的ip:port访问我的服务时,我得到了超时。我读到这可能是由于缺少头文件造成的,但我认为我的python文件中包含了所有必要的头文件,所以还有什么可能导致这种情况?

hwamh0ep

hwamh0ep1#

这并不是说你到达了你的节点的IP(如果需要的话,你应该提供一些关于环境的更多信息)。
但你可以端口转发服务,并很容易达到它。
看看这里:https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/
其他doc:How kubectl port-forward works?

相关问题