Commit b0801338 authored by 智勇's avatar 智勇

增加 k8s conf

parent eb6823e7
......@@ -59,9 +59,9 @@ const dingTalkPush = async function (item, is_recover) {
msgtype: 'markdown',
markdown: {
title: 'pipeline项目添加信息如下',
text: '> <font color=#FF0000> 描述信息 : 腾讯云服务---异常提醒通知\n\n'
text: '> 描述信息 : 腾讯云服务---异常提醒通知\n\n'
+ `> 项目名称 : ${item.metadata.labels['qcloud-app']}\n\n`
+ `> <font color=#FF0000> 项目分支 : ${image}\n\n`
+ `> 项目分支 : ${image}\n\n`
+ `> 项目类型 : ${item.metadata.labels.type}\n\n`
+ `> 命名空间 : ${item.metadata.namespace}\n\n`
+ `> 异常原因 : ${message}\n\n`
......
......@@ -6,7 +6,7 @@ const Redis = require('ioredis')
const redis = new Redis(6380, '172.30.220.22')
const { ingressCreate, ingressDelete } = require('../kubeService/ingress')
const { projectConfig, defaultConfig } = require('../resource/resourceLimit')
const { defaultConfig } = require('../resource/resourceLimit')
const {
getPods,
serviceCreate,
......@@ -21,6 +21,7 @@ const {
pvcDelete,
} = require('../kubeService/service')
const getClient = require('./../resource/getClient')
const awaitRequest = require('../utils/awaitRequest')
const router = new Router()
module.exports = router
......@@ -33,20 +34,55 @@ router.get('/', async (ctx) => {
})
})
const makeResouce = (serviceName, type) => {
// 资源限制
const resources = projectConfig[serviceName] || defaultConfig[type]
logger.info('资源限制', JSON.stringify(resources))
// 资源限制
const makeResouce = async (serviceName, type) => {
let resources = defaultConfig[type]
const res = await awaitRequest({
url: `http://127.0.0.1:3003/proconfig/getK8sConf?project_name=${serviceName}`,
method: 'get',
})
const mongoResouces = JSON.parse(res.body).data
if (mongoResouces && mongoResouces.memLimit) {
resources = mongoResouces
}
return resources
}
// // 用于刷 mongo 库
// router.get('/insertData', async (ctx) => {
// const res = await awaitRequest({
// url: 'http://127.0.0.1:3003/proconfig/get_project?is_active=true',
// method: 'get',
// })
// const data = JSON.parse(res.body).data
// let ret
// for (const item of data) {
// const resources = projectConfig[item.project_name] || defaultConfig[item.type]
// item.memRequest = resources.memory.request
// item.memLimit = resources.memory.limit
// item.cpuRequest = resources.cpu.request
// item.cpuLimit = resources.cpu.limit
// ret = await awaitRequest({
// url: 'http://127.0.0.1:3003/proconfig/save',
// method: 'POST',
// headers: {
// 'Content-Type': 'application/json;charset=utf-8',
// },
// body: JSON.stringify(item),
// })
// }
// ctx.body = ctx.ok(ret.body)
// })
const createService = async (ctx) => {
const {
type, serviceName, namespace, domain, label,
} = ctx.request.body
const data = ctx.request.body
const resources = makeResouce(serviceName, type)
const resources = await makeResouce(serviceName, type)
data.resources = resources
logger.info('创建服务', data)
......
......@@ -9,6 +9,7 @@ module.exports = function client() {
const exclude = [
'/service/listEnvVarsNew',
'/service/listEnvVars',
'/service/insertData',
'/cluster',
'/repository',
'/repository/getTags',
......@@ -21,7 +22,7 @@ module.exports = function client() {
if (!client[cluster]) {
// 请求qa-api
const res = await awaitRequest({
url: `http://127.0.0.1:3003/cluster/list?clusterName=${cluster}`,
url: `http://qaapi.liangkebang.com/cluster/list?clusterName=${cluster}`,
method: 'get',
})
const ca = JSON.parse(res.body).data[0]
......
/* eslint-disable no-multi-assign */
const defaultMysql = {
memory: {
request: 1024,
......@@ -43,114 +42,42 @@ const defaultRedis = {
},
}
const projectConfig = {}
const memoryV1 = {
request: 50,
limit: 50,
}
const memoryV2 = {
request: 200,
limit: 240,
}
const memoryV2P = {
request: 500,
limit: 600,
}
const memoryV3 = {
request: 800,
limit: 1000,
}
const memoryV4 = {
request: 1200,
limit: 1500,
}
const cpuV1 = {
request: 10,
limit: 100,
}
const cpuV2 = {
request: 20,
limit: 200,
}
const cpuV3 = {
request: 100,
limit: 1000,
}
const cpuV4 = {
request: 200,
limit: 2000,
}
const defaultUI = {
memory: memoryV1,
cpu: cpuV1,
}
projectConfig['quantcube-ui'] = {
memory: memoryV1,
cpu: cpuV3,
cpuLimit: 10,
cpuRequest: 100,
memLimit: 50,
memRequest: 50,
}
const defaultNodejs = {
memory: memoryV2,
cpu: cpuV2,
cpuLimit: 20,
cpuRequest: 200,
memLimit: 200,
memRequest: 240,
}
const defaultPython = {
memory: memoryV2,
cpu: cpuV2,
cpuLimit: 20,
cpuRequest: 200,
memLimit: 200,
memRequest: 240,
}
const defaultJava = {
memory: memoryV2P,
cpu: cpuV3,
}
projectConfig.baitiao = projectConfig['smart-recruitment'] = {
memory: memoryV3,
cpu: cpuV3,
}
projectConfig['cash-loan-flow'] = projectConfig['gu-bei'] = projectConfig['merchant-backend'] = projectConfig['xyqb-mall'] = projectConfig.xyqb = {
memory: memoryV3,
cpu: cpuV4,
}
// vcc项目
projectConfig.talos = projectConfig['acs-service'] = projectConfig['acs-quartz'] = {
memory: memoryV3,
cpu: cpuV4,
}
// clotho启动比较耗时
projectConfig['urge-dispatcher'] = projectConfig.clotho = {
memory: memoryV4,
cpu: cpuV4,
}
projectConfig['smart-recruitment-spyder'] = {
memory: memoryV4,
cpu: cpuV3,
cpuLimit: 100,
cpuRequest: 1000,
memLimit: 500,
memRequest: 600,
}
exports.projectConfig = projectConfig
exports.defaultConfig = {
java: defaultJava,
ui: defaultUI,
node: defaultNodejs,
redis: defaultRedis,
'redis-sentinel': defaultRedis,
zookeeper: defaultZookeeper,
mysql: defaultMysql,
rabbitmq: defaultRabbitmq,
java: defaultJava,
ui: defaultUI,
node: defaultNodejs,
python: defaultPython,
}
......@@ -66,11 +66,11 @@ spec:
value: {{mock}}
resources:
requests:
cpu: {{resources.cpu.request}}m
memory: {{resources.memory.request}}Mi
cpu: {{resources.cpuRequest}}m
memory: {{resources.memRequest}}Mi
limits:
cpu: {{resources.cpu.limit}}m
memory: {{resources.memory.limit}}Mi
cpu: {{resources.cpuLimit}}m
memory: {{resources.memLimit}}Mi
livenessProbe:
exec:
command:
......
......@@ -33,11 +33,11 @@ spec:
value: {{debug}}
resources:
requests:
cpu: {{resources.cpu.request}}m
memory: {{resources.memory.request}}Mi
cpu: {{resources.cpuRequest}}m
memory: {{resources.memRequest}}Mi
limits:
cpu: {{resources.cpu.limit}}m
memory: {{resources.memory.limit}}Mi
cpu: {{resources.cpuLimit}}m
memory: {{resources.memLimit}}Mi
restartPolicy: Always
dnsPolicy: ClusterFirst
imagePullSecrets:
......
......@@ -60,11 +60,11 @@ spec:
value: {{cluster}}
resources:
requests:
cpu: {{resources.cpu.request}}m
memory: {{resources.memory.request}}Mi
cpu: {{resources.cpuRequest}}m
memory: {{resources.memRequest}}Mi
limits:
cpu: {{resources.cpu.limit}}m
memory: {{resources.memory.limit}}Mi
cpu: {{resources.cpuLimit}}m
memory: {{resources.memLimit}}Mi
livenessProbe:
exec:
command:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment