kubernetes - 我在 kubernetes 中公开了我的 pod,但我似乎无法与它建立连接
问题描述
我正在尝试公开我在 minikube 上所做的部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-test
labels:
app: debian
spec:
replicas: 1
selector:
matchLabels:
app: debian
strategy: {}
template:
metadata:
labels:
app: debian
spec:
containers:
- image: agracia10/debian_bash:latest
name: debian
ports:
- containerPort: 8006
resources: {}
restartPolicy: Always
status: {}
我决定跟随是写在这里
我尝试使用以下命令公开部署:
kubectl expose pod deployment-test-8497d6f458-xxhgm --type=NodePort --port=8080 --target-port=80
但是当我尝试使用由提供的 url 访问由暴露命令创建的服务时
minikube service deployment-test-8497d6f458-xxhgm --url
它使用数据包发送器尝试连接到服务时抛出错误: 数据包发送器日志
我不太确定这可能是什么原因,我认为这与当我获得服务时它在外部 ip 字段上显示的事实有关。此外,当我尝试使用minikube ip
它检索节点 IP 时,它会给出一个地址,但当minikube service --url
它给出 127.0.0.1 地址时。在任何情况下,使用任何一个都行不通。
解决方案
由于端口配置不匹配,它无法正常工作。
您在 上运行的部署容器,8006
但您已经暴露了8080
并且您的目标端口是:--target-port=80
所以由于这个原因它不起作用。
理想的流量如下:
service (node port, cluster IP or any) > Deployment > PODs
下面分享部署和服务的例子
apiVersion: apps/v1
kind: Deployment
metadata:
name: blog-app-server-instance
labels:
app: blog-app
spec:
replicas: 1
selector:
matchLabels:
app: blog-app
template:
metadata:
labels:
app: blog-app
spec:
containers:
- name: agracia10/debian_bash:latest
image: blog-app-server
ports:
- containerPort: 8006
---
apiVersion: v1
kind: Service
metadata:
name: blog-app-service
labels:
app: blog-app
spec:
selector:
app: blog-app
type: NodePort
ports:
- port: 80
nodePort: 31364
targetPort: 8006
protocol: TCP
name: HTTP
所以我改变的是image
and target port
。
一旦您的节点端口服务启动并运行,您将在端口80或31364上发送请求
我将在内部将请求重定向到容器的目标端口8006。
使用此命令,您将部署暴露在错误的目标点上
kubectl expose pod deployment-test-8497d6f458-xxhgm --type=NodePort --port=8080 --target-port=80
理想情况下应该是8006
推荐阅读
- json - 将 Excel 解析为 JSON,处理 #N/A 错误
- css - 带有边框的 CSS 段落布局和需要自己的边框的 ::before 元素
- font-awesome - 在使用 Svelte #each 进行数组排序和显示后,Fontawesome 图标不止一次呈现
- python - sqlalchemy:获取值不存在的 id
- django - 拦截 Django/DRF 中某个应用程序的所有异常
- r - 改进ggplot2中概率密度函数的绘图
- generics - 在打字稿中将对象类型转换为字符串
- python - 我可以在执行 filedialog.askfilename() 时使用 Nautilus 文件管理器吗
- java - 原型范围会导致多少开销?
- latex - 如何删除在多个页面上重复的标题标题(LaTeX,CurVe)