使用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

持续更新:地址

相关推荐
拳打南山敬老院34 分钟前
Context 不是压缩出来的,而是设计出来的
前端·后端·aigc
初次攀爬者39 分钟前
Kafka + ZooKeeper架构基础介绍
后端·zookeeper·kafka
LucianaiB41 分钟前
Openclaw 安装使用保姆级教程(最新版)
后端
华仔啊1 小时前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端
哈密瓜的眉毛美1 小时前
零基础学Java|第五篇:进制转换与位运算、原码反码补码
后端
开心就好20252 小时前
免 Xcode 的 iOS 开发新选择?聊聊一款更轻量的 iOS 开发 IDE kxapp 快蝎
后端·ios
Java编程爱好者2 小时前
为什么国内大厂纷纷”弃坑”MySQL,转投PostgreSQL阵营?
后端
神奇小汤圆2 小时前
金三银四Java面试题及答案汇总(2026持续更新)
后端
颜酱2 小时前
理解二叉树最近公共祖先(LCA):从基础到变种解析
javascript·后端·算法
神奇小汤圆2 小时前
加了 limit 1,查询竟然变慢了?
后端