我已经使用 Google 的 Container Engine 工具通过 Kubernetes 集群在 GCE 上部署了 Docker 容器。
在服务上设置 'type': 'LoadBalancer' 不支持 websocket。我想公开我自己的 nginx 服务以支持 websockets,但在 kubernetes 中为 dns / service disco 运行它。
我看到kubectl expose
命令有一个--public-ip=
参数。任何有关如何设置该 IP 的提示表示赞赏。
更新,尝试使用 --dry-run -o yaml 进行暴露以传递亲和力参数:
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
name: tfe
name: mytfe
spec:
sessionAffinity: ClientIP
ports:
- name: default
nodePort: 0
port: 80
protocol: TCP
targetPort: 80
selector:
name: tfe
type: LoadBalancer
status:
loadBalancer: {}
它打开 http 很好,但我在 ws GET 上得到 400(在 POST 得到 200 之后)
"GET /socket.io/?EIO=3&transport=polling&t=1437780794642-2313&sid=JuLWBlEy4Wjk3zHSAAH0 HTTP/1.1" 400