kubernetes - 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
笔记:
- 如果我删除端口部分,部署将被成功创建,但是服务(我将它放在另一个文件中,如果需要我可以共享),将能够将节点上的端口链接到 pod 中的端口因为 pod 没有公开任何端口(同样它只是在端口上运行的容器)
- 我浏览了这个页面,它确实说要使用 containerPort,所以我不知道我错过了什么
更新
错误出现在我的部署文件中:修复它后,我可以同时创建部署和服务,但服务仍然没有在节点上公开。这是我的服务定义:
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
我错过了什么?
更新
这是浏览器显示的内容:
解决方案
调用时: localhost:32766 它返回 404
这意味着应用程序实际上正在响应请求。但是您发送的请求是应用程序尚未实现的URL 。404 Not Found
是 Web 服务器在没有请求 URL 的路径时响应的 Http 状态代码。
推荐阅读
- java - javax.el.PropertyNotFoundException:在类型 [com.project70.Flight] 上找不到属性 [FlightNo]
- javascript - 如何使用传递给 JavaScript 函数的参数添加单击事件侦听器
- javascript - 为什么我的 javascript 添加类将图像显示变为无效果?
- python - 无法从“keras.callbacks”导入名称“CallbackList”
- java - 在图库中显示保存的图像
- python - Tensorflow-为什么我的 ANN 模型不学习
- php - 不允许使用 php slim 405 方法
- django - 从 Django 中的 requests.post 获取 XML 数据
- r - 如何将代码放入 R markdown 环境中?
- python - 用于根据python中的指定日期在azure容器中定位数据的函数