开源项目one-api的k8s容器化部署(下)-- 部署至k8s

一、接着上文

本文讲述如何把上文制作好的docker镜像部署到K8S,会涉及以下部分:

  • 健康检测
  • 应用程序的配置
  • 应用程序的端口
  • 日志路径

二、健康检测

1、健康状态

从官方的docker-compose.yml可以得知其健康检测方法

curl http://localhost:5175/api/status
{"data":{"chat_link":"","display_in_currency":true,"email_verification":false,"footer_html":"","github_client_id":"","github_oauth":false,"lark_client_id":"","logo":"","quota_per_unit":500000,"server_address":"http://localhost:3000","start_time":1712719277,"system_name":"One API","top_up_link":"","turnstile_check":false,"turnstile_site_key":"","version":"","wechat_login":false,"wechat_qrcode":""},"message":"","success":true}

2、deployment.yaml 增加探针

这里的{{ PORT }} 是你应用监听的端口号。

 #########################################
          readinessProbe:
            exec:
              command: ["sh", "-c", "wget -q -O - http://127.0.0.1:{{ PORT }}/api/status | grep -o '\"success\":\\s*true' | awk -F: '{print $2}'"]
            initialDelaySeconds: 5
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 3
            failureThreshold: 3
          startupProbe:
            exec:
              command: ["sh", "-c", "wget -q -O - http://127.0.0.1:{{ PORT }}/api/status | grep -o '\"success\":\\s*true' | awk -F: '{print $2}'"]
            initialDelaySeconds: 15
            periodSeconds: 10
            successThreshold: 1
            timeoutSeconds: 3
            failureThreshold: 22
#########################################

三、应用程序的配置

当然,你可以直接在环境变量里配置明文,但不建议!

1、新建Secret(保密字典)

  • mysql数据库连接地址SQL_DSN
  • redis连接地址REDIS_CONN_STRING
  • session密钥SESSION_SECRET

在这里插入图片描述

2、deployment.yaml环境变量引用secret配置

# 修改前
          env:
            - name: SQL_DSN
              value: "oneapi:123456@tcp(db:3306)/one-api"
            - name: REDIS_CONN_STRING
              value: "redis://redis"
            - name: SESSION_SECRET
              value: "random_string"


# 修改后
          env:
            - name: SQL_DSN
              valueFrom:
                secretKeyRef:
                  name: one-api-conf
                  key: sql-dsn
            - name: REDIS_CONN_STRING
              valueFrom:
                secretKeyRef:
                  name: one-api-conf
                  key: redis-conn-string
            - name: SESSION_SECRET
              valueFrom:
                secretKeyRef:
                  name: one-api-conf
                  key: session-secret

四、应用程序的端口

one-api程序的默认端口是3000,一般我们都会需要进行变更。
不同的部署策略,则有不同的方案。

1、docker-compose部署

详见下面的command: --port 5175,指定程序启动的端口号为5175。

version: '3.4'
  
services:
  one-api:
    image: "xxx/one-api:1.0.0"
    container_name: one-api
    command: --port 5175

2、k8s deploymeng.yaml

通过args传入程序启动的端口号

      containers:
        - args:
            - '--port'
            - '5175'

在这里插入图片描述

五、日志路径

默认的存储路径:/data/logs
在这里插入图片描述
oneapi-20240410.log日志内容:
在这里插入图片描述

程序启动进程 one-api在根目录下:

在这里插入图片描述

六、总结

访问地址: http://{ip}:{port} (port就是上文指定的端口号)
在这里插入图片描述
至此,对开源项目one-api的k8s容器化部署就完成了。

相关推荐

  1. flink on k8s部署

    2024-04-11 12:44:02       15 阅读
  2. k8s项目部署流程

    2024-04-11 12:44:02       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-11 12:44:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-11 12:44:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-11 12:44:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-11 12:44:02       20 阅读

热门阅读

  1. Objective-C学习笔记(ARC,分类,延展)4.10

    2024-04-11 12:44:02       13 阅读
  2. ubuntu 设置时区

    2024-04-11 12:44:02       14 阅读
  3. 无人机炸机后还能修复吗?

    2024-04-11 12:44:02       43 阅读
  4. html调用http接口

    2024-04-11 12:44:02       17 阅读
  5. 蓝桥杯之初等数论(二)

    2024-04-11 12:44:02       15 阅读
  6. gateway的授权思考

    2024-04-11 12:44:02       16 阅读
  7. Vue项目(H5)与微信小程序来回跳转

    2024-04-11 12:44:02       17 阅读
  8. 微信小程序(总结)

    2024-04-11 12:44:02       14 阅读
  9. 使用Docker安装Kafka

    2024-04-11 12:44:02       12 阅读