k8s-tcp

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);
   }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章