kubernetes - 如何配置 Kubernetes 以接收 TCP 连接
问题描述
我在 Azure 上的 AKS 中运行一个非常基本的集群。
我需要在端口 6879 上公开 TCP 服务器。
我已将 TCP 端口添加到负载平衡器规范中:
kind: Service
metadata:
name: ingress-nginx
selfLink: /api/v1/namespaces/ingress-nginx/services/ingress-nginx
spec:
externalTrafficPolicy: Local
healthCheckNodePort: 32557
ports:
- name: http
nodePort: 30731
port: 80
protocol: TCP
targetPort: http
- name: https
nodePort: 31187
port: 443
protocol: TCP
targetPort: https
- name: tcp
nodePort: 31197
port: 6879
protocol: TCP
targetPort: 6879
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
sessionAffinity: None
type: LoadBalancer
此配置是否会在公共 IP 上公开端口 6879 或 31197?
我在想我需要向 Ingress 添加一条规则,以将该流量路由到 TCP 服务器主机。但我的阅读表明 Kubernetes Ingress 不支持路由 TCP 流量。我缺少文档的哪一部分。
解决方案
nginx 入口支持TCP\UDP
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-services
namespace: ingress-nginx
data:
6879: "default/example-go:8080"
31197: "namespace/service:port"
上面的例子展示了如何使用端口 9000 暴露在命名空间默认的命名空间中运行的服务 example-go 使用端口 9000(从链接文章复制粘贴)。
推荐阅读
- java - Java Hashmap如何处理单词网格的键冲突
- java - 卡在不会将可注入字段加载到 FXML 文档中的 javafx 程序上
- flutter - 在运行时选择要包含在 dart 类构造函数中的命名参数
- c - C- strlen() 中针对单词列表问题的分段错误
- ruby-on-rails - 如何连接到 redis-rb 中的集群 Azure Redis 缓存?
- azure - Azure Cosmos DB 中存储的单个文档的大小限制是多少
- c++ - 如何确保我的节点被添加到链表
- java - 客户在困的理发师问题中等待理发时的信号量值?
- ionic-framework - 如何检测用户何时至少打开和关闭了一次选择
- laravel - 在laravel中将格式更改为对象?