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

持续更新:地址

相关推荐
陈随易38 分钟前
VSCode的Copilot扩展支持接入DeepSeek,Kimi了!
前端·后端·程序员
我不是外星人2 小时前
有了 Harness Engineering ,真的还需要研发工程师吗?
前端·后端·ai编程
candyTong2 小时前
RTK 技术原理:一次典型会话里,80% 上下文是怎么省下来的
javascript·后端·架构
Rust研习社4 小时前
组合真的优于继承吗?为什么 Rust 和 Go 都拥抱组合舍弃继承?
后端·rust·编程语言
IT_陈寒5 小时前
JavaScript的闭包把我坑惨了,说好的内存会自动回收呢?
前端·人工智能·后端
CaffeinePro5 小时前
Pydantic深度使用:数据校验、枚举、ORM映射
后端·fastapi
Chenyiax6 小时前
从 Chat 到 Responses:OpenAI API 抽象为什么变了?
后端
MariaH6 小时前
Koa和Express的区别
后端
MariaH6 小时前
Koa框架的使用
后端
luckdewei7 小时前
那个用 passlib 做认证的新同事,上线第一天就把用户密码写进了日志
后端