使用kubernetes部署jetlinks社区版

使用kubernetes部署jetlinks社区版

概述

jetlinks作为优秀开源框架,在物联网领域有着重要地位,虽然社区版本没有提供微服开源,在平时开发过程中,也可以使用kubernetes进行部署,使用trae可以非常方便的把社区版本的dockerfile配置文件自动转换成kubernetes的配置文件,这种转换大大提高了开发效率。但作者认为,虽然AI辅助开发工具非常强大,但开发者的基本原理必须要清楚,有利于找问题。在部署jetlinks的下面的过程中,作者就混淆了nodeport和clusterport,导致jetlinks-ui无法访问到jetlinks-ce,推荐一个免费的学习kubernetes的网站,也是kubernetes官网上推荐的:learning.edx.org/course/cour...

部署jetlinks社区版使用的语句

kubectl只需要在master下发pod即可,kubernetes自动实现容器编排,可谓开发人员的有力帮手,让我们从码农中解脱出来。以下是主要使用的语句。

  • scp jetlinks-community-setting.yaml root@192.168.2.44:/root/k8s
  • kubectl apply -f jetlinks-community-setting.yaml

步骤一:部署redis

这里主要检查redis的密码是否和下载的jetlinks镜像中要求的一致。

yaml 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jetlinks-ce-redis
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jetlinks-ce-redis
  template:
    metadata:
      labels:
        app: jetlinks-ce-redis
    spec:
      containers:
        - name: redis
          image: redis:5.0.4
          command: ["redis-server", "--appendonly", "yes"]
          ports:
            - containerPort: 6379
          volumeMounts:
            - name: redis-data
              mountPath: /data
      volumes:
        - name: redis-data
          hostPath:
            path: /dev-data/redis
            type: DirectoryOrCreate

步骤二:部署elasticsearch

这里主要检查使用的版本是否和jetlinks中镜像要求的一致,kibana部署或者不部署影响不大。

yaml 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jetlinks-ce-elasticsearch
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jetlinks-ce-elasticsearch
  template:
    metadata:
      labels:
        app: jetlinks-ce-elasticsearch
    spec:
      containers:
        - name: elasticsearch
          image: elasticsearch:7.17.23

步骤三:部署postgres

这里主要检查postgres的镜像版本,能够下载下来问题就不大。

yaml 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jetlinks-ce-postgres
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jetlinks-ce-postgres
  template:
    metadata:
      labels:
        app: jetlinks-ce-postgres
    spec:
      containers:
        - name: postgres
          image: postgres:11-alpine

步骤四:部署jetlinks后台

这里如果使用了nodeport,需要注意ports中对应的端口号,在jetlinks-ui中的配置中会用到。

yaml 复制代码
apiVersion: v1
kind: Service
metadata:
  name: jetlinks-ce
spec:
  type: NodePort
  selector:
    app: jetlinks-ce
  ports:
    - name: api-port
      protocol: TCP
      port: 8848
      targetPort: 8848
      nodePort: 30848
    - name: mqtt-port
      protocol: TCP
      port: 1883
      targetPort: 1883
      nodePort: 31883
    - name: reserved-port-1
      protocol: TCP
      port: 8800
      targetPort: 8800
      nodePort: 30800
    - name: reserved-port-2
      protocol: TCP
      port: 5060
      targetPort: 5060
      nodePort: 30060

步骤五:部署jetlinks前端 这里需要检查端口号,如果不通,需要kubectl exec进入容器中,curl调试下网络。

yaml 复制代码
apiVersion: v1
kind: Service
metadata:
  name: jetlinks-ce-ui
spec:
  type: NodePort
  selector:
    app: jetlinks-ce-ui
  ports:
    - name: ui-port
      port: 80
      targetPort: 80
      nodePort: 30900

持续更新:地址

相关推荐
用户21991679703912 分钟前
使用Agent Framework进行多Agent工作流编排
后端
serendipity_hky9 分钟前
【go语言 | 第5篇】channel——多个goroutine之间通信
开发语言·后端·golang
zhaorong12 分钟前
RabbitMQ发布订阅模式同一消费者多个实例如何防止重复消费?
后端
开心猴爷14 分钟前
提升 iOS 应用安全审核通过率的一种思路,把容易被拒的点先处理
后端
我家领养了个白胖胖17 分钟前
Prompt、格式化输出、持久化ChatMemory
java·后端·ai编程
全栈老石21 分钟前
别再折腾端口转发了:使用 Cloudflare Tunnel 优雅地分享你的 localhost
前端·后端·全栈
Java编程爱好者24 分钟前
是猫踩键盘还是乱码?不,这是你刚写的正则表达式
后端
源代码•宸26 分钟前
分布式缓存-GO(简历写法、常见面试题)
服务器·开发语言·经验分享·分布式·后端·缓存·golang
LaughingDangZi40 分钟前
vue+java分离项目实现微信公众号开发全流程梳理
java·前端·后端