kubernetes - 为什么我的 kubectl 负载均衡器针对的是随机端口?
问题描述
我有一个服务和部署 kube 配置文件,如下所示。
现在,当我应用这两个文件时,它会创建一个负载均衡器,但它的目标是随机端口,而不是端口 80。
我是 EKS 的新手,尝试了不同的 kube 配置文件,但它仍然尝试以随机端口为目标。
service file:
apiVersion: v1
kind: Service
metadata:
name: runners-test
labels:
app: runners-test
spec:
ports:
- port: 80
targetPort: 80
selector:
app: runners-test
type: LoadBalancer
deployment file:
apiVersion: apps/v1
kind: Deployment
metadata:
name: runners-test
labels:
app: runners-test
spec:
replicas: 1
selector:
matchLabels:
app: runners-test
template:
metadata:
labels:
app: runners-test
spec:
containers:
- name: runners-test
image: mylocaldockerimage
ports:
- containerPort: 80
C02X67GOKL:TERRAFORM $ kubectl获取SVC名称类型cluster-ip外部-IP>端口(s)age kubernetes clusterip 10.100.0.0.1 443/tcp 8D Runners-test LoadBalancer 10.100.246.180 AF3884AAF .com 80:31038/TCP 43m
它的目标是端口随机端口 31038,当我连接到我的 pod 并运行 ps -ef 时,我可以看到服务正在端口 80 上运行。
解决方案
如 Kubernetes服务文档中所述,设置此类型将强制底层云提供商为您的服务分配一个公共 IP 地址,并将您的公开端口(在您的情况下为 80)上的流量路由到节点端口 (31038) 上Kubernetes 集群级别。
在支持外部负载均衡器的云提供商上,将 type 字段设置为 LoadBalancer 会为您的服务提供负载均衡器。
推荐阅读
- cmake - 使用 CMake + Conan 定义的可执行文件的二进制目录
- laravel - 为什么 laravel ubuntu 服务器占用这么多硬盘空间
- react-native - 世博捆绑器找不到文件
- c# - C# -> Excel:设置样式,就像在设计选项卡样式中一样
- ssl - SSL 跳过 maxmind 设置的限制
- arrays - 打字稿无法过滤数组
- python - 我无法在元组中输入数字并找到它们的平均值。/ValueError:无法将字符串转换为浮点数:'PY_VAR0'/
- react-native - 如何在本机反应中使用浏览器的 MediaRecorder API
- sql - 此 SQL 查询中的错误是什么?我确实离开了外部连接,但它说 ASC 附近的语法不正确
- dictionary - 2D词典在go中?