kubernetes - Kubernetes 外部连接
问题描述
我正在尝试在我的集群中设置一个简单的敲击服务器,目前它在内部工作,但我无法让它从远程连接进行连接。作为参考,这是我试图仅用于测试目的的服务器。 https://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html
目前我正在使用 NGINX 入口控制器。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
knock-server ClusterIP 10.104.42.238 <none> 9000/TCP 25m
testing@host:~$ java KnockKnockClient 10.104.42.238 9000
Server: Knock! Knock!
我还有其他 Ingress 可以完美运行,但它们是用于网站相关部署的,而不是用于像这样的内部服务器。我尝试了 2 种不同的 Ingress,但都没有。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: knockknock-ingress
spec:
rules:
- host: domain.com
http:
paths:
- backend:
serviceName: knock-server
servicePort: 9000
和
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: knock-ingress
spec:
backend:
serviceName: knock-server
servicePort: 9000
我不确定我在这个问题上做错了什么,感谢任何和所有帮助。
解决方案
您可以使用入口控制器来公开 tcp 服务。
- 更改入口控制器以包含以下参数:
--tcp-services-configmap tcp-configmap-example
包含要公开的 TCP 服务定义的 ConfigMap 的名称。映射中的键表示要使用的外部端口。该值是对“命名空间/名称:端口”形式的服务的引用,其中“端口”可以是端口号或名称。TCP 端口 80 和 443 由控制器保留用于服务 HTTP 流量。
- 为 tcp 服务创建 configmap:
apiVersion: v1 kind: ConfigMap metadata: name: tcp-configmap-example data: 9000: "default/knock-server:9000"
推荐阅读
- android - 如何在安装在 vmware 中的 android 设备中运行或测试我的 ionic 应用程序
- flutter - 在 Xcode 中构建应用程序时出现 Flutter pods 错误
- firebase - 如果我选择使用我当前的测试数据库启动我的应用程序?
- javascript - scrollIntoView() 不适用于有角度的材料 Mat-Menu-Item
- javascript - 使用 ReactJS 时如何获取 div 的宽度?
- spring-boot - 从 Dockerized SpringBoot 到外部 MariaDB 的 JDBC 身份验证失败
- javascript - Sequelize 插入连接表多对多
- python - OSError:无法识别图像文件'dataset/training_set/cats/._cat.643.jpg'
- django - 显示多个详细信息的 Python Django 导致每次上传一个用户 ID
- firebase - 如何在 firebase 模拟器中测试删除集合(firebase_tools.firestore.delete 与云对话,而不是模拟器)