首页 > 解决方案 > kubenetes 部署在端口上公开 pod

问题描述

我的目标是在一项服务下公开我的所有端口。

我的 pod 包含一个在 80 端口下运行的容器化应用程序。

这是我创建部署的尝试:

apiVersion: apps/v1
kind: Deployment
metadata: name: my-deployment
spec:
    replicas: 5
    selector:
        matchLabels:
            app: myapp
    template:
        metadata:
            name: my-pod
            labels:
                app: myapp
        spec:
            containers:
                - name: httd
                  image: httpd
                  imagePullPolicy: Always
                  ports:
                      - containerPort: 80

但是,我收到错误:

error: error parsing deployment.yaml: error converting YAML to JSON: yaml: line 3: mapping values are not allowed in this context

笔记:

更新

错误出现在我的部署文件中:修复它后,我可以同时创建部署和服务,但服务仍然没有在节点上公开。这是我的服务定义:

apiVersion: v1
kind: Service
metadata:
    name: my-service
spec:
    selector:
            app: front-end
    ports:
        - port: 77
          targetPort: 80
          nodePort: 32766
    type: NodePort

如您所见,我将 pod 中的端口 80 映射到节点上的端口 32766,并且在调用时: localhost:32766 它返回 404

我错过了什么?

更新

这是浏览器显示的内容:

在此处输入图像描述

标签: kubernetes

解决方案


调用时: localhost:32766 它返回 404

这意味着应用程序实际上正在响应请求。但是您发送的请求是应用程序尚未实现的URL 。404 Not Found是 Web 服务器在没有请求 URL 的路径时响应的 Http 状态代码。


推荐阅读