kubernetes - 无法连接到k8s服务的外部ip
问题描述
我有以下服务:
apiVersion: v1
kind: Service
metadata:
name: hedgehog
labels:
run: hedgehog
spec:
ports:
- port: 3000
protocol: TCP
name: restful
- port: 8982
protocol: TCP
name: websocket
selector:
run: hedgehog
externalIPs:
- 1.2.4.120
我在其中指定了一个外部IP。运行时,我还在 EXTERNAL-IP 下看到了这个 IP kubectl get services
。但是,当我这样做时,curl http://1.2.4.120:3000
我会超时。但是,该应用程序应该给我一个响应,因为在部署中的容器内运行的 jar 在本地运行时会响应 localhost:3000 请求。
解决方案
如果您看到服务的类型,可能会cluster IP
尝试将类型更改为LoadBalancer
apiVersion: v1
kind: Service
metadata:
name: http-service
spec:
clusterIP: 172.30.163.110
externalIPs:
- 192.168.132.253
externalTrafficPolicy: Cluster
ports:
- name: highport
nodePort: 31903
port: 30102
protocol: TCP
targetPort: 30102
selector:
app: web
sessionAffinity: None
type: LoadBalancer
像这样的东西在哪里type: LoadBalancer
。
推荐阅读
- docker - 我可以将已经存在的 docker 容器导出到 dockerfile 中吗?
- google-cloud-platform - 查找属于 client-id 的项目
- javascript - JavaScript Object:如何仅动态检索不为空的键值对
- javascript - 试图识别区分 dev、prod 和 local 的变量
- r - R导入表 - 行未正确显示
- azure - Azure.RequestFailedException:在 JSON 中发现意外的属性“源”
- arrays - 谷歌表格:是否可以为另一个数组的每个元素执行一个数组函数?
- ios-charts - 如何在 iOS 图表中为标记设置 valueFormatter
- apiconnect - IBM ACE 和 IBM API 连接
- tomcat - Tomcat作为服务修改服务参数值