【发布时间】:2019-05-06 01:40:24
【问题描述】:
出于某种原因,此特定部署不会将其服务暴露给外界。我很确定我的语法没问题,因为我使用一组类似的文件进行仅使用 TCP 的部署。我怀疑同时拥有 TCP 和 UDP 会导致问题。奇怪的是,如果我在其中一名工人中手动运行 docker,它可以工作:
docker run -p 27015:27015 -p 27015:27015/udp -e STEAM_ACCOUNT_TOKEN=XXXXXXXXXXXXXXXXXX grido/csgo-edge
Service.yaml
apiVersion: v1
kind: Service
metadata:
name: csgo200
spec:
selector:
app: csgo200
type: NodePort
ports:
- name: udpcsgo1
port: 27015
protocol: UDP
- name: tcpcsgo1
port: 27015
protocol: TCP
deployment.yaml
apiVersion: apps/v1 # for versions before 1.9.0 use
apps/v1beta2
kind: Deployment
metadata:
name: csgo200
spec:
selector:
matchLabels:
app: csgo200
replicas: 1
template:
metadata:
labels:
app: csgo200
spec:
containers:
- name: csgo200
image: grido/csgo-edge
ports:
- name: tcpcsgo200
containerPort: 27015
protocol: TCP
- name: udpcsgo200
containerPort: 27015
protocol: UDP
env:
- name: STEAM_ACCOUNT_TOKEN
value: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
[root@master ~]# kubectl describe svc csgo200
Name: csgo200
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":
{"annotations":{},"name":"csgo200","namespace":"default"},"spec":{"ports":
[{"name":"udpcsgo...
Selector: app=csgo200
Type: NodePort
IP: 10.97.122.32
Port: udpcsgo1 27015/UDP
TargetPort: 27015/UDP
NodePort: udpcsgo1 31314/UDP
Endpoints: 192.168.1.37:27015
Port: tcpcsgo1 27015/TCP
TargetPort: 27015/TCP
NodePort: tcpcsgo1 31314/TCP
Endpoints: 192.168.1.37:27015
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
【问题讨论】:
-
能否提供
kubectl describe svc csgo200的输出 -
服务类型应该是 LoadBalancer 而不是 NodePort。
-
谢谢,我不认为类型应该是负载均衡器,因为我不希望/也不需要这个用例。另外,负载均衡器不支持这里需要的混合协议。
-
在主要问题中添加了 kubectl describe 的输出。
-
它正在侦听每个节点上的
NodePort:端口(输出中的 31314)。
标签: docker kubernetes yaml