在阿里云K8S容器中,部署websocket应用程序的总结

一、背景

有一个websocket应用程序,使用spring boot框架开发,http端口号是6005,提供的是websocket服务,所以它还监听一个8889端口的tcp协议。

现在要把它部署到阿里云的k8s容器里,本文着重描述service层的配置。

因为本应用程序对外提供的服务协议是tcp,所以访问链路相对http应用程序更简单,没有经过api网关,甚至也没有域名解析。

二、架构图

1、NodePort类型的service

http协议不对外提供服务,这里的端口号是6005。

bash 复制代码
apiVersion: v1
kind: Service
metadata:
  name: channel-service-gray
  namespace: java-service
spec:
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack
  ports:
    - name: channel-service-gray
      port: 6005
      protocol: TCP
      targetPort: 6005
  selector:
    app: channel-service-gray
  sessionAffinity: None
  type: NodePort
  • consul的健康检测,依赖于http端口号6005

2、外网Service

填写alicloud-loadbalancer-id为具体值。

bash 复制代码
apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alicloud-loadbalancer-force-override-listeners: 'true'
    service.beta.kubernetes.io/alicloud-loadbalancer-id: lb-xxxxxxxxxx
  finalizers:
    - service.k8s.alibaba/resources
  name: channel-gray-out-8888
  namespace: java-service
spec:
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack
  ports:
    - name: channel-gray-out-8888
      port: 8888
      protocol: TCP
      targetPort: 8889
  selector:
    app: channel-service-gray
  sessionAffinity: None
  type: LoadBalancer

3、内网Service

与上类同,差异点是不同的slb。

bash 复制代码
apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alicloud-loadbalancer-force-override-listeners: 'true'
    service.beta.kubernetes.io/alicloud-loadbalancer-id: lb-xxxxxxxxx
  finalizers:
    - service.k8s.alibaba/resources
  name: channel-gray-inner-8888
  namespace: java-service
spec:
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack
  ports:
    - name: channel-gray-inner-8888
      port: 8888
      protocol: TCP
      targetPort: 8889
  selector:
    app: channel-service-gray
  sessionAffinity: None
  type: LoadBalancer

三、内外网SLB

通过上面的service,将在slb自动建立监听。

  • 外网SLB

  • 内网SLB

四、总结

你需要新建三个service,一般我们只有一个就足够使用了。

你需要区分内网还是外网SLB,这是因为我们外层没有api网关和域名,提供的是tcp协议。

下一篇我们想要说一说阿里云slb的一个大坑,很深很深的坑。。。

相关推荐
benbenAItalk1 分钟前
数字人口播视频的批量生产实践:素材规范、任务编排与质量验收
java·前端·音视频
sunshine22 girl7 分钟前
Java学习二 基本语法2, 算术运算符
java·学习
niucloud-admin20 分钟前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
2601_9628857221 分钟前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
生活爱好者!25 分钟前
哇!影视新玩法!docker部署NEOWATCH NAS
运维·docker·容器
滕州市燕猫虎计算机科技工作室个体工商户29 分钟前
Java锁
java·开发语言
聚搜云——JuSouClouD2 小时前
搭建外贸网站想选用阿里云,找代理商采购划算吗?
阿里云·云计算
shehuiyuelaiyuehao3 小时前
1计算机是如何工作的
java·计算机网络
陈随易3 小时前
在Finch用了62亿词元,我认为这是新一代Agent工具之神
前端·人工智能·后端
letisgo53 小时前
JAVA 高级进阶07篇《@Transactional失效的8个场景:代理机制到传播行为》
java·面试·transactional·spring事务·aop动态代理