1.ngixn-ingress 配置ip-hash
2.tcp的websocket服務
hello-app.yaml | server |
ingress.yaml | route |
ingress-controller.yaml | default |
ingress-service.yaml | |
tcp-services-configmap.yaml | tcp |
3.文件示例
apiVersion: v1
kind: Service
metadata:
name: myapp-service
namespace: wly
labels:
app: myapp
release: stable
spec:
selector:
app: myapp
release: stable
ports:
- name: myapp
port: 6666
targetPort: 4000
protocol: TCP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
namespace: wly
spec:
selector:
matchLabels:
app: myapp
release: stable
replicas: 2
template:
metadata:
labels:
app: myapp
release: stable
spec:
containers:
- name: myapp
image: dquery-socket:v1
imagePullPolicy: IfNotPresent
ports:
- name: myapp
containerPort: 4000
[root@test002 my_socket_ingress]# cat ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-myapp
namespace: wly
annotations:
kubernetes.io/ingress.class: "nginx"
ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/load-balancer: "ip-hash"
nginx.ingress.kubernetes.io/upstream-hash-by: "$host"
spec:
rules:
- host: test.tom.com
http:
paths:
- path:
backend:
serviceName: myapp-service
servicePort: 6666
nginx-ingress-controller.yaml
官方:
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml
[root@test002 my_socket_ingress]# cat nginx-ingress-service.yaml
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: https
port: 443
targetPort: https
- name: proxied-tcp
port: 80
targetPort: 80
protocol: TCP
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
[root@test002 my_socket_ingress]# cat tcp-services-configmap.yaml
kind: ConfigMap
apiVersion: v1
metadata:
name: tcp-services
namespace: ingress-nginx
data:
80: "wly/myapp-service:6666"
前後端
var socket = io.connect('ws://test.tom.com');
socket.on('connect', function() {
});
socket.on('disconnect', function() {
});
function sendDisconnect() {
socket.disconnect();
}
function sendMessage() {
socket.emit('message', {taskId: '123',message: 'message'})
}
---
@OnEvent(value = Socket.EVENT_MESSAGE)
public void message(SocketIOClient client, JSONObject data) {
MessageDO messageDO = JSONObject.parseObject(data.toJSONString(),MessageDO.class);
}