我在Azure(AKS)上有一个群集。我有orientdb
服务
apiVersion: v1
kind: Service
metadata:
name: orientdb
labels:
app: orientdb
role: backend
spec:
selector:
app: orientdb
ports:
- protocol: TCP
port: 2424
name: binary
- protocol: TCP
port: 2480
name: http
我想暴露给外部的,以便来自互联网的应用程序可以将TCP流量直接发送到此服务。
(要连接到orientdb,您需要通过TCP连接到端口2424)
我的网络能力不强,所以这是我的理解,这可能是错误的。 我尝试了以下方法:
所以我的问题如下:
我无法将tcp流量发送到服务。 Http流量工作正常。
如果有人向我展示如何公开我的服务,以便我可以将TCP流量直接感知到面向我的服务,我将不胜感激。
谢谢。
答案 0 :(得分:2)
您可以同时使用Loadbalancer类型的服务(我假设AKS支持该服务),也可以只使用节点端口。
kubectl expose deployment hello-world --type=LoadBalancer --name=my-service
kubectl get services my-service
输出与此类似:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-service ClusterIP 10.3.245.137 104.198.205.71 8080/TCP 54s
引用here
kubectl公开用法:
Usage
$ expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol=TCP|UDP|SCTP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type]
您可以在上面的--port= 2424 --target-port= 2424
命令中使用kubectl expose
选项来设置正确的端口