kubernetes - 如何使用 nginx-ingress 使用 tcp 公开多个服务?
问题描述
比方说:
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-services
namespace: ingress-nginx-private
data:
3389: “demo/rdp:3389”`
将公开一个“rdp”服务。如果我们有 10 个服务需要以相同的方式公开,那么我们如何实现呢?
解决方案
正如这里的 nginx 入口文档所述:user-guide/exposing-tcp-udp-services
您需要编辑配置映射:
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-services
namespace: ingress-nginx
data:
9000: "default/example-0:8080"
9001: "default/example-1:8080"
9002: "default/example-2:8080"
和 nginx 入口服务:
apiVersion: v1
kind: Service
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
spec:
type: LoadBalancer
ports:
- name: http
port: 80
targetPort: 80
protocol: TCP
- name: https
port: 443
targetPort: 443
protocol: TCP
- name: proxied-tcp-9000
port: 9000
targetPort: 9000
protocol: TCP
- name: proxied-tcp-9001
port: 9001
targetPort: 9001
protocol: TCP
- name: proxied-tcp-9002
port: 9002
targetPort: 9002
protocol: TCP
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
您可以根据需要添加任意数量的端口。请记住,一个端口只能使用一次。
推荐阅读
- java - 连接到 Google SQL 时无法从数据源确定 jdbc url
- javascript - 范围和传递 Express/JavaScript - 如何传递数据库变量?
- php - 使用 PHP 将项目数计算为多维数组
- python-3.x - Airflow Plugin - 创建自己的模型并使用气流元数据库来存储插件特定的数据
- python - pandas - 如何将嵌套字典中的数据加载到数据框中?
- javascript - 如何在javascript中向多边形添加图案?
- php - 如何修复显示 SMTP 错误的 PHPMailer 错误:无法验证。用户名和密码不被接受?
- database - 在 Cassandra 中断开节点
- android - 反应本机签名的 apk 大小为 28.7 MB
- python - 从 pandas 的列标题中删除前缀(或后缀)子字符串