Compare commits
38 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1b8f864fc2 | |||
| 03df9c2168 | |||
| 4c40f3e7d9 | |||
| d654641637 | |||
| 75a1d012c8 | |||
| 59dca7d552 | |||
| 06ed9845f1 | |||
| 80d6cf39bd | |||
| 3cce883e79 | |||
| ed36dfb22b | |||
| fe97e6c8ac | |||
| 0f12d22d35 | |||
| 03e7659f43 | |||
| b4dd7e6124 | |||
| 8b000bbc5a | |||
| 4ab958bb8b | |||
| 10ccccfaeb | |||
| 2702259c01 | |||
| ceb1623150 | |||
| 7c778c8ea2 | |||
| 98476c24ca | |||
| e16de52934 | |||
| bf04aa7cc1 | |||
| 4ea76d36ef | |||
| 33c90da738 | |||
| 7c82953483 | |||
| c177afc01d | |||
| bbd87d2431 | |||
| a7656e4107 | |||
| cf742045d9 | |||
| 9f287b5f15 | |||
| f242ddd4cb | |||
| 3a96cb441e | |||
| c01886e49b | |||
| 9a21a53e11 | |||
| 83f5e68647 | |||
| 46b4dfec73 | |||
| ff8c1af855 |
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "docs",
|
||||
"version": "0.6.5-main",
|
||||
"version": "0.6.5-billing",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "docs",
|
||||
"version": "0.6.5-main",
|
||||
"version": "0.6.5-billing",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@beeline/design-tokens": "^1.31.6",
|
||||
|
||||
+4
-1
@@ -4,9 +4,12 @@
|
||||
"description": "Beeline Cloud docs",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"predev": "node scripts/check-links.mjs",
|
||||
"dev": "vitepress dev src",
|
||||
"prebuild": "node scripts/check-links.mjs",
|
||||
"build": "vitepress build src",
|
||||
"preview": "vitepress preview src"
|
||||
"preview": "vitepress preview src",
|
||||
"check-links": "node scripts/check-links.mjs"
|
||||
},
|
||||
"keywords": [],
|
||||
"authors": {
|
||||
|
||||
@@ -0,0 +1,186 @@
|
||||
import { readFileSync, readdirSync, statSync, existsSync, realpathSync } from 'node:fs';
|
||||
import { join, dirname, resolve, relative, extname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
const ROOT = resolve(fileURLToPath(import.meta.url), '../..');
|
||||
const SRC = join(ROOT, 'src');
|
||||
const PUBLIC_DIR = join(SRC, 'public');
|
||||
const CONFIG = join(SRC, '.vitepress/config.mts');
|
||||
const HOME = join(SRC, 'index.md');
|
||||
|
||||
function walk(dir, out = [], skipDirs = new Set()) {
|
||||
if (!existsSync(dir)) return out;
|
||||
for (const name of readdirSync(dir)) {
|
||||
if (skipDirs.has(name)) continue;
|
||||
const p = join(dir, name);
|
||||
const s = statSync(p);
|
||||
if (s.isDirectory()) walk(p, out, skipDirs);
|
||||
else out.push(p);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
const docFiles = walk(SRC, [], new Set(['node_modules', '.vitepress', 'public', 'assets']));
|
||||
const mdFiles = docFiles.filter(f => f.endsWith('.md'));
|
||||
|
||||
function checkTarget(target, fromFile) {
|
||||
const url = target.trim();
|
||||
if (!url) return { ok: false, reason: 'empty' };
|
||||
if (/^(https?:|mailto:|tel:|ftp:|data:|javascript:|#)/i.test(url)) return { ok: true, skip: true };
|
||||
const [pathPart] = url.split('#');
|
||||
const [pathOnly] = pathPart.split('?');
|
||||
if (!pathOnly) return { ok: true, skip: true };
|
||||
|
||||
let abs;
|
||||
if (pathOnly.startsWith('/')) {
|
||||
abs = join(SRC, pathOnly);
|
||||
if (!existsSync(abs)) {
|
||||
const inPublic = join(PUBLIC_DIR, pathOnly);
|
||||
if (existsSync(inPublic)) return { ok: true };
|
||||
}
|
||||
} else {
|
||||
abs = resolve(dirname(fromFile), pathOnly);
|
||||
}
|
||||
|
||||
if (existsSync(abs)) return { ok: true };
|
||||
if (extname(abs) === '') {
|
||||
if (existsSync(abs + '.md')) return { ok: true };
|
||||
if (existsSync(join(abs, 'index.md'))) return { ok: true };
|
||||
}
|
||||
if (extname(abs) === '.html') {
|
||||
if (existsSync(abs.replace(/\.html$/, '.md'))) return { ok: true };
|
||||
}
|
||||
return { ok: false, reason: 'not found' };
|
||||
}
|
||||
|
||||
function resolveToMd(target, fromFile) {
|
||||
const url = target.trim();
|
||||
if (!url) return null;
|
||||
if (/^(https?:|mailto:|tel:|ftp:|data:|javascript:|#)/i.test(url)) return null;
|
||||
const [pathPart] = url.split('#');
|
||||
const [pathOnly] = pathPart.split('?');
|
||||
if (!pathOnly) return null;
|
||||
|
||||
const abs = pathOnly.startsWith('/')
|
||||
? join(SRC, pathOnly)
|
||||
: resolve(dirname(fromFile), pathOnly);
|
||||
|
||||
if (extname(abs) === '.md' && existsSync(abs)) return abs;
|
||||
if (extname(abs) === '') {
|
||||
if (existsSync(abs + '.md')) return abs + '.md';
|
||||
if (existsSync(join(abs, 'index.md'))) return join(abs, 'index.md');
|
||||
}
|
||||
if (extname(abs) === '.html') {
|
||||
const asMd = abs.replace(/\.html$/, '.md');
|
||||
if (existsSync(asMd)) return asMd;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
const broken = [];
|
||||
const usedMd = new Set();
|
||||
const mdLinkRe = /(!?)\[([^\]]*)\]\(([^)\s]+)(?:\s+"[^"]*")?\)/g;
|
||||
const htmlLinkRe = /<(?:img[^>]+src|a[^>]+href|source[^>]+src|video[^>]+src|link[^>]+href)\s*=\s*["']([^"']+)["']/gi;
|
||||
const frontmatterLinkRe = /^\s*-?\s*link:\s*['"]?([^\s'"#]+)['"]?\s*$/;
|
||||
const includeRe = /<!--\s*@include:\s*([^\s>-]+(?:\.md)?)[^>]*-->/g;
|
||||
|
||||
function recordUse(target, fromFile) {
|
||||
const md = resolveToMd(target, fromFile);
|
||||
if (md) usedMd.add(md);
|
||||
}
|
||||
|
||||
for (const file of mdFiles) {
|
||||
const content = readFileSync(file, 'utf8');
|
||||
const lines = content.split('\n');
|
||||
let fmStart = -1, fmEnd = -1;
|
||||
if (lines[0]?.trim() === '---') {
|
||||
fmStart = 0;
|
||||
for (let i = 1; i < lines.length; i++) {
|
||||
if (lines[i].trim() === '---') { fmEnd = i; break; }
|
||||
}
|
||||
}
|
||||
for (let i = 0; i < lines.length; i++) {
|
||||
const line = lines[i];
|
||||
const inFrontmatter = fmStart !== -1 && i > fmStart && i < fmEnd;
|
||||
if (inFrontmatter) {
|
||||
const m = line.match(frontmatterLinkRe);
|
||||
if (m) {
|
||||
const res = checkTarget(m[1], file);
|
||||
if (!res.ok && !res.skip) {
|
||||
broken.push({ file: relative(ROOT, file), line: i + 1, target: m[1], type: 'frontmatter' });
|
||||
} else {
|
||||
recordUse(m[1], file);
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
for (const m of line.matchAll(mdLinkRe)) {
|
||||
const res = checkTarget(m[3], file);
|
||||
if (!res.ok && !res.skip) {
|
||||
broken.push({ file: relative(ROOT, file), line: i + 1, target: m[3], type: m[1] === '!' ? 'image' : 'link' });
|
||||
} else {
|
||||
recordUse(m[3], file);
|
||||
}
|
||||
}
|
||||
for (const m of line.matchAll(htmlLinkRe)) {
|
||||
const res = checkTarget(m[1], file);
|
||||
if (!res.ok && !res.skip) {
|
||||
broken.push({ file: relative(ROOT, file), line: i + 1, target: m[1], type: 'html' });
|
||||
} else {
|
||||
recordUse(m[1], file);
|
||||
}
|
||||
}
|
||||
for (const m of line.matchAll(includeRe)) {
|
||||
recordUse(m[1], file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const cfgLines = readFileSync(CONFIG, 'utf8').split('\n');
|
||||
const sidebarLinkRe = /link:\s*['"]([^'"]+)['"]/g;
|
||||
for (let i = 0; i < cfgLines.length; i++) {
|
||||
const line = cfgLines[i];
|
||||
if (/^\s*\/\//.test(line)) continue;
|
||||
for (const m of line.matchAll(sidebarLinkRe)) {
|
||||
const target = m[1];
|
||||
if (!target) continue;
|
||||
const res = checkTarget(target, CONFIG);
|
||||
if (!res.ok && !res.skip) {
|
||||
broken.push({ file: relative(ROOT, CONFIG), line: i + 1, target, type: 'sidebar' });
|
||||
} else {
|
||||
recordUse(target, CONFIG);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const orphans = mdFiles
|
||||
.filter(f => f !== HOME && !usedMd.has(f))
|
||||
.map(f => relative(ROOT, f))
|
||||
.sort();
|
||||
|
||||
broken.sort((a, b) => a.file.localeCompare(b.file) || a.line - b.line);
|
||||
|
||||
let hasBroken = false;
|
||||
|
||||
if (broken.length === 0) {
|
||||
console.log('OK: битых ссылок не найдено');
|
||||
} else {
|
||||
hasBroken = true;
|
||||
console.log(`Найдено битых ссылок: ${broken.length}\n`);
|
||||
let lastFile = '';
|
||||
for (const b of broken) {
|
||||
if (b.file !== lastFile) { console.log(`\n${b.file}`); lastFile = b.file; }
|
||||
console.log(` L${b.line} [${b.type}] -> ${b.target}`);
|
||||
}
|
||||
}
|
||||
|
||||
console.log('');
|
||||
|
||||
if (orphans.length === 0) {
|
||||
console.log('OK: неиспользуемых страниц не найдено');
|
||||
} else {
|
||||
console.log(`WARN: найдено неиспользуемых страниц (не упомянуты ни в sidebar, ни в других md): ${orphans.length}\n`);
|
||||
for (const f of orphans) console.log(` ${f}`);
|
||||
}
|
||||
|
||||
process.exit(hasBroken ? 1 : 0);
|
||||
+184
-165
@@ -135,30 +135,34 @@ export default defineConfig({
|
||||
label: 'Содержание'
|
||||
},
|
||||
sidebar: {
|
||||
|
||||
|
||||
|
||||
|
||||
'/platform/': [
|
||||
{
|
||||
text: 'Платформа Beeline Cloud', link: '/platform/index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Обзор', link: '/platform/about.md'},
|
||||
{text: 'Типы тарификации', link: '/platform/billing-types.md'},
|
||||
{text: 'Техническая поддержка', link: '/platform/support/support-overview.md'},
|
||||
],
|
||||
},
|
||||
{text: 'Платформа Beeline Cloud', link: '/platform/index.md'},
|
||||
{text: 'Обзор', link: '/platform/about.md'},
|
||||
{text: 'Типы тарификации', link: '/platform/billing-types.md'},
|
||||
{text: 'Техническая поддержка', link: '/platform/support/support-overview.md'},
|
||||
],
|
||||
|
||||
|
||||
|
||||
|
||||
'/legal/': [
|
||||
{ text: 'Юридические документы', link: '/legal/index.md' },
|
||||
{ text: 'Юридические документы', link: '/legal/index.md' },
|
||||
],
|
||||
|
||||
|
||||
|
||||
|
||||
'/security/': [
|
||||
{
|
||||
text: 'Сервисы информационной безопасности в Beeline Cloud', link: '/security/index.md',
|
||||
},
|
||||
{
|
||||
text: 'Cloud Security Awareness (SA)', link: '/security/Cloud-SA/SA-index.md',
|
||||
{text: 'Сервисы информационной безопасности в Beeline Cloud', link: '/security/index.md'},
|
||||
{text: 'Cloud Security Awareness (SA)', link: '/security/Cloud-SA/SA-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{
|
||||
text: 'Состав сервиса SA', link: '/security/Cloud-SA/compond-index.md',
|
||||
text: 'Состав сервиса SA', link: '/security/Cloud-SA/compond-SA/compond-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: 'Обзор сервиса', link: '/security/Cloud-SA/compond-SA/about.md' },
|
||||
@@ -200,7 +204,7 @@ export default defineConfig({
|
||||
items: [
|
||||
{ text: 'Обзор сервиса', link: '/security/Cloud-MDM/about.md' },
|
||||
{
|
||||
text: 'Описание сервиса MDM', link: '/security/Cloud-MDM/discription-index.md',
|
||||
text: 'Описание сервиса MDM', link: '/security/Cloud-MDM/description/description-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: 'Состав сервиса', link: '/security/Cloud-MDM/description/compound.md' },
|
||||
@@ -214,7 +218,7 @@ export default defineConfig({
|
||||
{ text: 'Сроки и условия предоставления сервиса', link: '/security/Cloud-MDM/provision.md' },
|
||||
{ text: 'Порядок платежей', link: '/security/Cloud-MDM/payments.md' },
|
||||
{
|
||||
text: 'Инструкиця', link: '/security/Cloud-MDM/instructions-index.md',
|
||||
text: 'Инструкиця', link: '/security/Cloud-MDM/instructions/index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: 'Инструкция', link: '/security/Cloud-MDM/instructions/instructions.md' },
|
||||
@@ -227,13 +231,13 @@ export default defineConfig({
|
||||
{
|
||||
text: 'Cloud NGFW', link: '/security/Cloud-NGFW/NGFW-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: 'Обзор сервиса', link: '/security/Cloud-NGFW/about.md'},
|
||||
items: [
|
||||
{ text: 'Обзор сервиса', link: '/security/Cloud-NGFW/about.md'},
|
||||
{ text: 'Основные возможности', link: '/security/Cloud-NGFW/possibilities.md' },
|
||||
{ text: 'Спецификация сервиса', link: '/security/Cloud-NGFW/specification.md' },
|
||||
{ text: 'Состав сервиса', link: '/security/Cloud-NGFW/compound.md' },
|
||||
{ text: 'Сроки и условия предоставления сервиса. Зоны ответственности', link: '/security/Cloud-NGFW/provision.md' },
|
||||
{ text: 'Порядок платежей', link: '/security/Cloud-NGFW/payment.md' },
|
||||
{ text: 'Структура платежей', link: '/security/Cloud-NGFW/payment.md' },
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -249,75 +253,91 @@ export default defineConfig({
|
||||
{ text: 'Тестирование сервиса', link: '/security/Cloud-NGFW-F/testing.md' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Cloud NGFW Pro', link: '/security/Cloud-NGFW-Pro/NGFW-Pro-index.md',
|
||||
{ text: 'Cloud NGFW Pro', link: '/security/Cloud-NGFW-Pro/NGFW-Pro-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: 'Обзор сервиса', link: '/security/Cloud-NGFW-Pro/about.md'},
|
||||
{ text: 'Основные возможности', link: '/security/Cloud-NGFW-Pro/possibilities.md' },
|
||||
{ text: 'Спецификация сервиса', link: '/security/Cloud-NGFW-Pro/specification.md' },
|
||||
{ text: 'Состав сервиса', link: '/security/Cloud-NGFW-Pro/compound.md' },
|
||||
{ text: 'Сроки и условия предоставления сервиса', link: '/security/Cloud-NGFW-Pro/provision.md' },
|
||||
{ text: 'Демодоступ к сервису', link: '/security/Cloud-NGFW-Pro/demo-access.md' },
|
||||
{ text: 'Порядок платежей', link: '/security/Cloud-NGFW-Pro/payment.md' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Cloud NGFW', link: '/security/Cloud-NGFW/NGFW-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: 'Обзор сервиса', link: '/security/Cloud-NGFW/about.md'},
|
||||
{ text: 'Основные возможности', link: '/security/Cloud-NGFW/possibilities.md' },
|
||||
{ text: 'Спецификация сервиса', link: '/security/Cloud-NGFW/specification.md' },
|
||||
{ text: 'Состав сервиса', link: '/security/Cloud-NGFW/compound.md' },
|
||||
{ text: 'Сроки и условия предоставления сервиса. Зоны ответственности', link: '/security/Cloud-NGFW/provision.md' },
|
||||
{ text: 'Порядок платежей', link: '/security/Cloud-NGFW/payment.md' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Cloud NGFW F', link: '/security/Cloud-NGFW-F/NGFW-F-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: 'Обзор сервиса', link: '/security/Cloud-NGFW-F/about.md'},
|
||||
{ text: 'Порядок подключения сервиса', link: '/security/Cloud-NGFW-F/connection.md' },
|
||||
{ text: 'Варианты предоставления', link: '/security/Cloud-NGFW-F/delivery-options.md' },
|
||||
{ text: 'Состав сервиса', link: '/security/Cloud-NGFW-F/compound.md' },
|
||||
{ text: 'Функциональные возможности', link: '/security/Cloud-NGFW-F/functional-capabilities.md' },
|
||||
{ text: 'Порядок платежей', link: '/security/Cloud-NGFW-F/payment.md' },
|
||||
{ text: 'Тестирование сервиса', link: '/security/Cloud-NGFW-F/testing.md' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Cloud NGFW Pro', link: '/security/Cloud-NGFW-Pro/NGFW-Pro-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: 'Обзор сервиса', link: '/security/Cloud-NGFW-Pro/about.md'},
|
||||
{ text: 'Основные возможности', link: '/security/Cloud-NGFW-Pro/possibilities.md' },
|
||||
{ text: 'Спецификация сервиса', link: '/security/Cloud-NGFW-Pro/specification.md' },
|
||||
{ text: 'Состав сервиса', link: '/security/Cloud-NGFW-Pro/compound.md' },
|
||||
{ text: 'Сроки и условия предоставления сервиса', link: '/security/Cloud-NGFW-Pro/provision.md' },
|
||||
{ text: 'Демодоступ к сервису', link: '/security/Cloud-NGFW-Pro/demo-access.md' },
|
||||
{ text: 'Порядок платежей', link: '/security/Cloud-NGFW-Pro/payment.md' },
|
||||
{ text: 'Обзор сервиса', link: '/security/Cloud-NGFW-Pro/about.md'},
|
||||
{ text: 'Основные возможности', link: '/security/Cloud-NGFW-Pro/possibilities.md' },
|
||||
{ text: 'Спецификация сервиса', link: '/security/Cloud-NGFW-Pro/specification.md' },
|
||||
{ text: 'Состав сервиса', link: '/security/Cloud-NGFW-Pro/compound.md' },
|
||||
{ text: 'Сроки и условия предоставления сервиса', link: '/security/Cloud-NGFW-Pro/provision.md' },
|
||||
{ text: 'Демодоступ к сервису', link: '/security/Cloud-NGFW-Pro/demo-access.md' },
|
||||
{ text: 'Порядок платежей', link: '/security/Cloud-NGFW-Pro/payment.md' },
|
||||
]
|
||||
},
|
||||
],
|
||||
'/PaaS/': [
|
||||
{
|
||||
text: 'Начало работы в Cloud PostgreSQL', link: '/PaaS/index.md',
|
||||
},
|
||||
{ text: 'Cloud PostgreSQL', link: '/PaaS/PostgreSQL/PostgreSQL-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Обзор сервиса', link: '/PaaS/PostgreSQL/about.md'},
|
||||
{text: 'Описание технических параметров', link: '/PaaS/PostgreSQL/cluster-parameter.md'},
|
||||
{text: 'Общая схема подключения', link: '/PaaS/PostgreSQL/connection.md'},
|
||||
{text: 'Возможности пользователя', link: '/PaaS/PostgreSQL/user-capabilities.md'},
|
||||
{text: 'Веб-интерфейс pgAdmin', link: '/PaaS/PostgreSQL/pgadmin.md'},
|
||||
{text: 'Веб-интерфейс Grafana', link: '/PaaS/PostgreSQL/grafana.md'},
|
||||
],
|
||||
},
|
||||
{text: 'Параметры конфигурации IPSEC', link: '/PaaS/IPSEC.md'},
|
||||
|
||||
|
||||
// '/billing/': [
|
||||
|
||||
// ],
|
||||
|
||||
|
||||
// '/backups/': [
|
||||
// {
|
||||
// text: 'Резервное копирование', link: '/backups/index.md',
|
||||
// },
|
||||
// {
|
||||
// text: 'Обзор сервиса', link: '/backups/backups-overview.md',
|
||||
// collapsed: true,
|
||||
// items: [
|
||||
// {text: 'О сервисе', link: '/backups/about.md'},
|
||||
// {text: 'Квоты и лимиты', link: '/backups/backup-quatos.md'},
|
||||
// ]
|
||||
// },
|
||||
// ],
|
||||
|
||||
|
||||
'/PostgreSQL/': [
|
||||
{text: 'PostgreSQL', link: '/PostgreSQL/PostgreSQL-index.md'},
|
||||
{text: 'Обзор сервиса', link: '/PostgreSQL/about.md'},
|
||||
{text: 'Описание технических параметров', link: '/PostgreSQL/cluster-parameter.md'},
|
||||
{text: 'Общая схема подключения', link: '/PostgreSQL/connection.md'},
|
||||
{text: 'Возможности пользователя', link: '/PostgreSQL/user-capabilities.md'},
|
||||
{text: 'Веб-интерфейс pgAdmin', link: '/PostgreSQL/pgadmin.md'},
|
||||
{text: 'Веб-интерфейс Grafana', link: '/PostgreSQL/grafana.md'},
|
||||
{text: '1C для PostgreSQL', link: '/PostgreSQL/PostgreSQL-1C.md' },
|
||||
],
|
||||
|
||||
|
||||
'/network/': [
|
||||
{text: 'Сетевое взаимодействие', link: '/network/network-index.md'},
|
||||
{text: 'IPsec', link: '/network/IPSEC.md'},
|
||||
{text: 'Cloud Interconnect', link: '/network/interconnect.md' },
|
||||
],
|
||||
|
||||
|
||||
'/Deckhouse/': [
|
||||
{text: 'Cloud Deckhouse Kubernetes', link: '/Deckhouse/index.md'},
|
||||
{text: 'Обзор сервиса', link: '/Deckhouse/about.md'},
|
||||
{text: 'Права и возможности пользователей', link: '/Deckhouse/user-permissions.md'},
|
||||
{text: 'Описание технических параметров', link: '/Deckhouse/technical-parameters.md'},
|
||||
{text: 'Подключение к сервису', link: '/Deckhouse/connection.md'}
|
||||
],
|
||||
|
||||
|
||||
'/Workspace/': [
|
||||
{text: 'Cloud Workspace', link: '/Workspace/Workspace-index.md'},
|
||||
{text: 'Обзор сервиса', link: '/Workspace/about.md'},
|
||||
{text: 'Описание технических параметров', link: '/Workspace/technical-parameters.md'},
|
||||
{text: 'Подключение к сервису', link: '/Workspace/connection.md'},
|
||||
{text: 'Практические руководства', link: '/Workspace/how-to.md'},
|
||||
{text: 'Квоты и лимиты', link: '/Workspace/quotas.md'},
|
||||
{text: 'Ограничения', wip: true},
|
||||
{text: 'Порядок платежей', wip: true},
|
||||
],
|
||||
|
||||
|
||||
'/Apache-Kafka/': [
|
||||
{text: 'Apache Kafka', link: '/Apache-Kafka/Kafka-index.md'},
|
||||
{text: 'Обзор сервиса', link: '/Apache-Kafka/about-service.md'},
|
||||
{text: 'Работа с кластером Kafka по тарифу Base', link: '/Apache-Kafka/base-tier-connection.md'},
|
||||
{text: 'Настройка топика по тарифу Base', link: '/Apache-Kafka/base-tier-topics-guide.md'},
|
||||
{text: 'Конфигурация кластера', link: '/Apache-Kafka/cluster-configuretion.md'},
|
||||
{text: 'Работа с кластером Kafka по тарифу Full', link: '/Apache-Kafka/full-tier-connection.md'},
|
||||
],
|
||||
|
||||
|
||||
'/finance/': [
|
||||
{ text: 'Финансы', link: '/finance/about.md' },
|
||||
{ text: 'Счета', wip: true },
|
||||
@@ -327,90 +347,89 @@ export default defineConfig({
|
||||
{ text: 'Рекомендации', wip: true },
|
||||
{ text: 'Управление тегами', wip: true },
|
||||
],
|
||||
'/vdc/': [
|
||||
{
|
||||
text: 'Виртуальные дата-центры на VMware', link: '/vdc/index.md',
|
||||
},
|
||||
{
|
||||
text: 'Обзор сервиса', link: '/vdc/vdc-overview.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: 'О сервисе', link: '/vdc/vdc-about.md' },
|
||||
{ text: 'Техническое описание', link: '/vdc/vdc-tech.md' },
|
||||
]
|
||||
},
|
||||
{ text: 'Подключиться к виртуальному дата-центру', link: '/vdc/vdc-getting-started.md' },
|
||||
{ text: 'Виртуальные машины', link: '/vdc/vdc-how-to/vm/vm-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Создание ВМ', link: '/vdc/vdc-how-to/vm/create-vm.md'},
|
||||
{text: 'Создание vApp', link: '/vdc/vdc-how-to/vm/create-vapp.md'},
|
||||
{text: 'Управление состоянием ВМ', link: '/vdc/vdc-how-to/vm/manage-vm.md'},
|
||||
{text: 'Клонирование ВМ', link: '/vdc/vdc-how-to/vm/clone-vm.md'},
|
||||
{text: 'Изменение конфигурации ВМ', link: '/vdc/vdc-how-to/vm/edit-vm.md'},
|
||||
{text: 'Удаление ВМ', link: '/vdc/vdc-how-to/vm/delete-vm.md'},
|
||||
{text: 'Группы размещения', link: '/vdc/vdc-how-to/vm/create-affinity-rules.md'},
|
||||
{text: 'Снимки ВМ', link: '/vdc/vdc-how-to/vm/create-snapshot.md'},
|
||||
{text: 'VMware Tools', link: '/vdc/vdc-how-to/vm/vmware-tools.md'},
|
||||
],
|
||||
},
|
||||
{ text: 'Диски',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Обзор', link: '/vdc/vdc-how-to/disks/about.md'},
|
||||
{text: 'Создание диска', link: '/vdc/vdc-how-to/disks/create-disk.md'},
|
||||
{text: 'Проверка состояния диска', link: '/vdc/vdc-how-to/disks/view-disk.md'},
|
||||
{text: 'Подключение выделенного диска к ВМ', link: '/vdc/vdc-how-to/disks/attach-disk.md'},
|
||||
{text: 'Изменение политики хранения дисков ВМ', link: '/vdc/vdc-how-to/disks/change-storage-policy-of-vm.md'},
|
||||
{text: 'Редактирование параметров диска', link: '/vdc/vdc-how-to/disks/edit-disk.md'},
|
||||
{text: 'Удаление диска', link: '/vdc/vdc-how-to/disks/delete-disk.md'},
|
||||
],
|
||||
},
|
||||
{ text: 'Сети', link: '/vdc/vdc-how-to/networks/networks-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Обзор', link: '/vdc/vdc-how-to/networks/about.md'},
|
||||
{text: 'Настройка доступа к ВМ из интернета', link: '/vdc/vdc-how-to/networks/allow-external-connections-to-vm.md'},
|
||||
{text: 'Подключение ВМ в vApp к сети', link: '/vdc/vdc-how-to/networks/connect-vapp-to-network.md'},
|
||||
{text: 'Подключение ВМ к интернету', link: '/vdc/vdc-how-to/networks/connect-vm-to-network.md'},
|
||||
{text: 'Создание сети в организации и подключение к Edge Gateway', link: '/vdc/vdc-how-to/networks/create-network.md'},
|
||||
{text: 'Подключение сети к Edge Gateway', link: '/vdc/vdc-how-to/networks/connect-to-edge-gateway.md'},
|
||||
{text: 'Создание Pre-Shared Key', link: '/vdc/vdc-how-to/networks/create-psk.md'},
|
||||
{text: 'Настройка site-to-site подключения с помощью IPSec', link: '/vdc/vdc-how-to/networks/how-to-setup-ipsec-vpn.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Настройка IPSec VPN', link: '/vdc/vdc-how-to/networks/ipsec/setup-ipsec-vpn.md'},
|
||||
{text: 'Настройка ASAv для IPsec VPN', link: '/vdc/vdc-how-to/networks/ipsec/asav.md'},
|
||||
{text: 'Настройка CSR 1000v для IPsec VPN', link: '/vdc/vdc-how-to/networks/ipsec/csr1000v.md'},
|
||||
{text: 'Настройка Fortigate для IPsec VPN', link: '/vdc/vdc-how-to/networks/ipsec/fortigate.md'},
|
||||
{text: 'Проверить сетевую связанность', link: '/vdc/vdc-how-to/networks/ipsec/check-vpn-status.md'},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{ text: 'Пользователи и роли', link: '/vdc/vdc-how-to/users/users-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Ролевая модель', link: '/vdc/vdc-how-to/users/roles.md'},
|
||||
{text: 'Создание пользователя', link: '/vdc/vdc-how-to/users/add-user.md'},
|
||||
{text: 'Изменение пароля пользователя', link: '/vdc/vdc-how-to/users/change-users-password.md'},
|
||||
{text: 'Настройка квот', link: '/vdc/vdc-how-to/users/quotas.md'},
|
||||
],
|
||||
},
|
||||
{ text: 'Двухфакторная аутентификация', link: '/vdc/vdc-how-to/vdc-2fa.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Подключение 2FA', link: '/vdc/vdc-how-to/vdc-2fa-start.md'},
|
||||
{text: 'Управление 2FA', link: '/vdc/vdc-how-to/vdc-2fa-manage.md'},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
|
||||
'/vdc/': [
|
||||
{text: 'Виртуальные дата-центры на VMware', link: '/vdc/index.md'},
|
||||
{text: 'Обзор сервиса', link: '/vdc/vdc-overview.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: 'О сервисе', link: '/vdc/vdc-about.md' },
|
||||
{ text: 'Техническое описание', link: '/vdc/vdc-tech.md' },
|
||||
]
|
||||
},
|
||||
{ text: 'Подключиться к виртуальному дата-центру', link: '/vdc/vdc-getting-started.md' },
|
||||
{ text: 'Виртуальные машины', link: '/vdc/vdc-how-to/vm/vm-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Создание ВМ', link: '/vdc/vdc-how-to/vm/create-vm.md'},
|
||||
{text: 'Создание vApp', link: '/vdc/vdc-how-to/vm/create-vapp.md'},
|
||||
{text: 'Управление состоянием ВМ', link: '/vdc/vdc-how-to/vm/manage-vm.md'},
|
||||
{text: 'Клонирование ВМ', link: '/vdc/vdc-how-to/vm/clone-vm.md'},
|
||||
{text: 'Изменение конфигурации ВМ', link: '/vdc/vdc-how-to/vm/edit-vm.md'},
|
||||
{text: 'Удаление ВМ', link: '/vdc/vdc-how-to/vm/delete-vm.md'},
|
||||
{text: 'Группы размещения', link: '/vdc/vdc-how-to/vm/create-affinity-rules.md'},
|
||||
{text: 'Снимки ВМ', link: '/vdc/vdc-how-to/vm/create-snapshot.md'},
|
||||
{text: 'VMware Tools', link: '/vdc/vdc-how-to/vm/vmware-tools.md'},
|
||||
],
|
||||
},
|
||||
{ text: 'Диски',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Обзор', link: '/vdc/vdc-how-to/disks/about.md'},
|
||||
{text: 'Создание диска', link: '/vdc/vdc-how-to/disks/create-disk.md'},
|
||||
{text: 'Проверка состояния диска', link: '/vdc/vdc-how-to/disks/view-disk.md'},
|
||||
{text: 'Подключение выделенного диска к ВМ', link: '/vdc/vdc-how-to/disks/attach-disk.md'},
|
||||
{text: 'Изменение политики хранения дисков ВМ', link: '/vdc/vdc-how-to/disks/change-storage-policy-of-vm.md'},
|
||||
{text: 'Редактирование параметров диска', link: '/vdc/vdc-how-to/disks/edit-disk.md'},
|
||||
{text: 'Удаление диска', link: '/vdc/vdc-how-to/disks/delete-disk.md'},
|
||||
],
|
||||
},
|
||||
{ text: 'Сети', link: '/vdc/vdc-how-to/networks/networks-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Обзор', link: '/vdc/vdc-how-to/networks/about.md'},
|
||||
{text: 'Настройка доступа к ВМ из интернета', link: '/vdc/vdc-how-to/networks/allow-external-connections-to-vm.md'},
|
||||
{text: 'Подключение ВМ в vApp к сети', link: '/vdc/vdc-how-to/networks/connect-vapp-to-network.md'},
|
||||
{text: 'Подключение ВМ к интернету', link: '/vdc/vdc-how-to/networks/connect-vm-to-network.md'},
|
||||
{text: 'Создание сети в организации и подключение к Edge Gateway', link: '/vdc/vdc-how-to/networks/create-network.md'},
|
||||
{text: 'Подключение сети к Edge Gateway', link: '/vdc/vdc-how-to/networks/connect-to-edge-gateway.md'},
|
||||
{text: 'Создание Pre-Shared Key', link: '/vdc/vdc-how-to/networks/create-psk.md'},
|
||||
{text: 'Настройка site-to-site подключения с помощью IPSec', link: '/vdc/vdc-how-to/networks/how-to-setup-ipsec-vpn.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Настройка IPSec VPN', link: '/vdc/vdc-how-to/networks/ipsec/setup-ipsec-vpn.md'},
|
||||
{text: 'Настройка ASAv для IPsec VPN', link: '/vdc/vdc-how-to/networks/ipsec/asav.md'},
|
||||
{text: 'Настройка CSR 1000v для IPsec VPN', link: '/vdc/vdc-how-to/networks/ipsec/csr1000v.md'},
|
||||
{text: 'Настройка Fortigate для IPsec VPN', link: '/vdc/vdc-how-to/networks/ipsec/fortigate.md'},
|
||||
{text: 'Проверить сетевую связанность', link: '/vdc/vdc-how-to/networks/ipsec/check-vpn-status.md'},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{ text: 'Пользователи и роли', link: '/vdc/vdc-how-to/users/users-index.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Ролевая модель', link: '/vdc/vdc-how-to/users/roles.md'},
|
||||
{text: 'Создание пользователя', link: '/vdc/vdc-how-to/users/add-user.md'},
|
||||
{text: 'Изменение пароля пользователя', link: '/vdc/vdc-how-to/users/change-users-password.md'},
|
||||
{text: 'Настройка квот', link: '/vdc/vdc-how-to/users/quotas.md'},
|
||||
],
|
||||
},
|
||||
{ text: 'Двухфакторная аутентификация', link: '/vdc/vdc-how-to/vdc-2fa.md',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Подключение 2FA', link: '/vdc/vdc-how-to/vdc-2fa-start.md'},
|
||||
{text: 'Управление 2FA', link: '/vdc/vdc-how-to/vdc-2fa-manage.md'},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
|
||||
|
||||
// { text: 'Тарификация', link: '/vdc/vdc-tarif.md' },
|
||||
'/monitoring/': [
|
||||
{
|
||||
text: 'Мониторинг', link: '/monitoring/about.md',
|
||||
},
|
||||
{text: 'Мониторинг', link: '/monitoring/about.md'},
|
||||
],
|
||||
},
|
||||
},
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
@use '@beeline/design-tokens/scss/font-face';
|
||||
@use '@beeline/design-tokens/scss/font-face' with (
|
||||
$font-path-beeline-sans: '/fonts/beeline-sans',
|
||||
$font-path-roboto-mono: '/fonts/roboto-mono'
|
||||
);
|
||||
@use "@beeline/design-tokens/scss/iconfont/iconfont" with (
|
||||
$font-path-iconfont: '/fonts/iconfont'
|
||||
);
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
section_links:
|
||||
- title: Назначение сервиса
|
||||
link: /Apache-Kafka/about-service.md
|
||||
description: Назначения и преимущества сервиса
|
||||
- title: Работа с кластером Kafka по тарифу Base
|
||||
link: /Apache-Kafka/base-tier-connection.md
|
||||
description: Подключение и работа с кластером Kafka по тарифу Base
|
||||
- title: Настройка топика по тарифу Base
|
||||
link: /Apache-Kafka/base-tier-topics-guide.md
|
||||
description: Рекомендации по настройке топика Kafka по тарифу Base
|
||||
- title: Конфигурация кластера
|
||||
link: /Apache-Kafka/cluster-configuretion.md
|
||||
description: Конфигурации и возможности кластера Kafka
|
||||
- title: Работа с кластером Kafka по тарифу Full
|
||||
link: /Apache-Kafka/full-tier-connection.md
|
||||
description: Подключение и работа с кластером Kafka по тарифу Full
|
||||
---
|
||||
|
||||
# Apache-Kafka
|
||||
|
||||
В данном разделе представлена документация по управляемому сервису **Apache-Kafka** платформы Beeline Cloud.
|
||||
@@ -0,0 +1,75 @@
|
||||
# Назначение сервиса
|
||||
|
||||
Данный сервис предназначен для команд, которым требуется надёжный и масштабируемый конвейер данных без необходимости самостоятельно разворачивать и обслуживать инфраструктуру Kafka.
|
||||
|
||||
**Apache Kafka** - это распределённая система для потоковой передачи данных в реальном времени. Сервис обеспечивает надёжную и масштабируемую доставку сообщений между компонентами приложений, гарантируя отказоустойчивость и высокую производительность.
|
||||
|
||||
В архитектуре современных информационных систем Kafka выполняет роль централизованного конвейера данных: одни сервисы (продюсеры) публикуют сообщения, а другие (консьюмеры) получают эти сообщения по мере необходимости.
|
||||
|
||||
## Основные понятия
|
||||
|
||||
| Термин | Описание |
|
||||
|--------------------------------|----------|
|
||||
| **Продюсер (Producer)** | Программный компонент, который отправляет данные в Kafka. Продюсером может выступать любой сервис, генерирующий события: модуль приложения, система логирования, датчик IoT-устройства. |
|
||||
| **Консьюмер (Consumer)** | Программный компонент, который получает данные из Kafka. Консьюмер подписывается на интересующие его события и обрабатывает поступающие сообщения. |
|
||||
| **Топик (Topic)** | Именованный канал для хранения сообщений определённого типа. Топики организуют потоки данных по смыслу: например, «заказы», «ошибки», «события авторизации». Консьюмеры подписываются на один или несколько топиков для получения релевантных данных. |
|
||||
| **Партиция (Partition)** | Каждый топик разделяется на партиции - логические сегменты, распределяемые между серверами кластера. Партиции обеспечивают параллельную обработку данных: различные части одного топика могут обрабатываться одновременно несколькими консьюмерами. |
|
||||
| **Репликация (Replication)** | Для обеспечения отказоустойчивости партиции копируются на несколько серверов (брокеров). При выходе одного сервера из строя данные остаются доступными на других узлах кластера. |
|
||||
| **Микросервисная архитектура** | Kafka является стандартным решением для организации связи между микросервисами. В такой архитектуре сервисы обмениваются событиями асинхронно, что повышает надёжность и масштабируемость системы в целом. |
|
||||
|
||||
## Преимущества управляемого сервиса
|
||||
|
||||
#### Администрирование
|
||||
|
||||
Клиенту не требуется самостоятельно разворачивать и обслуживать кластер Kafka. Сервис включает в себя управление инфраструктурой, обновление версий, масштабирование и поддержку работоспособности.
|
||||
|
||||
#### Мониторинг
|
||||
|
||||
Предоставляются готовые дашборды в Grafana с визуализацией ключевых метрик:
|
||||
|
||||
- состояние брокеров;
|
||||
- нагрузка на кластер;
|
||||
- настроенная система оповещений о критических событиях;
|
||||
- заполнение дискового пространства.
|
||||
|
||||
#### Безопасность
|
||||
|
||||
Поддерживается шифрованное подключение к кластеру с использованием SSL/TLS-сертификатов, что гарантирует защиту данных при передаче.
|
||||
|
||||
#### Экспертная поддержка
|
||||
|
||||
Сервис создан с учётом практического опыта администрирования более 500 кластеров Kafka. Накопленная экспертиза позволяет обеспечивать стабильность работы, своевременно выявлять и устранять потенциальные проблемы, оптимизировать конфигурации под конкретные задачи.
|
||||
|
||||
## Тарифные планы
|
||||
|
||||
### 1. Тариф "Base"
|
||||
|
||||
Тарифный план для тех, кто имеет собственную экспертизу в работе с Kafka и желает самостоятельно управлять объектами верхнего уровня.
|
||||
|
||||
**Обязательства провайдера:**
|
||||
|
||||
- поддержка инсталляции кластера;
|
||||
- своевременное обновление версий Kafka;
|
||||
- расширение вычислительных ресурсов кластера по запросу клиента.
|
||||
|
||||
**Возможности:**
|
||||
|
||||
- **Управление учетными записями и правами доступа** – создание пользователей и настройка их прав для работы с Kafka;
|
||||
- **Администрирование топиков** - полный цикл управления: создание, конфигурирование, настройка параметров и удаление;
|
||||
- **Управление консьюмер-группами (Consumer Groups)** – возможность создавать, изменять и удалять логические объединения консьюмеров, которые совместно читают сообщения из топиков. Это обеспечивает высокую производительность и отказоустойчивость при обработке данных;
|
||||
- **Работа с transactional ID** – полный цикл управления транзакционными идентификаторами (создание, изменение, удаление). Транзакционный идентификатор присваивается продюсеру Kafka для обеспечения атомарности операций: запись нескольких сообщений или коммит оффсетов выполняются по принципу «всё или ничего», а также предотвращается появление «зомби-продюсеров» при перезапусках.
|
||||
|
||||
Инфраструктурное ядро кластера (брокеры, репликация, отказоустойчивость) остаётся под управлением провайдера.
|
||||
|
||||
### 2. Тариф "Full"
|
||||
|
||||
Тарифный план для тех, кто предпочитает полностью делегировать задачи по администрированию Kafka.
|
||||
|
||||
**Обязательства провайдера:**
|
||||
|
||||
- полное управление кластером;
|
||||
- администрирование топиков;
|
||||
- управление консьюмер-группами;
|
||||
- работа с transactional id.
|
||||
|
||||
Kafka используется как готовый сервис, не вовлекаясь в вопросы настройки и обслуживания.
|
||||
@@ -0,0 +1,244 @@
|
||||
# Подключение и работа с кластером Kafka (тариф Base)
|
||||
|
||||
Раздел содержит описание способов подключения к управлению кластером Kafka. Поддерживаются два типа подключения:
|
||||
- `SASL_PLAINTEXT` - незашифрованное;
|
||||
- `SASL_SSL` - зашифрованное (через SSL-сертификат).
|
||||
|
||||
Также в разделе приведены примеры работы с клиентскими утилитами и базовые операции администрирования.
|
||||
|
||||
## Предварительные требования
|
||||
|
||||
Для начала работы с кластером Kafka необходимо выполнить предварительную настройку:
|
||||
|
||||
1. **Установить клиент Kafka** - скачивается дистрибутив Kafka (например, kafka_2.13-4.2.0) и распаковывается в удобную директорию;
|
||||
2. **Установить среду выполнения Java** - для работы необходимо установить среду выполнения, с помощью команды: `sudo apt install openjdk-17-jre-headless`. Рекомендуется использовать версию OpenJDK 17 или выше;
|
||||
3. **Доступ к брокерам** - адреса брокеров (bootstrap servers) предоставляются после развертывания кластера;
|
||||
4. **Учетные данные**:
|
||||
- **Имя пользователя (username)** - стандартное значение client;
|
||||
- **Пароль** - предоставляется после развертывания кластера.
|
||||
5. **Корневой сертификат (для SSL-подключения)** - сертификат для зашифрованного подключения предоставляется файлом при заказе сервиса Kafka.
|
||||
|
||||
## Структура клиентского дистрибутива
|
||||
|
||||
После распаковки архива Kafka в директории bin доступны основные скрипты для управления:
|
||||
|
||||
| Скрипт | Назначение |
|
||||
| --------------------------- | -------------------------------------------------- |
|
||||
| `kafka-topics.sh` | Управление топиками (создание, удаление, просмотр) |
|
||||
| `kafka-console-producer.sh` | Отправка сообщений в топик |
|
||||
| `kafka-console-consumer.sh` | Чтение сообщений из топика |
|
||||
| `kafka-consumer-groups.sh` | Управление консьюмер-группами |
|
||||
| `kafka-configs.sh` | Изменение конфигурации топиков и других объектов |
|
||||
| `kafka-acls.sh` | Управление списками доступа (ACL) |
|
||||
|
||||
В разделе ниже приведены примеры использования скриптов.
|
||||
|
||||
Подробное описание операций с данными и другими скриптами приведено в [официальной документации Kafka](https://kafka.apache.org/42/getting-started/introduction/). Дополнительную информацию можно получить, выполнив любой скрипт с флагом --help:
|
||||
|
||||
```
|
||||
./kafka-topics.sh --help
|
||||
```
|
||||
|
||||
#### Конфигурационные файлы клиента
|
||||
|
||||
Для подключения к Kafka используется файл настроек **client.properties**, который содержит параметры аутентификации, протокола и его механизмов (рекомендуются SCRAM_SHA_512 и SCRAM_SHA_256).
|
||||
|
||||
## Незашифрованное подключение (SASL_PLAINTEXT)
|
||||
|
||||
Создается файл **client.properties** со следующим содержимым:
|
||||
|
||||
```
|
||||
sasl.mechanism=SCRAM-SHA-512
|
||||
security.protocol=SASLPLAINTEXT
|
||||
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
|
||||
username="client" \
|
||||
password="вашпароль";
|
||||
```
|
||||
|
||||
::: warning Примечание
|
||||
Для незашифрованного подключения (SASL_PLAINTEXT) используется порт 9091;
|
||||
:::
|
||||
|
||||
## Зашифрованное подключение (SASL_SSL)
|
||||
|
||||
Для зашифрованного подключения (в production-средах рекомендуется использовать именно его) дополнительно требуется корневой сертификат и хранилище доверенных сертификатов (truststore).
|
||||
|
||||
::: warning Примечание
|
||||
Для зашифрованного подключения (SASL_SSL) используется порт 9092.
|
||||
:::
|
||||
|
||||
### Шаг 1. Создание truststore
|
||||
|
||||
С помощью утилиты **keytool** выполняется импорт сертификата в хранилище:
|
||||
|
||||
```
|
||||
keytool -importcert -storetype PKCS12 -keystore /путь/к/трастстору/truststore.jks -alias myalias -file ca.crt -storepass любойвашпароль -keypass любойвашпароль
|
||||
```
|
||||
|
||||
Параметры:
|
||||
|
||||
- **keystore** - путь к создаваемому хранилищу;
|
||||
- **alias** - псевдоним сертификата в хранилище;
|
||||
- **file** - путь к загруженному корневому сертификату;
|
||||
- **storepass** - пароль для доступа к хранилищу;
|
||||
- **keypass** - пароль для доступа к ключу.
|
||||
|
||||
### Шаг 2. Настройка client.properties
|
||||
|
||||
В файл **client.properties** добавляются параметры SSL:
|
||||
|
||||
```
|
||||
sasl.mechanism=SCRAM-SHA-512
|
||||
security.protocol=SASLSSL
|
||||
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
|
||||
username="client" \
|
||||
password="вашпароль";
|
||||
ssl.truststore.location=/путь/к/трастстору/truststore.jks
|
||||
ssl.truststore.password=парольотхранилища
|
||||
```
|
||||
|
||||
## Работа с кластером Kafka
|
||||
|
||||
### Создание топиков
|
||||
|
||||
```
|
||||
./kafka-topics.sh --bootstrap-server <IP машины 0>:9092,<IP машины 1>:9092,<IP машины X>:9092 --command-config ../config/client.properties --create --topic <имя топика> --partitions <количество партиций> --replication-factor <значение> --config min.insync.replicas=<значение>
|
||||
```
|
||||
|
||||
**Ознакомиться с рекомендациями по настройке топиков можно в разделе [Настройка топиков](./base-tier-topics-guide.md).**
|
||||
|
||||
По умолчанию топик создаётся с --partitions 10 --replication-factor 3 --config min.insync.replicas=2, поэтому, если нет необходимости создавать топик со специфическими настройками, эти флаги в команде можно не указывать.
|
||||
|
||||
### Просмотр списка топиков
|
||||
|
||||
Выполняется команда с указанием брокеров и файла конфигурации:
|
||||
|
||||
```
|
||||
./kafka-topics.sh --bootstrap-server <IP_брокера_0>:9092,<IP_брокера_1>:9092,<IP_брокера_2>:9092 --command-config ~/client.properties --list
|
||||
```
|
||||
|
||||
Параметры:
|
||||
|
||||
- **bootstrap-server** - список брокеров кластера (адреса и порты);
|
||||
command-config - путь к файлу с настройками клиента;
|
||||
- **list** - вывод списка топиков.
|
||||
|
||||
### Отправка сообщения в топик
|
||||
|
||||
Выполняется команда с указанием брокеров, файла конфигурации и топика:
|
||||
|
||||
```
|
||||
./kafka-console-producer.sh --bootstrap-server <IP_брокера_0>:9092,<IP_брокера_1>:9092,<IP_брокера_2>:9092 --command-config~/client.properties --topic test-topic
|
||||
```
|
||||
|
||||
После выполнения команды сообщения вводятся построчно. Для завершения используется сочетание клавиш Ctrl+C.
|
||||
|
||||
### Чтение сообщений из топика
|
||||
|
||||
Выполняется команда с указанием топика и, при необходимости, consumer group:
|
||||
|
||||
```
|
||||
./kafka-console-consumer.sh --bootstrap-server <IP_брокера_0>:9092,<IP_брокера_1>:9092,<IP_брокера_2>:9092 --command-config~/client.properties --topic test-topic --from-beginning --group my-new-consumer-group
|
||||
```
|
||||
|
||||
Параметры:
|
||||
|
||||
- **from-beginning**- чтение всех сообщений с начала (при отсутствии параметра чтение начинается с новых сообщений);
|
||||
- **group** - название consumer group, которая создастся автоматически.
|
||||
|
||||
## Управление пользователями и доступом
|
||||
|
||||
### Рекомендации к созданию пароля
|
||||
|
||||
**Длина пароля (рекомендуемая):**
|
||||
|
||||
- для учётной записи пользователя - не менее 12 знаков;
|
||||
- для учётных записей администраторов, технических и служебных учётных записей - не менее 16 знаков.
|
||||
|
||||
**Сложность пароля:** рекомендуется использовать уникальный пароль, содержащий символы как минимум трёх из четырёх указанных ниже групп (при отсутствии технических ограничений):
|
||||
|
||||
- буквы латинского алфавита в верхнем регистре (A-Z);
|
||||
- буквы латинского алфавита в нижнем регистре (a-z);
|
||||
- цифры (0-9);
|
||||
- специальные символы и знаки пунктуации (например, `!@#$%^&*(),.?`).
|
||||
|
||||
**Периодичность смены:** рекомендуемая периодичность смены пароля - не реже одного раза в год.
|
||||
|
||||
### Создание пользователей
|
||||
|
||||
Для удобства можно написать скрипт, который создает пользователя сразу для двух методов шифрования - SHA-256 и SHA-512:
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
username="имя_пользователя"
|
||||
password="сгенерированный_пароль"
|
||||
bootstrap="<IP_брокера_0>:9092,<IP_брокера_1>:9092,<IP_брокера_X>:9092"
|
||||
|
||||
/opt/kafka/bin/kafka-configs.sh \
|
||||
--bootstrap-server $bootstrap \
|
||||
--alter \
|
||||
--add-config SCRAM-SHA-256=[password="$password"] \
|
||||
--command-config /opt/kafka/config/client.properties \
|
||||
--entity-type users \
|
||||
--entity-name $username
|
||||
|
||||
/opt/kafka/bin/kafka-configs.sh \
|
||||
--bootstrap-server $bootstrap \
|
||||
--alter \
|
||||
--add-config SCRAM-SHA-512=[password="$password"] \
|
||||
--command-config /opt/kafka/config/client.properties \
|
||||
--entity-type users \
|
||||
--entity-name $username
|
||||
```
|
||||
|
||||
**Запуск скрипта:**
|
||||
|
||||
```
|
||||
sudo ./kafka-user-add.sh
|
||||
```
|
||||
|
||||
### Просмотр данных о пользователе
|
||||
|
||||
Для просмотра информации о существующих пользователях выполняется команда:
|
||||
|
||||
```
|
||||
sudo ./kafka-console-consumer.sh --bootstrap-server <IP_брокеров>:9092 --describe --command-config ../config/client.properties --entity-type users
|
||||
```
|
||||
|
||||
### Управление consumer groups
|
||||
|
||||
Consumer Group создается автоматически при обращении к ней. Например, при чтении сообщений из топика с указанием этой consumer group:
|
||||
|
||||
```
|
||||
sudo ./kafka-console-consumer.sh --bootstrap-server <IP_брокеров>:9092 --command-config ../config/client.properties --topic test-topic --group test-group --from-beginning
|
||||
```
|
||||
|
||||
### Просмотр списка ACL
|
||||
|
||||
Действия с ACL из командной строки осуществляются скриптом kafka-acls.sh. Пример просмотра списка ACL:
|
||||
|
||||
```
|
||||
sudo ./kafka-acls.sh --bootstrap-server <IP_брокера_0>:9092,<IP_брокера_1>:9092,<IP_брокера_X>:9092 --command-config ../config/client.properties --list
|
||||
```
|
||||
|
||||
## Администрирование кластера
|
||||
|
||||
#### Изменение объема RAM
|
||||
|
||||
Для изменения объема оперативной памяти, выделенной под Kafka, направляется обращение в техническую поддержку с указанием требуемого объема RAM.
|
||||
|
||||
#### Изменение количества брокеров
|
||||
|
||||
Выполняется также через обращение в техническую поддержку.
|
||||
|
||||
Брокеров в кластере рекомендуется поддерживать **нечетным** для корректной работы механизмов выборов лидера.
|
||||
|
||||
После добавления брокера выполняется перераспределение существующих партиций с учетом нового узла с помощью утилиты **kafka-reassign-partitions.sh:**
|
||||
|
||||
```
|
||||
./kafka-reassign-partitions.sh --bootstrap-server <адреса_брокеров> --generate --topics-to-move-json-file topics.json --broker-list "0,1,2" --execute
|
||||
```
|
||||
|
||||
::: warning Примечание
|
||||
Операция перераспределения партиций требует времени и может создавать дополнительную нагрузку на кластер. Выполнение рекомендуется в период наименьшей активности.
|
||||
:::
|
||||
@@ -0,0 +1,77 @@
|
||||
# Рекомендации по настройке топика (тариф Base)
|
||||
|
||||
В разделе описаны основные параметры топиков Apache Kafka, влияющие на производительность, отказоустойчивость и параллелизм обработки данных.
|
||||
|
||||
## Базовые параметры топика
|
||||
|
||||
### Имя топика
|
||||
|
||||
При именовании топика применяются следующие правила:
|
||||
|
||||
**Допустимые символы:**
|
||||
- первый символ — буква (a–z, A–Z), цифра (0–9) или подчёркивание (_);
|
||||
- последующие символы — буквы, цифры, точки (.), дефисы (-) или подчёркивания;
|
||||
- длина имени — от 3 до 200 символов.
|
||||
|
||||
**Ограничения:**
|
||||
- имя топика нельзя изменить после создания;
|
||||
- не рекомендуется использовать имена, различающиеся только точкой и подчёркиванием (например, `topic_1` и `topic.1`): Kafka не различает такие названия;
|
||||
- имена с двойным подчёркиванием в начале (например, `__consumer_offsets`) зарезервированы для внутренних топиков Kafka.
|
||||
|
||||
### Количество партиций (partitions)
|
||||
|
||||
Партиции определяют уровень параллелизма при чтении и записи данных. Количество партиций выбирается исходя из требуемой пропускной способности.
|
||||
|
||||
**Правила:**
|
||||
- количество партиций можно только увеличивать (уменьшение невозможно);
|
||||
- при наличии нескольких брокеров рекомендуется выбирать число партиций, кратное количеству брокеров — для равномерного распределения нагрузки;
|
||||
- рекомендуется мониторить отставание потребителей (consumer lag) и при необходимости увеличивать число партиций.
|
||||
|
||||
**Расчет количества партиций:**
|
||||
Количество партиций определяется по формуле:
|
||||
|
||||
```
|
||||
Partitions = max(NP, NC)
|
||||
```
|
||||
где:
|
||||
- NP = TT / TP - количество необходимых продюсеров;
|
||||
- NC = TT / TC - количество необходимых консьюмеров;
|
||||
- TT - общая ожидаемая пропускная способность системы;
|
||||
- TP - максимальная пропускная способность одного продюсера для одной партиции;
|
||||
- TC - максимальная пропускная способность одного консьюмера для одной партиции.
|
||||
|
||||
::: details Пример
|
||||
- **TT = 1000 МБ/с**
|
||||
|
||||
Тест показал: **TP = 20 МБ/с** (один продюсер в одну партицию)
|
||||
|
||||
- **NP = 1000 / 20 = 50 продюсеров**
|
||||
|
||||
Значит, нужно минимум 50 партиций (чтобы 50 продюсеров не ждали друг друга).
|
||||
- Но если **TC = 10 МБ/с** (консьюмер потребляет медленно), то:
|
||||
- **NC = 1000 / 10 = 100 консьюмеров**
|
||||
- **Partitions = max(50, 100) = 100**
|
||||
:::
|
||||
|
||||
## Фактор репликации (replication-factor)
|
||||
|
||||
Фактор репликации определяет количество копий данных, хранящихся на разных брокерах.
|
||||
|
||||
**Рекомендация для production-сред:** установите значение **3**.
|
||||
При этом каждая партиция получает одного лидера и две реплики, что обеспечивает отказоустойчивость при выходе одного брокера.
|
||||
|
||||
## Дополнительные параметры конфигурации
|
||||
|
||||
Параметр `min.insync.replicas` (минимальное количество синхронизированных реплик) работает вместе с настройкой продюсера `acks=all`. Он задаёт, сколько реплик (включая лидера) должны подтвердить запись, чтобы она считалась успешной.
|
||||
|
||||
**Для production-кластера с фактором репликации = 3**
|
||||
Установите `min.insync.replicas = 2`.
|
||||
|
||||
Что это даёт:
|
||||
|
||||
- **надёжность** — данные точно попали минимум на два брокера;
|
||||
- **доступность** — если один брокер упадёт, запись продолжится.
|
||||
|
||||
::: warning Примечание
|
||||
Не рекомендуется устанавливать значение равным фактору репликации (например, `min.insync.replicas = 3`). Если один брокер перезагрузится, запись в топик станет невозможной — система будет ждать подтверждения от всех трёх реплик, а одна недоступна.
|
||||
:::
|
||||
@@ -0,0 +1,108 @@
|
||||
# Конфигурация кластера
|
||||
|
||||
В разделе описаны технические параметры кластера Kafka и порядок их первичной настройки.
|
||||
|
||||
Конфигурация выполняется администратором облачного провайдера на этапе развёртывания сервиса. Пользователь не имеет прямого доступа к изменению этих параметров. Перед созданием кластера клиент передаёт менеджеру перечень требуемых параметров. Администратор выполняет настройку в соответствии с согласованными требованиями.
|
||||
|
||||
## Выбор типа и размера дискового хранилища
|
||||
|
||||
Производительность брокера сообщений напрямую зависит от скорости чтения и записи на диск. При заказе кластера необходимо выбрать тип дискового хранилища — он определяет максимальную скорость работы (IOPS) и время отклика.
|
||||
|
||||
**IOPS** (Input/Output Operations Per Second) — количество операций чтения или записи, которые диск выполняет за секунду. Чем выше IOPS, тем быстрее брокер обрабатывает запросы.
|
||||
|
||||
::: warning Примечание
|
||||
Каждые 15 IOPS обеспечивают примерно 1 Мбит/с скорости чтения или записи при размере блока данных 64 КБ.
|
||||
:::
|
||||
|
||||
### Доступные типы хранилищ:
|
||||
|
||||
|Название | Лимит IOPS |
|
||||
|---------------|--------------------|
|
||||
|**Fast SAS** | до 2 IOPS на 1 ГБ |
|
||||
|**SSD** | до 5 IOPS на 1 ГБ |
|
||||
|**Fast SSD** | до 10 IOPS на 1 ГБ |
|
||||
|**Ultra NVMe** | до 25 IOPS на 1 ГБ |
|
||||
|
||||
::: warning Примечание
|
||||
После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные кластера Kafka. Минимальный объем зависит от выбранного типа хранилища
|
||||
:::
|
||||
|
||||
## Конфигурация вычислительных ресурсов
|
||||
|
||||
В данном разделе определяются вычислительные мощности кластера: процессорные ресурсы, оперативная память и количество серверов (нод), из которых будет состоять кластер Kafka.
|
||||
|
||||
#### Основные понятия
|
||||
|
||||
| Термин | Описание |
|
||||
|-------------------------------|----------|
|
||||
| **Количество нод в кластере** | Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надежность и производительность чтения. Количество нод выбирается в диапазоне от 3 до 14. |
|
||||
| **Процессор (CPU)** | Процессор - это вычислительная мощность, которая выделяется каждой ноде кластера. Количество vCPU определяет, насколько быстро брокер сообщений сможет обрабатывать запросы, выполнять сложные операции (сортировки, объединения таблиц) и обслуживать одновременные подключения. Доступный диапазон выбора процессора: от 2 шт до 24 шт. |
|
||||
| **Оперативная память (RAM)** | Оперативная память - один из ключевых ресурсов для производительности. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску. Доступный диапазон выбора оперативной памяти: от 4 ГБ до 768 ГБ. |
|
||||
|
||||
## Интернет
|
||||
|
||||
При заказе сервиса можно выбрать пропускную способность канала связи, через который будет осуществляться доступ к кластеру Kafka из сети интернет.
|
||||
|
||||
**Доступные варианты скорости:**
|
||||
|
||||
- 50 Мбит/с;
|
||||
- 100 Мбит/с;
|
||||
- 200 Мбит/с;
|
||||
- 300 Мбит/с;
|
||||
- 400 Мбит/с;
|
||||
- 500 Мбит/с;
|
||||
- 1000 Мбит/с (1 Гбит/с).
|
||||
|
||||
::: warning Примечание
|
||||
Для выбранного канала предоставляется **публичный IP-адрес**.
|
||||
:::
|
||||
|
||||
## Сетевой доступ к кластеру
|
||||
|
||||
Выбор способа подключения зависит от архитектуры приложений и требований к безопасности. Доступны два варианта:
|
||||
|
||||
- **IPsec-подключение** — организация защищённого туннеля между инфраструктурой клиента и кластером Kafka. Подробнее см. раздел «IPsec»;
|
||||
- **Interconnect** — прямое сетевое соединение между сервисами внутри платформы без использования публичных сетей. Подробнее см. раздел «Interconnect».
|
||||
|
||||
**Особенности Interconnect:**
|
||||
- сначала закажите PaaS-сервис и дождитесь его предоставления;
|
||||
- затем отдельно закажите Interconnect через менеджера.
|
||||
|
||||
## Калькулятор расчёта кластера
|
||||
|
||||
Для расчёта параметров кластера Kafka разработан специализированный калькулятор — простое веб-приложение.
|
||||
|
||||
**Как работает:**
|
||||
- в калькулятор вносятся исходные данные о планируемой нагрузке (пропускная способность, количество партиций и т.д.);
|
||||
- после нажатия кнопки **«Получить»** автоматически рассчитывается конфигурация кластера.
|
||||
|
||||
Все поля обязательны для заполнения. Формы можно удалять, добавлять и дублировать — это позволяет гибко настраивать параметры под разные сценарии использования.
|
||||
|
||||
## Параметры топиков
|
||||
|
||||
| Параметр |Описание |
|
||||
|---------------------------------------|---------|
|
||||
| **Имя топика** |Уникальное наименование топика в рамках кластера. Поле обязательное. Используется для идентификации топика при расчетах.|
|
||||
| **Число партиций** |Количество партиций, на которые будет разбит топик. Значение должно быть больше числа консьюмеров.|
|
||||
| **Фактор репликации** |Количество копий данных, хранящихся на разных брокерах. Для продуктивных кластеров рекомендуется значение не менее 3. <br>**Примечание:** Количество узлов кластера формируется на основании параметра фактора репликации. Рекомендуется выбирать нечетное количество узлов для корректной работы механизмов выборов лидера.|
|
||||
| **Средний размер сообщения** |Средний объем одного сообщения, передаваемого через топик.|
|
||||
| **Максимальный размер сообщения** |Максимальный объем одного сообщения. Используется для расчета пиковых нагрузок.|
|
||||
| **Частота сообщений** |Количество сообщений, отправляемых в топик за единицу времени.|
|
||||
| **Срок хранения сообщения** |Период времени, в течение которого сообщения хранятся в топике после записи. По истечении этого срока данные удаляются.|
|
||||
| **Имя продюсера** |Наименование приложения-отправителя (для идентификации в расчетах)|
|
||||
| **Количество экземпляров продюсера** |Число одновременно работающих экземпляров продюсера.|
|
||||
| **Имя консьюмера** |Наименование приложения-получателя (для идентификации в расчетах).|
|
||||
| **Количество экземпляров консьюмера** |Число одновременно работающих экземпляров консьюмера. <br>**Примечание:** Формы продюсеров и консьюмеров можно добавлять, удалять и дублировать. Это позволяет учитывать множественные источники и приемники данных в рамках одного расчета.|
|
||||
|
||||
## Расчет конфигурации кластера
|
||||
|
||||
После заполнения всех полей нажимается кнопка **Получить**. Все расчеты выполняются в соответствии с планированием ресурсов, указанных в официальной документации Apache Kafka.
|
||||
В результате, рассчитанные параметры служат основой для формирования заказа на управляемый сервис Kafka.
|
||||
|
||||
Калькулятор автоматически производит расчет следующих параметров:
|
||||
|
||||
- **Количество узлов** - формируется на основании параметра фактора репликации (replication.factor). Рекомендуется выбирать нечетное количество узлов для корректной работы механизмов выборов лидера;
|
||||
- **vCPU** - вычисляется из планируемого количества входящих сообщений и масштабируется в зависимости от числа узлов: чем больше кластер, тем меньше требуется CPU на отдельный сервер благодаря распределению нагрузки;
|
||||
- **RAM** - рассчитывается с учетом количества партиций, объема сообщений и числа подключений продюсеров и консьюмеров;
|
||||
- **Тип и объем дискового хранилища** - определяется на основе среднего и максимального размера сообщения, частоты отправки, срока хранения и фактора репликации;
|
||||
- **Параметры репликации** - учитывают заданный фактор репликации и обеспечивают отказоустойчивость кластера.
|
||||
@@ -0,0 +1,138 @@
|
||||
# Подключение и работа с кластером Kafka (тариф Full)
|
||||
|
||||
Раздел содержит описание способов подключения к управлению кластером Kafka. Поддерживаются два типа подключения:
|
||||
- `SASL_PLAINTEXT` - незашифрованное;
|
||||
- `SASL_SSL` - зашифрованное (через SSL-сертификат).
|
||||
|
||||
Также в разделе приведены примеры работы с клиентскими утилитами и базовые операции администрирования.
|
||||
|
||||
## Предварительные требования
|
||||
|
||||
Для начала работы с кластером Kafka необходимо выполнить предварительную настройку:
|
||||
|
||||
1. **Установить клиент Kafka** - скачивается дистрибутив Kafka (например, kafka_2.13-4.2.0) и распаковывается в удобную директорию;
|
||||
2. **Установить среду выполнения Java** - для работы необходимо установить среду выполнения, с помощью команды: `sudo apt install openjdk-17-jre-headless`. Рекомендуется использовать версию OpenJDK 17 или выше;
|
||||
3. **Доступ к брокерам** - адреса брокеров (bootstrap servers) предоставляются после развертывания кластера;
|
||||
4. **Учетные данные**:
|
||||
- Имя пользователя (username) - стандартное значение client;
|
||||
- Пароль - предоставляется после развертывания кластера.
|
||||
5. **Корневой сертификат (для SSL-подключения)** - сертификат для зашифрованного подключения предоставляется файлом при заказе сервиса Kafka.
|
||||
|
||||
## Структура клиентского дистрибутива
|
||||
|
||||
После распаковки архива Kafka в директории bin доступны скрипты, например:
|
||||
|
||||
| Скрипт | Назначение |
|
||||
|---------------------------|--------------------------|
|
||||
|`kafka-console-producer.sh`|Отправка сообщений в топик|
|
||||
|`kafka-console-consumer.sh`|Чтение сообщений из топика|
|
||||
|
||||
В разделе ниже приведены примеры использования скриптов.
|
||||
|
||||
Подробное описание операций с данными и другими скриптами приведено в [официальной документации Kafka](https://kafka.apache.org/42/getting-started/introduction/). Дополнительную информацию можно получить, выполнив любой скрипт с флагом --help:
|
||||
|
||||
```
|
||||
./kafka-console-producer.sh
|
||||
```
|
||||
|
||||
## Конфигурационные файлы клиента
|
||||
|
||||
Для подключения к Kafka используется файл настроек **client.properties**, который содержит параметры аутентификации, протокола и его механизмов (рекомендуются SCRAM_SHA_512 и SCRAM_SHA_256).
|
||||
|
||||
### Незашифрованное подключение (SASL_PLAINTEXT)
|
||||
|
||||
Создается файл client.properties со следующим содержимым:
|
||||
|
||||
```
|
||||
sasl.mechanism=SCRAM-SHA-512
|
||||
security.protocol=SASLPLAINTEXT
|
||||
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
|
||||
username="вашлогин" \
|
||||
password="вашпароль";
|
||||
```
|
||||
|
||||
::: warning Примечание
|
||||
Для незашифрованного подключения (SASL_PLAINTEXT) используется порт 9091;
|
||||
:::
|
||||
|
||||
### Зашифрованное подключение (SASL_SSL)
|
||||
|
||||
Для зашифрованного подключения (в production-средах рекомендуется использовать именно его) дополнительно требуется корневой сертификат и хранилище доверенных сертификатов (truststore).
|
||||
|
||||
::: warning Примечание
|
||||
Для зашифрованного подключения (SASL_SSL) используется порт 9092.
|
||||
:::
|
||||
|
||||
### Шаг 1. Создание truststore
|
||||
|
||||
С помощью утилиты **keytool** выполняется импорт сертификата в хранилище:
|
||||
|
||||
```
|
||||
keytool -importcert -storetype PKCS12 -keystore /путь/к/трастстору/truststore.jks -alias myalias -file ca.crt -storepass любойвашпароль -keypass любойвашпароль
|
||||
```
|
||||
|
||||
Параметры:
|
||||
|
||||
- **keystore** - путь к создаваемому хранилищу;
|
||||
- **alias** - псевдоним сертификата в хранилище;
|
||||
- **file** - путь к загруженному корневому сертификату;
|
||||
- **storepass** - пароль для доступа к хранилищу;
|
||||
- **keypass** - пароль для доступа к ключу.
|
||||
|
||||
### Шаг 2. Настройка client.properties
|
||||
|
||||
В файл **client.properties** добавляются параметры SSL:
|
||||
|
||||
```
|
||||
sasl.mechanism=SCRAM-SHA-512
|
||||
security.protocol=SASLSSL
|
||||
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
|
||||
username="вашлогин" \
|
||||
password="вашпароль";
|
||||
ssl.truststore.location=/путь/к/трастстору/truststore.jks
|
||||
ssl.truststore.password=парольотхранилища
|
||||
```
|
||||
|
||||
### Отправка сообщения в топик
|
||||
|
||||
Выполняется команда с указанием брокеров, файла конфигурации и топика:
|
||||
|
||||
```
|
||||
./kafka-console-producer.sh --bootstrap-server <IP_брокера_0>:9092,<IP_брокера_1>:9092,<IP_брокера_2>:9092 --command-config~/client.properties --topic test-topic
|
||||
```
|
||||
|
||||
Параметры:
|
||||
|
||||
- **bootstrap-server** - список брокеров кластера (адреса и порты);
|
||||
- **command-config** - путь к файлу с настройками клиента;
|
||||
|
||||
После выполнения команды сообщения вводятся построчно. Для завершения используется сочетание клавиш Ctrl+C.
|
||||
|
||||
### Чтение сообщений из топика
|
||||
|
||||
Выполняется команда с указанием топика и, при необходимости, consumer group:
|
||||
|
||||
```
|
||||
./kafka-console-consumer.sh --bootstrap-server <IP_брокера_0>:9092,<IP_брокера_1>:9092,<IP_брокера_2>:9092 --command-config~/client.properties --topic test-topic --from-beginning --group my-new-consumer-group
|
||||
```
|
||||
|
||||
Параметры:
|
||||
|
||||
- **from-beginning** - чтение всех сообщений с начала (при отсутствии параметра чтение начинается с новых сообщений);
|
||||
- **group** - название consumer group, которая при её указании создастся автоматически.
|
||||
|
||||
## Администрирование кластера
|
||||
|
||||
::: warning Примечание
|
||||
Для изменения параметров кластера Kafka (CPU, RAM, DISK, количества брокеров, параметров топиков) необходимо направить запрос в **Service Desk** по адресу `servicedesk@datafort.ru` с указанием требуемых значений.
|
||||
:::
|
||||
|
||||
### Изменение количества брокеров
|
||||
|
||||
Выполняется также через обращение в техническую поддержку.
|
||||
|
||||
Брокеров в кластере рекомендуется поддерживать **нечетным** для корректной работы механизмов выборов лидера.
|
||||
|
||||
::: warning Примечание
|
||||
Операция перераспределения партиций требует времени и может создавать дополнительную нагрузку на кластер. Выполнение рекомендуется в период наименьшей активности.
|
||||
:::
|
||||
@@ -0,0 +1,107 @@
|
||||
# Cloud Deckhouse Kubernetes
|
||||
|
||||
## Назначение сервиса
|
||||
|
||||
**Cloud Deckhouse Kubernetes** — это управляемый облачный сервис на базе платформы оркестрации контейнеров Kubernetes.
|
||||
|
||||
Сервис автоматизирует настройку:
|
||||
- серверов;
|
||||
- сети;
|
||||
- балансировщиков нагрузки;
|
||||
- механизмов отказоустойчивости.
|
||||
|
||||
Пользователю не нужно самостоятельно управлять инфраструктурой — кластер работает «из коробки».
|
||||
|
||||
> **Kubernetes** - это платформа для оркестрации контейнеров, которая автоматизирует развертывание, масштабирование и управление приложениями.
|
||||
|
||||
## Автоматизация сервис
|
||||
|
||||
**Cloud Deckhouse Kubernetes** самостоятельно выполняет следующие операции:
|
||||
|
||||
| Операция | Описание |
|
||||
|------------------------------|-------------------------------------------------------|
|
||||
| Управление ролями узлов | Назначает узлам роли master, frontend, system, worker |
|
||||
| Мониторинг компонентов | Отслеживает состояние всех частей платформы |
|
||||
| Восстановление после отказов | Автоматически перезапускает отказавшие узлы и поды |
|
||||
|
||||
## Архитектура и компоненты
|
||||
|
||||
Для стабильной работы сервиса используются три ключевых компонента:
|
||||
|
||||
- **Deckhouse** — платформа управления. Устанавливает, обновляет и настраивает кластер.
|
||||
- **etcd** — распределенное хранилище. Сохраняет состояние кластера и данные конфигурации.
|
||||
- **Балансировщики нагрузки** — единая точка входа. Направляют трафик к работающим приложениям.
|
||||
|
||||
## Доступ к приложениям
|
||||
|
||||
Подключение к приложениям внутри кластера выполняется через единую точку доступа. Подключаться к отдельным узлам не требуется.
|
||||
|
||||
## Управление и мониторинг
|
||||
|
||||
| Задача | Инструмент |
|
||||
|-------------------------------------------------|-----------------------|
|
||||
| Управление кластером и развертывание приложений | Веб-интерфейс Console |
|
||||
| Мониторинг состояния системы | Grafana |
|
||||
|
||||
## Отказоустойчивость
|
||||
|
||||
Кластер поставляется в отказоустойчивой архитектуре, которая обеспечивает:
|
||||
|
||||
- высокую доступность плоскости управления (control plane);
|
||||
- автоматическое восстановление узлов при отказах.
|
||||
|
||||
### Типы узлов кластера
|
||||
|
||||
Кластер состоит из следующих типов виртуальных серверов:
|
||||
|
||||
| Тип виртуального сервера | Количество узлов | Назначение |
|
||||
| ------------------------------- | ---------------- | -------------------- |
|
||||
| **Master-узлы (control plane)** | 3 | Обязательные узлы. На них работают управляющие компоненты кластера: API server, etcd, controller manager, scheduler. |
|
||||
| **System-узлы** | 2 | Служебные узлы. На них размещаются внутренние компоненты платформы Deckhouse, системы мониторинга (Prometheus, Grafana), логирования и другие вспомогательные сервисы, обеспечивающие работу кластера. |
|
||||
| **Frontend-узлы** | 2 | Узлы, предназначенные для обработки входящего трафика. На них работают Ingress-контроллеры и балансировщики нагрузки, которые принимают запросы из внешней сети и распределяют их между приложениями, запущенными на worker-узлах. |
|
||||
| **Worker-узлы** | от 1 и более | Узлы, на которых непосредственно выполняются пользовательские приложения в контейнерах. Именно здесь размещаются поды с сервисами и прикладными компонентами. |
|
||||
|
||||
::: info Примечание
|
||||
По умолчанию кластер работает в высокодоступном режиме. Выход из строя одного или двух master-узлов не приводит к потере управления кластером.
|
||||
:::
|
||||
|
||||
::: warning Важно
|
||||
Для тестовых сред возможна **одноузловая конфигурация control plane**. В этом случае отказ master-узла сделает кластер неуправляемым.
|
||||
:::
|
||||
|
||||
## Доступ к кластеру
|
||||
|
||||
Прямой доступ к серверам кластера (по SSH) не предоставляется.
|
||||
|
||||
Управление приложениями и ресурсами кластера возможно через:
|
||||
|
||||
- **kubectl** — командная строка;
|
||||
- **веб-интерфейс Console**;
|
||||
- **API Kubernetes**.
|
||||
|
||||
## Возможности сервиса
|
||||
|
||||
**Cloud Deckhouse Kubernetes** предоставляет возможности, позволяющие использовать Kubernetes без самостоятельного администрирования инфраструктуры.
|
||||
|
||||
Сервис обеспечивает:
|
||||
|
||||
- автоматическое управление кластером (установка, обновление, настройка);
|
||||
- высокую доступность control plane;
|
||||
- единую точку входа в приложения;
|
||||
- автоматическое восстановление при отказах;
|
||||
- веб-доступ к управлению кластером и мониторингу;
|
||||
- совместимость со стандартными инструментами (**kubectl**);
|
||||
- автоматическое масштабирование приложений;
|
||||
- блочные и сетевые хранилища для данных приложений (Persistent Volume).
|
||||
|
||||
## Сценарии использования
|
||||
|
||||
Сервис подходит для систем, где требуется надежная оркестрация контейнеров и упрощённое управление инфраструктурой.
|
||||
|
||||
Примеры использования:
|
||||
|
||||
- размещение production-приложений в контейнерах с высокими требованиями к доступности;
|
||||
- микросервисная архитектура с единой точкой управления кластером;
|
||||
- работа stateful-приложений (базы данных, очереди) с сохранением состояния;
|
||||
- быстрое развёртывание Kubernetes-кластера без ручной настройки сети, хранилищ и мониторинга;
|
||||
- администрирование через веб-интерфейс без прямого доступа к серверам.
|
||||
@@ -0,0 +1,238 @@
|
||||
# Подключение к сервису Deckhouse
|
||||
|
||||
В данном разделе описаны способы подключения к кластеру **Cloud Deckhouse Kubernetes**. Рассматривается работа с кластером через веб-интерфейс **Console**, а также управление через командную строку с использованием утилиты **kubectl** после генерации **kubeconfig**.
|
||||
|
||||
## Предварительные требования
|
||||
|
||||
После предоставления доступа к **сервису Cloud Deckhouse Kubernetes** пользователь получает возможность управлять кластером через веб-интерфейс **Console**.
|
||||
|
||||
**Console** - это встроенный веб-интерфейс платформы Deckhouse, предназначенный для упрощения взаимодействия с Kubernetes-кластером.
|
||||
|
||||
Он позволяет выполнять большинство операций, доступных в командной строке через **kubectl**, в визуальном режиме:
|
||||
- мониторинг состояния кластера;
|
||||
- управление узлами и модулями;
|
||||
- настройку безопасности и сети.
|
||||
|
||||
## Вход в Console
|
||||
|
||||
1. Откройте веб-браузер и перейдите по адресу, предоставленному для доступа к Console.
|
||||
|
||||
::: info Примечание
|
||||
URL-адрес направляется пользователю на электронную почту при предоставлении доступа.
|
||||
:::
|
||||
|
||||
2. На странице ввода учетных данных выполняется аутентификация при помощи логина и пароля;
|
||||
|
||||

|
||||
|
||||
3. После успешной аутентификации откроется главная страница веб-интерфейса Console.
|
||||
|
||||

|
||||
|
||||
## Основные разделы Console
|
||||
|
||||
В левой боковой панели веб-интерфейса Console расположены основные разделы для управления кластером:
|
||||
|
||||
| Раздел | Назначение |
|
||||
| ------------------ | -------------------------------------------------------------------------------------- |
|
||||
| **Deckhouse** | Управление платформой Deckhouse: обзор, обновления, модули, глобальные настройки |
|
||||
| **Проекты** | Управление проектами, шаблонами проектов и namespace (пространствами имён) |
|
||||
| **Узлы** | Управление узлами кластера: группы узлов, конфигурации, классы машин, статические узлы |
|
||||
| **Конфигурация** | Настройка Deschedulers и Priority Classes |
|
||||
| **Доступ** | Управление аутентификацией, сессиями пользователей, правами доступа (RBAC) |
|
||||
| **Сеть** | Настройка Egress-шлюзов, балансировки и управление сертификатами |
|
||||
| **Хранилище** | Управление Persistent Volume, классами хранилищ и снимками томов |
|
||||
| **Безопасность** | Настройка политик безопасности и операционных политик |
|
||||
| **Мониторинг** | Просмотр данных, дашбордов, активных алертов, настройка уведомлений и экспорт метрик |
|
||||
| **Журналирование** | Управление отправкой и сбором логов |
|
||||
|
||||
## Генерация kubeconfig через Console
|
||||
|
||||
Помимо управления через веб-интерфейс, Console позволяет сгенерировать файл **kubeconfig** для доступа к кластеру через **kubectl**.
|
||||
|
||||
1. На главной странице Console находится раздел «Инструменты» (Tools);
|
||||
2. Необходимо выбрать пункт «Генератор kubeconfig» (Generate kubeconfig);
|
||||
3. Нажимается кнопка генерации - система сгенерирует необходимые команды;
|
||||
4. Далее, нужно скопировать и выполнить в терминале команды, которые сгенерированы для пользовательской учётной записи.
|
||||
|
||||
::: info Примечание
|
||||
Сгенерированный **kubeconfig** уже содержит все необходимые параметры для подключения к API Kubernetes.
|
||||
:::
|
||||
|
||||
## Примеры простейших команд kubectl
|
||||
|
||||
После настройки **kubeconfig** управление кластером осуществляется через командную строку с помощью утилиты **kubectl**. Ниже приведены основные команды для начала работы.
|
||||
|
||||
### Проверка подключения к кластеру
|
||||
|
||||
```
|
||||
kubectl cluster-info
|
||||
```
|
||||
|
||||
**Пример вывода:**
|
||||
|
||||
```
|
||||
Kubernetes control plane is running at https://127.0.0.1:6445
|
||||
|
||||
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
|
||||
```
|
||||
|
||||
### Просмотр узлов кластера
|
||||
|
||||
```
|
||||
kubectl get nodes
|
||||
```
|
||||
|
||||
**Пример вывода:**
|
||||
|
||||
```
|
||||
NAME STATUS ROLES AGE VERSION
|
||||
cloud-frontend-0 Ready frontend 12d v1.32.10
|
||||
cloud-frontend-1 Ready frontend 12d v1.32.10
|
||||
cloud-master-0 Ready control-plane,master 12d v1.32.10
|
||||
cloud-master-1 Ready control-plane,master 12d v1.32.10
|
||||
cloud-master-2 Ready control-plane,master 12d v1.32.10
|
||||
cloud-system-0 Ready system 12d v1.32.10
|
||||
cloud-system-1 Ready system 12d v1.32.10
|
||||
cloud-worker-a374349e-zznfp-nkqr2 Ready worker 12d v1.32.10
|
||||
cloud-worker-a374349e-zznfp-rdpdz Ready worker 12d v1.32.10
|
||||
```
|
||||
|
||||
### Просмотр пространств имен
|
||||
|
||||
```
|
||||
kubectl get namespaces
|
||||
```
|
||||
|
||||
**Пример вывода:**
|
||||
|
||||
```
|
||||
NAME STATUS AGE
|
||||
d8-admission-policy-engine Active 12d
|
||||
d8-cert-manager Active 12d
|
||||
d8-chrony Active 12d
|
||||
d8-cloud-instance-manager Active 12d
|
||||
d8-cloud-provider-vcd Active 12d
|
||||
d8-cni-cilium Active 12d
|
||||
d8-console Active 12d
|
||||
d8-dashboard Active 12d
|
||||
d8-descheduler Active 12d
|
||||
d8-ingress-nginx Active 12d
|
||||
d8-local-path-provisioner Active 12d
|
||||
d8-log-shipper Active 12d
|
||||
d8-metallb Active 12d
|
||||
d8-monitoring Active 12d
|
||||
d8-multitenancy-manager Active 12d
|
||||
d8-observability Active 12d
|
||||
d8-operator-prometheus Active 12d
|
||||
d8-pod-reloader Active 12d
|
||||
d8-service-accounts Active 12d
|
||||
d8-snapshot-controller Active 12d
|
||||
d8-system Active 12d
|
||||
d8-upmeter Active 12d
|
||||
d8-user-authn Active 12d
|
||||
default Active 12d
|
||||
kube-node-lease Active 12d
|
||||
kube-public Active 12d
|
||||
kube-system Active 12d
|
||||
```
|
||||
|
||||
### Просмотр подов в конкретном namespace
|
||||
|
||||
```
|
||||
kubectl get pods -n d8-console
|
||||
```
|
||||
|
||||
**Пример вывода:**
|
||||
|
||||
```
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
backend-546c7496f8-2nzx2 1/1 Running 0 3d7h
|
||||
backend-546c7496f8-nxqf4 1/1 Running 0 3d7h
|
||||
console-dex-authenticator-6b7d456445-7cg9p 2/2 Running 0 12d
|
||||
console-dex-authenticator-6b7d456445-ljjr8 2/2 Running 0 12d
|
||||
frontend-79cb59c94d-cf457 1/1 Running 0 3d7h
|
||||
frontend-79cb59c94d-rvlzk 1/1 Running 0 3d7h
|
||||
observability-gw-59c4fb6548-2lcqr 1/1 Running 0 3d7h
|
||||
observability-gw-59c4fb6548-9n6nb 1/1 Running 0 3d7h
|
||||
```
|
||||
|
||||
### Просмотр логов пода
|
||||
|
||||
```
|
||||
kubectl logs frontend-79cb59c94d-cf457 -n d8-console
|
||||
```
|
||||
|
||||
### Просмотр сервисов
|
||||
|
||||
```
|
||||
kubectl get services -n d8-console
|
||||
```
|
||||
|
||||
**Пример вывода:**
|
||||
|
||||
```
|
||||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
backend ClusterIP 10.222.4.60 <none> 8999/TCP 12d
|
||||
console-dex-authenticator ClusterIP 10.222.224.82 <none> 443/TCP 12d
|
||||
frontend ClusterIP 10.222.226.106 <none> 80/TCP 12d
|
||||
observability-gw ClusterIP None <none> 3000/TCP,8443/TCP 12d
|
||||
```
|
||||
|
||||
### Быстрое получение информации о ресурсах
|
||||
|
||||
```
|
||||
kubectl get all -n d8-console
|
||||
```
|
||||
|
||||
**Пример вывода:**
|
||||
|
||||
```
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
pod/backend-546c7496f8-2nzx2 1/1 Running 0 3d7h
|
||||
pod/backend-546c7496f8-nxqf4 1/1 Running 0 3d7h
|
||||
pod/console-dex-authenticator-6b7d456445-7cg9p 2/2 Running 0 12d
|
||||
pod/console-dex-authenticator-6b7d456445-ljjr8 2/2 Running 0 12d
|
||||
pod/frontend-79cb59c94d-cf457 1/1 Running 0 3d7h
|
||||
pod/frontend-79cb59c94d-rvlzk 1/1 Running 0 3d7h
|
||||
pod/observability-gw-59c4fb6548-2lcqr 1/1 Running 0 3d7h
|
||||
pod/observability-gw-59c4fb6548-9n6nb 1/1 Running 0 3d7h
|
||||
|
||||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
service/backend ClusterIP 10.222.4.60 <none> 8999/TCP 12d
|
||||
service/console-dex-authenticator ClusterIP 10.222.224.82 <none> 443/TCP 12d
|
||||
service/frontend ClusterIP 10.222.226.106 <none> 80/TCP 12d
|
||||
service/observability-gw ClusterIP None <none> 3000/TCP,8443/TCP 12d
|
||||
|
||||
NAME READY UP-TO-DATE AVAILABLE AGE
|
||||
deployment.apps/backend 2/2 2 2 12d
|
||||
deployment.apps/console-dex-authenticator 2/2 2 2 12d
|
||||
deployment.apps/frontend 2/2 2 2 12d
|
||||
deployment.apps/observability-gw 2/2 2 2 12d
|
||||
|
||||
NAME DESIRED CURRENT READY AGE
|
||||
replicaset.apps/backend-546c7496f8 2 2 2 3d7h
|
||||
replicaset.apps/backend-69d8c6bd68 0 0 0 12d
|
||||
replicaset.apps/console-dex-authenticator-6b7d456445 2 2 2 12d
|
||||
replicaset.apps/console-dex-authenticator-74c97bf4d6 0 0 0 12d
|
||||
replicaset.apps/frontend-6b7ffb7bbd 0 0 0 9d
|
||||
replicaset.apps/frontend-79cb59c94d 2 2 2 3d7h
|
||||
replicaset.apps/frontend-79ccdfc56b 0 0 0 12d
|
||||
replicaset.apps/observability-gw-574cdfdd87 0 0 0 12d
|
||||
replicaset.apps/observability-gw-59c4fb6548 2 2 2 3d7h
|
||||
|
||||
|
||||
```
|
||||
### Получение справки
|
||||
|
||||
Для получение справки по любой команде используется флаг **--help**:
|
||||
|
||||
```
|
||||
kubectl get pods --help
|
||||
kubectl describe pod --help
|
||||
```
|
||||
### Просмотр подробной информации о конкретном ресурсе
|
||||
|
||||
```
|
||||
kubectl describe pod <имя-пода> -n <namespace>
|
||||
```
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 864 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 257 KiB |
@@ -0,0 +1,21 @@
|
||||
---
|
||||
section_links:
|
||||
- title: Обзор сервиса
|
||||
link: /Deckhouse/about.md
|
||||
description: Обзор сервиса
|
||||
- title: Права и возможности пользователей
|
||||
link: /Deckhouse/user-permissions.md
|
||||
description: Управление доступом и роли пользователей
|
||||
- title: Описание технических параметров
|
||||
link: /Deckhouse/technical-parameters.md
|
||||
description: Параметры конфигурации сервиса Deckhouse
|
||||
- title: Подключение к сервису Deckhouse
|
||||
link: /Deckhouse/connection.md
|
||||
description: Подключение и работа с сервисом Deckhouse
|
||||
---
|
||||
|
||||
# Cloud Deckhouse Kubernetes
|
||||
|
||||
В данном разделе представлена документация по управлемому сервису **Cloud Deckhouse Kubernetes** платформы Beeline Cloud.
|
||||
|
||||
Для более глубокого ознакомления с возможностями Deckhouse рекомендуется обратиться к официальной документации по [ссылке](https://deckhouse.ru/docs/)
|
||||
@@ -0,0 +1,120 @@
|
||||
# Описание технических параметров
|
||||
|
||||
Данный раздел содержит технические параметры **кластера Kubernetes** и порядок их первичной конфигурации.
|
||||
|
||||
Настройка параметров выполняется администратором облачного провайдера на этапе развертывания сервиса. Пользователь не может изменять их самостоятельно (исключение — конфигурация worker-узлов).
|
||||
|
||||
**Процедура согласования параметров:**
|
||||
|
||||
1. Клиент передает менеджеру список требуемых параметров.
|
||||
2. Администратор выполняет настройку по согласованным требованиям.
|
||||
|
||||
## Дисковое хранилище
|
||||
|
||||
Производительность приложений в Kubernetes зависит от скорости чтения и записи данных на диск. Тип хранилища определяет:
|
||||
|
||||
- **IOPS** (Input/Output Operations Per Second) — количество операций ввода-вывода в секунду;
|
||||
- **время отклика** (латентность).
|
||||
|
||||
::: info Примечание
|
||||
Чем выше IOPS, тем быстрее работают базы данных и другие диско-интенсивные приложения.
|
||||
:::
|
||||
|
||||
## Доступные типы хранилищ:
|
||||
|
||||
| Тип | Лимит IOPS |
|
||||
| ---------- | ------------------ |
|
||||
| Fast SAS | до 2 IOPS на 1 ГБ |
|
||||
| SSD | до 5 IOPS на 1 ГБ |
|
||||
| Fast SSD | до 10 IOPS на 1 ГБ |
|
||||
| Ultra NVMe | до 25 IOPS на 1 ГБ |
|
||||
|
||||
::: warning Важно
|
||||
После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные приложений (Persistent Volumes). **Минимальный объем - 50 ГБ.**
|
||||
:::
|
||||
|
||||
## Конфигурация вычислительных ресурсов
|
||||
|
||||
Вычислительные мощности кластера включают:
|
||||
|
||||
- процессорные ресурсы (vCPU);
|
||||
- оперативную память (RAM);
|
||||
- количество узлов.
|
||||
|
||||
### Узлы в кластере
|
||||
|
||||
Количество узлов определяет отказоустойчивость кластера и возможность распределять нагрузку между worker-узлами.
|
||||
|
||||
::: info Примечение
|
||||
Чем больше узлов, тем выше надежность и пропускная способность.
|
||||
:::
|
||||
|
||||
#### 1. Master-узлы (control plane)
|
||||
|
||||
Для обеспечения отказоустойчивости кластера **рекомендуется использовать не менее трех master-узлов**.
|
||||
|
||||
| Количество узлов | Результат |
|
||||
|------------------|-----------------------------------------------------------------------------------------------|
|
||||
| 3 и более | Обеспечивают кворум, безопасное обновление и отказоустойчивость. Большего числа не требуется. |
|
||||
| 2 | Недостаточно для кворума при отказе одного узла. |
|
||||
| 1 | Отказ узла приводит к полному сбою кластера. |
|
||||
|
||||
#### 2. System-узлы
|
||||
|
||||
Предназначены для запуска модулей Deckhouse.
|
||||
|
||||
**Рекомендация:** два узла. Это изолирует системные модули от пользовательских приложений.
|
||||
|
||||
#### 3. Frontend-узлы
|
||||
|
||||
Балансируют входящий трафик, на них работают Ingress-контроллеры.
|
||||
|
||||
**Рекомендация:** более одного узла.
|
||||
|
||||
**Требования к емкости:**
|
||||
|
||||
| Количество узлов | Требование к каждому узлу |
|
||||
|------------------|---------------------------------------------------|
|
||||
| 2 | Должен выдержать 100% нагрузки при отказе второго |
|
||||
| 3 | Должен выдержать увеличение нагрузки в 1.5 раза |
|
||||
|
||||
#### 4. Worker-узлы
|
||||
|
||||
На них выполняются пользовательские приложения.
|
||||
|
||||
- **Рекомендация:** от 1 узла.
|
||||
- **Управление:** пользователь может увеличивать максимальное количество узлов самостоятельно.
|
||||
|
||||
## Процессор (CPU)
|
||||
|
||||
**Процессор** - это вычислительная мощность, выделяемая каждому узлу кластера. Количество vCPU определяет, насколько быстро приложения смогут:
|
||||
|
||||
- обрабатывать запросы;
|
||||
- выполнять сложные вычисления;
|
||||
- обслуживать одновременные подключения.
|
||||
|
||||
**Диапазон**: от 2 до 24 vCPU на один узел.
|
||||
|
||||
## Оперативная память (RAM)
|
||||
|
||||
**Оперативная память** - влияет на производительность приложений. Данные в RAM обрабатываются без обращения к диску.
|
||||
|
||||
**Диапазон**: от 4 до 768 ГБ RAM на один узел.
|
||||
|
||||
## Доступ в интернет
|
||||
|
||||
При заказе сервиса выберите пропускную способность канала для доступа к кластеру из интернета.
|
||||
|
||||
**Доступные скорости**:
|
||||
|
||||
- 50 Мбит/с;
|
||||
- 100 Мбит/с;
|
||||
- 200 Мбит/с;
|
||||
- 300 Мбит/с;
|
||||
- 400 Мбит/с;
|
||||
- 500 Мбит/с;
|
||||
- 1000 Мбит/с (1 Гбит/с).
|
||||
|
||||
::: info Примечание
|
||||
Для выбранного канала предоставляется **статический белый IP-адрес**.
|
||||
:::
|
||||
@@ -0,0 +1,83 @@
|
||||
# Права и возможности пользователей
|
||||
|
||||
При развертывании сервиса Cloud Deckhouse Kubernetes создается учетная запись с уровнем доступа **SuperAdmin**. Этот уровень предоставляет расширенные права на управление кластером Kubernetes.
|
||||
|
||||
**SuperAdmin** получает полный контроль над своими приложениями и ресурсами в пределах выделенного кластера или пространства имен (namespace).
|
||||
|
||||
## Ограничения доступа SuperAdmin
|
||||
|
||||
SuperAdmin **не имеет доступа** к следующим компонентам:
|
||||
|
||||
- инфраструктурный уровень (гипервизоры, физические серверы, сетевое оборудование);
|
||||
- управление компонентами платформы Deckhouse на уровне всего кластера;
|
||||
- master-узлы, system-узлы и frontend-узлы;
|
||||
- изменение конфигурации платформы Deckhouse и её глобальных модулей.
|
||||
|
||||
## Доступные действия
|
||||
|
||||
### Управление пространствами имен (Namespaces)
|
||||
|
||||
SuperAdmin может управлять пространствами имен:
|
||||
|
||||
- создавать новые namespace;
|
||||
- удалять namespace (все ресурсы внутри удаляются);
|
||||
- просматривать список всех namespace;
|
||||
- устанавливать метки (labels) и аннотации для namespace.
|
||||
|
||||
### Управление рабочими нагрузками
|
||||
|
||||
SuperAdmin имеет полный контроль над подами, развёртываниями и другими ресурсами приложений:
|
||||
|
||||
- создавать, обновлять и удалять Deployment, StatefulSet, DaemonSet;
|
||||
- создавать, обновлять и удалять Pod;
|
||||
- просматривать логи подов (`kubectl logs`);
|
||||
- подключаться к выполняющемуся контейнеру (`kubectl exec`);
|
||||
- масштабировать развертывания (увеличивать или уменьшать количество реплик);
|
||||
- обновлять версии образов контейнеров;
|
||||
- удалять поды (в том числе принудительно);
|
||||
- просматривать события (events) в namespace.
|
||||
|
||||
### Управление сетевым доступом (Services & Ingress)
|
||||
|
||||
SuperAdmin может настраивать способы доступа к приложениям как внутри кластера, так и из внешней сети:
|
||||
|
||||
SuperAdmin может настраивать способы доступа к приложениям внутри кластера и из внешней сети:
|
||||
|
||||
- создавать, изменять и удалять Service (типы: ClusterIP, NodePort, LoadBalancer);
|
||||
- создавать, изменять и удалять Ingress-правила для маршрутизации входящего трафика;
|
||||
- настраивать порты и селекторы для сервисов;
|
||||
- просматривать список сервисов и их конечных точек (endpoints).
|
||||
|
||||
### Управление хранилищем (Storage)
|
||||
|
||||
SuperAdmin может создавать и использовать тома для хранения данных приложений:
|
||||
|
||||
- создавать Persistent Volume Claim (PVC);
|
||||
- удалять PVC (освобождать дисковое пространство);
|
||||
- просматривать список PVC и их статусов;
|
||||
- использовать PVC в подах (монтировать тома).
|
||||
|
||||
### Управление конфигурацией (ConfigMaps & Secrets)
|
||||
|
||||
SuperAdmin может создавать и изменять конфигурационные данные и секреты для приложений:
|
||||
|
||||
- создавать, изменять и удалять ConfigMap;
|
||||
- создавать, изменять и удалять Secrets (например, для хранения токенов, паролей или ключей);
|
||||
- монтировать ConfigMap и Secrets в поды в виде переменных окружения или файлов.
|
||||
|
||||
### Мониторинг и наблюдаемость
|
||||
|
||||
SuperAdmin имеет доступ к метрикам и логам своих приложений:
|
||||
|
||||
- просматривать метрики приложений в Grafana;
|
||||
- просматривать логи через `kubectl logs` или интерфейс сбора логов (Loki);
|
||||
- просматривать дашборды с информацией о потреблении ресурсов (CPU, RAM, Storage) своими приложениями;
|
||||
- просматривать события Kubernetes (events) для диагностики проблем.
|
||||
|
||||
### Управление доступом (RBAC)
|
||||
|
||||
SuperAdmin может управлять правами других пользователей в рамках своего пространства имен:
|
||||
|
||||
- создавать и удалять учетные записи (ServiceAccount);
|
||||
- назначать роли (Role, RoleBinding) другим пользователям в пределах своего namespace;
|
||||
- ограничивать доступ к отдельным ресурсам.
|
||||
@@ -1,12 +0,0 @@
|
||||
---
|
||||
section_links:
|
||||
- title: Cloud PostgreSQL
|
||||
link: /PaaS/PostgreSQL/PostgreSQL-index.md
|
||||
description: Обзор сервиса PostgreSQL
|
||||
- title: IPSEC
|
||||
link: /PaaS/IPSEC.md
|
||||
description: Параметры конфигурации IPSEC
|
||||
|
||||
---
|
||||
|
||||
# Начало работы в Cloud PostgreSQL
|
||||
@@ -0,0 +1,129 @@
|
||||
# 1С для PostgreSQL
|
||||
|
||||
В этой статье описан процесс добавления **информационной базы 1С при использовании PostgreSQL** в качестве сервера баз данных.
|
||||
|
||||
## Назначение сервиса
|
||||
|
||||
**Информационная база 1С** — это единое хранилище, в котором собраны логика работы программы и данные конкретной организации. В ней находятся:
|
||||
|
||||
- конфигурация, определяющая функционал системы;
|
||||
- рабочие данные: документы, справочники, регистры учета.
|
||||
|
||||
Информационная база необходима для ведения учета и хранения данных компании в одном месте. Через нее пользователи работают в 1С:
|
||||
|
||||
- вводят документы;
|
||||
- формируют отчеты;
|
||||
- настраивают учет под свои задачи.
|
||||
|
||||
Без информационной базы работа в 1С невозможна — она является основой стабильной работы всей системы.
|
||||
|
||||
::: info Примечание
|
||||
Задержка между кластером «1С:Предприятие» и сервером PostgreSQL **не должна превышать 7–8 миллисекунд**. Превышение этого порога может привести к нестабильной работе системы.
|
||||
:::
|
||||
|
||||
## Подключение к базе данных
|
||||
|
||||
Подключение к информационной базе может быть выполнено двумя способами:
|
||||
|
||||
- **через тонкий клиент** — графический способ, подходящий для большинства пользователей;
|
||||
- **через консоль** — способ для администраторов и автоматизации процессов.
|
||||
|
||||
#### 1. Подключение через тонкий клиент
|
||||
|
||||
Этот способ позволяет создать новую базу данных на сервере «1С:Предприятие» из установленного ранее шаблона типовой конфигурации.
|
||||
|
||||
##### Подключение к кластеру
|
||||
|
||||
1. Запустите программу «1С:Предприятие».
|
||||
2. В окне запуска нажмите кнопку **Добавить**.
|
||||
3. Запустится мастер добавления информационной базы. Установите переключатель в положение **Создание новой информационной базы** и нажмите **Далее**.
|
||||
4. В списке установленных шаблонов конфигураций выберите нужный шаблон и нажмите **Далее**.
|
||||
5. Введите имя базы данных — так она будет отображаться в списке информационных баз.
|
||||
6. В поле **Тип расположения** укажите **На сервере «1С:Предприятия»** и нажмите **Далее**.
|
||||
|
||||
##### Параметры информационной базы
|
||||
|
||||
| Параметр | Описание |
|
||||
|------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **Кластер серверов 1С:Предприятия** | Сетевое имя компьютера с установленным сервером «1С:Предприятия» (центральный кластер). Как правило, совпадает с именем узла |
|
||||
| **Имя информационной базы в кластере** | Уникальное имя для обращения к базе. Должно быть уникально в пределах кластера |
|
||||
| **Защищенное соединение** | По умолчанию **отключено** |
|
||||
| **Тип СУБД** | Укажите **PostgreSQL** |
|
||||
| **Сервер баз данных** | IP-адрес компьютера с сервером PostgreSQL (пример: `192.168.10.4`) |
|
||||
| **Имя базы данных** | Имя базы на сервере PostgreSQL. Рекомендуется задавать совпадающим с именем базы в кластере (пример: `db_test`) |
|
||||
| **Пользователь базы данных** | Пользователь PostgreSQL, который становится владельцем базы (пример: `user_test`) |
|
||||
| **Пароль пользователя** | Пароль указанного пользователя |
|
||||
| **Смещение дат** | Число лет, прибавляемых к датам при сохранении и вычитаемых при извлечении. Для PostgreSQL обычно `0`. При использовании регистров накопления или бухгалтерии рекомендуется `2000` |
|
||||
| **Создать базу данных в случае ее отсутствия** | Чекбокс — должен быть **снят** |
|
||||
| **Язык (Страна)** | Выберите **Русский (Россия)** |
|
||||
| **Установить блокировку регламентных заданий** | Запрещает выполнение регламентных заданий. Устанавливается для тестовых баз |
|
||||
| **Запретить локальное распознавание речи** | Обычно не устанавливается |
|
||||
|
||||
::: info Примечание
|
||||
Создание новой базы данных осуществляется на основании обращения в Service Desk. Запрос направляется по электронной почте `servicedesk@datafort.ru`.
|
||||
:::
|
||||
|
||||

|
||||
|
||||
#### 2. Подключение через консоль
|
||||
|
||||
Этот способ позволяет добавить информационную базу в кластер серверов через оснастку «Администрирование серверов 1С:Предприятия». Предварительно должна быть установлена соответствующая оснастка.
|
||||
|
||||
::: info Примечание
|
||||
Оснастка запускается выполнением файла `1CV8 Servers.msc`, который находится в каталоге установки «1С:Предприятие» в подкаталоге `common`.
|
||||
:::
|
||||
|
||||
Если оснастка запускается на том же компьютере, где установлен сервер «1С:Предприятия», в дереве слева в ветке с сетевым именем текущего компьютера отображается кластер серверов под названием **Локальный кластер**. При раскрытии вкладки **Информационные базы** отображаются все базы в данном кластере (включая созданные ранее через окно запуска «1С:Предприятие»).
|
||||
|
||||
##### Подключение к кластеру
|
||||
|
||||
1. На вкладке **Информационные базы** кликните правой кнопкой мыши.
|
||||
2. В контекстном меню выберите **Создать** → **Информационная база**.
|
||||
3. Откроется окно параметров создаваемой базы.
|
||||
4. Заполните параметры (список аналогичен описанному в разделе «Подключение через тонкий клиент», но дополнен новыми полями).
|
||||
5. Нажмите **ОК** для запуска процесса создания.
|
||||
|
||||
##### Параметры информационной базы
|
||||
|
||||
| Параметр | Описание |
|
||||
|----------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
|
||||
| **Блокировка начала сеансов включена** | Запрещает новые сеансы. Существующие продолжают работу |
|
||||
| **Начало** | Дата и время начала блокировки (формат: `ГГГГ-ММ-ДД чч:мм:сс`) |
|
||||
| **Конец** | Дата и время окончания блокировки |
|
||||
| **Сообщение** | Текст ошибки при попытке подключения к заблокированной базе |
|
||||
| **Код разрешения** | Строка для параметра `/UC` при запуске в обход блокировки |
|
||||
| **Параметр блокировки** | Произвольный текст для использования в конфигурациях |
|
||||
| **Блокировка регламентных заданий включена** | Запрещает выполнение регламентных заданий |
|
||||
| **Внешнее управление сеансами** | Параметры Web-сервиса внешнего управления сеансами |
|
||||
| **Обязательное использование внешнего управления** | При установке недоступность Web-сервиса вызывает ошибку подключения |
|
||||
| **Профиль безопасности** | Ограничения для прикладного решения |
|
||||
| **Профиль безопасности безопасного режима** | Ограничения для фрагментов в безопасном режиме |
|
||||
| **Резервирование рабочих процессов** | Определяет резервирование |
|
||||
| **Запретить локальное распознавание речи** | Обычно не устанавливается |
|
||||
| **При отсутствии активных пользователей** | Группа параметров: задержка выгрузки конфигурации, минимальный период запуска регламентных заданий, максимальный сдвиг |
|
||||
|
||||

|
||||
|
||||
После завершения настройки можно приступать к работе с базой данных через интерфейс "1С:Предприятие".
|
||||
|
||||
## Миграция базы из старой 1С
|
||||
|
||||
#### Выгрузка базы
|
||||
|
||||
Чтобы выгрузить базу 1С из старой системы:
|
||||
|
||||
1. Откройте базу в **Конфигураторе** на старом клиенте.
|
||||
2. Перейдите в меню **Администрирование** → **Выгрузить информационную базу**.
|
||||
3. Укажите путь для сохранения файла и выполните выгрузку.
|
||||
|
||||

|
||||
|
||||
#### Загрузка базы
|
||||
|
||||
Чтобы загрузить базу на новый сервер 1С:
|
||||
|
||||
1. Откройте **Конфигуратор** новой информационной базы.
|
||||
2. Перейдите в меню **Администрирование** → **Загрузить информационную базу**.
|
||||
3. Выберите файл, выгруженный из старой 1С.
|
||||
|
||||

|
||||
@@ -1,25 +1,28 @@
|
||||
---
|
||||
section_links:
|
||||
- title: Назначение сервиса
|
||||
link: /PaaS/PostgreSQL/about.md
|
||||
link: /PostgreSQL/about.md
|
||||
description: Конфигурации и возможности сервиса
|
||||
- title: Параметры кластера PostgreSQL
|
||||
link: /PaaS/PostgreSQL/cluster-parameter.md
|
||||
link: /PostgreSQL/cluster-parameter.md
|
||||
description: Технические параметры кластера PostgreSQL
|
||||
- title: Схема подключения
|
||||
link: /PaaS/PostgreSQL/connection.md
|
||||
link: /PostgreSQL/connection.md
|
||||
description: Общая схема подключения к Cloud PostgreSQL
|
||||
- title: Возможности пользователя
|
||||
link: /PaaS/PostgreSQL/user-capabilities.md
|
||||
link: /PostgreSQL/user-capabilities.md
|
||||
description: Возможности пользователя при создании сервиса
|
||||
- title: Веб-интерфейс Grafana
|
||||
link: /PaaS/PostgreSQL/grafana.md
|
||||
link: /PostgreSQL/grafana.md
|
||||
description: Инструкция по работе с Grafana
|
||||
- title: Веб-интерфейс PgAdmin
|
||||
link: /PaaS/PostgreSQL/pgadmin.md
|
||||
link: /PostgreSQL/pgadmin.md
|
||||
description: Инструкция по работе с PgAdmin
|
||||
---
|
||||
- title: 1C для PostgreSQL
|
||||
link: /PostgreSQL/PostgreSQL-1C.md
|
||||
description: Инструкция по работе с 1C при использовании PostgreSQL
|
||||
---
|
||||
|
||||
# Cloud PostgreSQL
|
||||
|
||||
В данном разделе представлена документация по управляемому сервису **Cloud PostgreSQL** платформы Beeline Cloud.
|
||||
В данном разделе представлена документация по управляемому сервису **Cloud PostgreSQL**, а также сервисами платформы Beeline Cloud, использующими его в своей работе.
|
||||
@@ -85,3 +85,4 @@ PostgreSQL - это современная система управления
|
||||
- хранение критичных данных с минимальным временем простоя при отказах инфраструктуры;
|
||||
- быстрое развёртывание PostgreSQL-кластера без необходимости ручной настройки репликации и failover;
|
||||
- администрирование баз данных через веб-интерфейс без прямого доступа к серверам кластера.
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
## Сетевой доступ к кластеру
|
||||
|
||||
Для организации защищенного подключения к кластеру Kafka доступны стандартные механизмы, используемые во всех сервисах платформы:
|
||||
- **IPsec-подключение** - организация защищенного туннеля между инфраструктурой и кластером PostgreSQL. Подробнее см. [раздел IPsec](../IPSEC.md);
|
||||
- **Interconnection** - прямое сетевое соединение между сервисами внутри платформы без выхода в интернет. Подробнее см. раздел Interconnection.
|
||||
- **IPsec-подключение** - организация защищенного туннеля между инфраструктурой и кластером PostgreSQL. Подробнее см. [раздел IPsec](../network/IPSEC.md);
|
||||
- **Interconnection** - прямое сетевое соединение между сервисами внутри платформы без выхода в интернет. Подробнее см. [раздел Interconnection](../network/interconnect.md).
|
||||
|
||||
Выбор конкретного способа подключения зависит от архитектуры приложений и требований к безопасности.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 51 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 43 KiB |
@@ -79,6 +79,21 @@ $<iterations>:<salt>$<storedkey>:<serverkey>
|
||||
|Создание новой базы данных | Для создания базы данных | ```CREATE DATABASE app_db;``` |
|
||||
|Создание базы данных с указанием владельца | Пользователь, указанный как владелец, будет иметь полный контроль над базой данных, включая права на её удаление и изменение. По умолчанию владельцем создаваемой базы данных является пользователь, который её создает | ```CREATE DATABASE app_db OWNER client;``` |
|
||||
|
||||
### Требования к паролям
|
||||
|
||||
**Длина пароля (рекомендуемая):**
|
||||
|
||||
- для учётной записи пользователя - не менее 12 знаков;
|
||||
- для учётных записей администраторов, технических и служебных учётных записей - не менее 16 знаков.
|
||||
|
||||
**Сложность пароля:** рекомендуется использовать уникальный пароль, содержащий символы как минимум трёх из четырёх указанных ниже групп (при отсутствии технических ограничений):
|
||||
|
||||
- буквы латинского алфавита в верхнем регистре (A-Z);
|
||||
- буквы латинского алфавита в нижнем регистре (a-z);
|
||||
- цифры (0-9);
|
||||
- специальные символы и знаки пунктуации (например, `!@#$%^&*(),.?`).
|
||||
|
||||
**Периодичность смены:** рекомендуемая периодичность смены пароля - не реже одного раза в год.
|
||||
|
||||
## Создание пользователей и ролей
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
section_links:
|
||||
- title: Обзор сервиса
|
||||
link: /Workspace/about.md
|
||||
description: Назначение, состав и возможности платформы
|
||||
- title: Описание технических параметров
|
||||
link: /Workspace/technical-parameters.md
|
||||
description: Варианты предоставления, способы доступа и интеграции
|
||||
- title: Подключение к сервису
|
||||
link: /Workspace/connection.md
|
||||
description: Порядок подключения и первый вход в платформу
|
||||
- title: Практические руководства
|
||||
link: /Workspace/how-to.md
|
||||
description: Примеры решения типовых задач
|
||||
- title: Квоты и лимиты
|
||||
link: /Workspace/quotas.md
|
||||
description: Лимиты вариантов предоставления Public и Premium
|
||||
---
|
||||
|
||||
# Cloud Workspace
|
||||
|
||||
В данном разделе представлена документация по сервису **Cloud Workspace** — платформе офисного пространства Beeline Cloud, объединяющей инструменты для общения, хранения данных и совместной работы.
|
||||
@@ -0,0 +1,81 @@
|
||||
# Cloud Workspace
|
||||
|
||||
## Назначение сервиса
|
||||
|
||||
**Cloud Workspace** — это облачная платформа офисного пространства, объединяющая инструменты и бизнес-приложения для общения, хранения данных и совместной работы.
|
||||
|
||||
Платформа позволяет организовать в «едином окне»:
|
||||
|
||||
- хранение данных и совместную работу с файлами и документами;
|
||||
- корпоративные коммуникации — почту, чаты, аудио- и видеозвонки;
|
||||
- управление проектами и задачами.
|
||||
|
||||
Сервис построен на базе решений с открытым исходным кодом и является отечественной альтернативой зарубежным офисным платформам.
|
||||
|
||||
**Cloud Workspace** относится к управляемым корпоративным сервисам Beeline Cloud: платформу разворачивает и сопровождает провайдер. В сервис включены резервное копирование и техническая поддержка в режиме 24/7.
|
||||
|
||||
## Состав платформы
|
||||
|
||||
В веб-интерфейсе платформы доступны следующие модули:
|
||||
|
||||
| Модуль | Назначение |
|
||||
| --------------- | --------------------------------------------------------------------------------------- |
|
||||
| **Виджеты** | Главная страница со сводкой: рекомендуемые файлы, упоминания в обсуждениях, карточки задач, приближающиеся события, почта |
|
||||
| **Файлы** | Хранение файлов и папок, настройка прав доступа, общий доступ по ссылке |
|
||||
| **Фото** | Просмотр изображений и видео в браузере |
|
||||
| **События** | Лента действий пользователей: изменения файлов и другие события на платформе |
|
||||
| **Конференции** | Корпоративные чаты, аудио- и видеозвонки, конференции с внешними участниками |
|
||||
| **Почта** | Почтовый клиент для работы с корпоративными ящиками |
|
||||
| **Контакты** | Адресные книги и группы контактов |
|
||||
| **Календарь** | Календари, события, приглашение участников |
|
||||
| **Пароли** | Корпоративный менеджер паролей |
|
||||
| **Карточки** | Kanban-доски для управления проектами и задачами |
|
||||
| **Формы** | Создание опросов и анкет, сбор и выгрузка ответов |
|
||||
|
||||
Помимо перечисленных модулей платформа поддерживает работу с заметками и ментальными картами (mindmap), просмотр документов PDF, EPUB и CBZ, а также распаковку архивов без скачивания.
|
||||
|
||||
## Возможности сервиса
|
||||
|
||||
**Cloud Workspace** предоставляет набор возможностей для организации совместной работы без самостоятельного администрирования платформы.
|
||||
|
||||
Сервис обеспечивает:
|
||||
|
||||
- безопасное хранение данных с настройкой прав доступа к ресурсам;
|
||||
- онлайн-редактирование документов, таблиц и презентаций в браузере;
|
||||
- одновременную работу нескольких пользователей с одним документом с поддержкой версионности;
|
||||
- публикацию файлов и папок по внешней ссылке с заданием пароля, срока действия и сообщения получателю;
|
||||
- корпоративные чаты, аудио- и видеовызовы, конференции с внешними участниками;
|
||||
- работу с почтой, календарём и контактами;
|
||||
- создание опросов и Kanban-досок;
|
||||
- централизованное хранение паролей;
|
||||
- интеграцию с Active Directory, Microsoft Outlook и Multifactor.
|
||||
|
||||
## Варианты предоставления
|
||||
|
||||
Сервис предоставляется в двух вариантах:
|
||||
|
||||
- **Public** — в отказоустойчивом публичном облаке Cloud Compute на общем пуле ресурсов;
|
||||
- **Premium** — на базе выделенного пула ресурсов с учётом потребностей заказчика; также доступны брендирование веб-интерфейса и дополнительные модули.
|
||||
|
||||
Подробные параметры вариантов предоставления и интеграции приведены в разделе [Описание технических параметров](./technical-parameters.md), лимиты — в разделе [Квоты и лимиты](./quotas.md).
|
||||
|
||||
## Безопасность
|
||||
|
||||
Безопасность сервиса обеспечивается следующими мерами:
|
||||
|
||||
- размещение в виртуальной инфраструктуре Beeline Cloud, аттестованной на соответствие требованиям 152-ФЗ по уровню защищённости УЗ-1;
|
||||
- многофакторная аутентификация при входе пользователей;
|
||||
- настройка уровня прав доступа к ресурсам;
|
||||
- выделенный VPN-канал для безопасного подключения (по запросу).
|
||||
|
||||
## Сценарии использования сервиса
|
||||
|
||||
**Cloud Workspace** подходит для организаций, которым требуется единая защищённая среда совместной работы.
|
||||
|
||||
Сервис может применяться в следующих сценариях:
|
||||
|
||||
- замещение зарубежных облачных офисных сервисов с хранением данных на территории РФ;
|
||||
- совместная работа распределённых команд с файлами и документами;
|
||||
- корпоративные коммуникации — почта, чаты и видеоконференции в одном интерфейсе;
|
||||
- обмен документами с внешними контрагентами по защищённым ссылкам;
|
||||
- управление проектами и задачами на Kanban-досках.
|
||||
@@ -0,0 +1,38 @@
|
||||
# Подключение к сервису
|
||||
|
||||
В данном разделе описан порядок подключения сервиса **Cloud Workspace** и первый вход в веб-интерфейс платформы.
|
||||
|
||||
## Порядок подключения
|
||||
|
||||
1. Оставьте заявку на подключение сервиса через менеджера Beeline Cloud или форму на [официальной странице сервиса](https://cloud.beeline.ru/cloud-services/cloud-workspace/).
|
||||
2. Согласуйте параметры предоставления: вариант размещения (**Public** или **Premium**), количество пользователей, необходимые интеграции и подключаемые сервисы.
|
||||
3. После развёртывания сервиса получите параметры доступа к платформе — адрес веб-интерфейса и учётные данные. Порядок их предоставления уточняйте у менеджера Beeline Cloud.
|
||||
|
||||
::: info Примечание
|
||||
Перед подключением сервиса можно заказать демонстрацию на официальной странице сервиса.
|
||||
:::
|
||||
|
||||
## Вход в веб-интерфейс
|
||||
|
||||
1. Откройте в браузере адрес портала, предоставленный при подключении сервиса.
|
||||
2. Введите логин и пароль учётной записи.
|
||||
3. Если для организации включена многофакторная аутентификация, подтвердите вход вторым фактором.
|
||||
|
||||
После входа открывается главная страница платформы — **Виджеты**. На ней отображается сводка по рабочему пространству: рекомендуемые файлы, упоминания в обсуждениях, карточки задач, приближающиеся события, важная и непрочитанная почта.
|
||||
|
||||
## Интерфейс платформы
|
||||
|
||||
В верхней панели расположены модули платформы: **Файлы**, **Фото**, **События**, **Конференции**, **Почта**, **Контакты**, **Календарь**, **Пароли**, **Карточки**, **Формы**.
|
||||
|
||||
В правой части верхней панели доступны:
|
||||
|
||||
- поиск по платформе;
|
||||
- уведомления;
|
||||
- список контактов;
|
||||
- меню профиля — настройки учётной записи.
|
||||
|
||||
Также на платформе можно настроить статус присутствия (например, «Невидимка»).
|
||||
|
||||
## Настольные и мобильные приложения
|
||||
|
||||
Помимо веб-интерфейса работа с сервисом возможна через настольное и мобильное приложения, Microsoft Outlook, а также по протоколу WebDAV. Порядок установки и настройки приложений уточняйте у менеджера Beeline Cloud.
|
||||
@@ -0,0 +1,75 @@
|
||||
# Практические руководства
|
||||
|
||||
В данном разделе приведены примеры решения типовых задач в **Cloud Workspace**.
|
||||
|
||||
::: info Примечание
|
||||
Названия элементов интерфейса могут отличаться в зависимости от версии платформы и набора подключённых модулей.
|
||||
:::
|
||||
|
||||
## Работа с файлами
|
||||
|
||||
### Загрузка файлов
|
||||
|
||||
1. Перейдите в модуль **Файлы**.
|
||||
2. Нажмите кнопку добавления файла и выберите загрузку либо перетащите файлы из файлового менеджера в окно браузера.
|
||||
3. Загруженные файлы появятся в текущей папке.
|
||||
|
||||
### Общий доступ к файлу или папке
|
||||
|
||||
1. В модуле **Файлы** откройте меню общего доступа напротив нужного файла или папки.
|
||||
2. Выберите способ предоставления доступа: пользователю или группе платформы либо по внешней ссылке.
|
||||
3. Для внешней ссылки задайте дополнительные параметры:
|
||||
- пароль для доступа;
|
||||
- срок действия ссылки;
|
||||
- сообщение получателю.
|
||||
4. Скопируйте ссылку и отправьте её получателю.
|
||||
|
||||
### Версии файлов
|
||||
|
||||
При совместной работе платформа сохраняет версии документов. Предыдущие версии файла можно просмотреть и восстановить из панели свойств файла.
|
||||
|
||||
## Совместное редактирование документов
|
||||
|
||||
1. В модуле **Файлы** создайте новый документ, таблицу или презентацию либо откройте существующий файл.
|
||||
2. Документ откроется в онлайн-редакторе в браузере.
|
||||
3. Предоставьте доступ к документу другим пользователям — несколько участников могут работать с документом одновременно.
|
||||
|
||||
## Конференции и чаты
|
||||
|
||||
1. Перейдите в модуль **Конференции**.
|
||||
2. Создайте новый разговор и добавьте участников.
|
||||
3. Для начала аудио- или видеозвонка нажмите кнопку начала звонка в открытом разговоре.
|
||||
4. Для проведения конференции с внешними участниками отправьте им ссылку на разговор.
|
||||
|
||||
## Календарь
|
||||
|
||||
1. Перейдите в модуль **Календарь**.
|
||||
2. Выберите дату и время события либо нажмите кнопку создания события.
|
||||
3. Укажите название события, при необходимости добавьте участников, описание и напоминание.
|
||||
4. Приглашённые участники получат уведомление о событии.
|
||||
|
||||
## Kanban-доски
|
||||
|
||||
1. Перейдите в модуль **Карточки**.
|
||||
2. Создайте доску и добавьте колонки, отражающие этапы работы (например, «К выполнению», «В работе», «Готово»).
|
||||
3. Создавайте в колонках карточки задач. Карточке можно назначить исполнителей, срок выполнения, метки и вложения.
|
||||
4. Перемещайте карточки между колонками по мере выполнения задач.
|
||||
|
||||
## Опросы и формы
|
||||
|
||||
1. Перейдите в модуль **Формы**.
|
||||
2. Создайте новую форму и добавьте вопросы. Поддерживаются различные типы вопросов: текстовый ответ, выбор одного или нескольких вариантов, выпадающий список, дата, время, шкала, загрузка файлов.
|
||||
3. Поделитесь ссылкой на форму с респондентами.
|
||||
4. Просматривайте поступающие ответы в интерфейсе формы. Результаты можно выгрузить в файл CSV.
|
||||
|
||||
## Менеджер паролей
|
||||
|
||||
1. Перейдите в модуль **Пароли**.
|
||||
2. Добавьте запись с учётными данными. Для организации записей используйте папки и теги.
|
||||
3. Для создания надёжных паролей используйте встроенный генератор паролей.
|
||||
|
||||
## Почта
|
||||
|
||||
1. Перейдите в модуль **Почта**.
|
||||
2. При первом входе добавьте почтовый ящик: в большинстве случаев достаточно указать адрес и пароль — настройки серверов определяются автоматически. При необходимости параметры IMAP/SMTP задаются вручную.
|
||||
3. После подключения ящика почта доступна в веб-интерфейсе платформы, а непрочитанные и важные письма отображаются в виджетах на главной странице.
|
||||
@@ -0,0 +1,12 @@
|
||||
# Квоты и лимиты
|
||||
|
||||
Данный раздел содержит квоты и лимиты сервиса **Cloud Workspace** для доступных вариантов предоставления.
|
||||
|
||||
| Параметр | Public | Premium |
|
||||
| ------------------------------------- | ---------- | ---------- |
|
||||
| Максимальное количество пользователей | 200 | 500 |
|
||||
| Срок хранения журналов (логов) | до 15 дней | до 30 дней |
|
||||
|
||||
::: info Примечание
|
||||
Для варианта **Premium** поддерживаются видеоконференции с числом участников до 50. Лимит числа участников для варианта **Public** уточняйте у менеджера Beeline Cloud.
|
||||
:::
|
||||
@@ -0,0 +1,70 @@
|
||||
# Описание технических параметров
|
||||
|
||||
Данный раздел содержит технические параметры сервиса **Cloud Workspace** и описание вариантов его предоставления.
|
||||
|
||||
Параметры предоставления (вариант размещения, количество пользователей, интеграции и подключаемые сервисы) согласуются с менеджером Beeline Cloud при заказе сервиса.
|
||||
|
||||
## Варианты предоставления
|
||||
|
||||
| Параметр | Public | Premium |
|
||||
| --------------------------------- | -------------------------------------------- | ------------------------ |
|
||||
| Размещение | Публичное облако Cloud Compute, общий пул ресурсов | Выделенный пул ресурсов |
|
||||
| Максимальное количество пользователей | 200 | 500 |
|
||||
| Срок хранения журналов (логов) | до 15 дней | до 30 дней |
|
||||
| Брендирование веб-интерфейса | — | да |
|
||||
| Дополнительные модули | — | по запросу |
|
||||
|
||||
::: info Примечание
|
||||
Для варианта **Premium** поддерживаются видеоконференции с числом участников до 50. Лимит числа участников для варианта **Public** уточняйте у менеджера Beeline Cloud.
|
||||
:::
|
||||
|
||||
## Способы доступа
|
||||
|
||||
Работа с сервисом возможна следующими способами:
|
||||
|
||||
- **веб-интерфейс** — работа со всеми модулями платформы через браузер;
|
||||
- **настольное приложение** — синхронизация файлов с компьютером;
|
||||
- **мобильное приложение** — доступ к платформе с мобильных устройств;
|
||||
- **Microsoft Outlook** — работа с почтой, календарём и контактами из Outlook;
|
||||
- **WebDAV** — подключение файлового хранилища как сетевого диска.
|
||||
|
||||
## Интеграции
|
||||
|
||||
Сервис поддерживает интеграцию с корпоративными системами:
|
||||
|
||||
- Active Directory;
|
||||
- Microsoft Outlook;
|
||||
- Multifactor.
|
||||
|
||||
При переходе на платформу доступна миграция данных из Google, OneDrive, GitHub и Wrike.
|
||||
|
||||
## Подключаемые сервисы
|
||||
|
||||
К платформе по запросу подключаются дополнительные сервисы:
|
||||
|
||||
- почтовый сервер;
|
||||
- VPN-туннель;
|
||||
- многофакторная аутентификация (Multifactor);
|
||||
- запись видеоконференций.
|
||||
|
||||
## Дополнительные опции
|
||||
|
||||
По запросу доступны дополнительные возможности:
|
||||
|
||||
- просмотр фотографий в формате RAW;
|
||||
- видеоконвертер;
|
||||
- работа с DICOM-файлами;
|
||||
- работа с планами смен.
|
||||
|
||||
## Безопасность
|
||||
|
||||
Безопасность сервиса обеспечивается следующими мерами:
|
||||
|
||||
- размещение в виртуальной инфраструктуре, аттестованной на соответствие требованиям 152-ФЗ по уровню защищённости УЗ-1;
|
||||
- многофакторная аутентификация при входе пользователей в систему;
|
||||
- настройка уровня прав доступа к ресурсам;
|
||||
- выделенный VPN-канал для безопасного подключения (по запросу).
|
||||
|
||||
## Резервное копирование и поддержка
|
||||
|
||||
В сервис включены резервное копирование и техническая поддержка в режиме 24/7.
|
||||
@@ -18,7 +18,7 @@ verified: true
|
||||
2. Перейдите на вкладку **Общие расходы**.
|
||||
3. В верхней части страницы задайте фильтры:
|
||||
- **Период**: задайте даты начала и окончания или выберите один из периодов на вкладке **Предустановленный**.
|
||||
- **Гранулярность** — выберите шаг агрегации данных на графиках:
|
||||
- **Детализация** — выберите шаг агрегации данных на графиках:
|
||||
- **Договоры / Проекты**: выберите один или несколько проектов.
|
||||
- **Сервис**: выберите один или несколько сервисов.
|
||||
|
||||
@@ -44,7 +44,7 @@ verified: true
|
||||
3. В верхней части страницы задайте фильтры:
|
||||
- **Сервис**: выберите один или несколько сервисов.
|
||||
- **Период**: задайте даты начала и окончания или выберите один из периодов на вкладке **Предустановленный**.
|
||||
- **Гранулярность** — выберите шаг агрегации данных на графиках.
|
||||
- **Детализация** — выберите шаг агрегации данных на графиках.
|
||||
- **Договоры / Проекты**: выберите один или несколько проектов.
|
||||
- **Инстансы**: выберите один или несколько инстансов.
|
||||
- **Ресурс**: выберите один или несколько ресурсов.
|
||||
@@ -89,7 +89,7 @@ verified: true
|
||||
3. В верхней части страницы задайте фильтры:
|
||||
- **Сервис**: выберите один или несколько сервисов.
|
||||
- **Период**: задайте даты начала и окончания или выберите один из периодов на вкладке **Предустановленный**.
|
||||
- **Гранулярность** — выберите шаг агрегации данных на графиках.
|
||||
- **Детализация** — выберите шаг агрегации данных на графиках.
|
||||
- **Договоры / Проекты**: выберите один или несколько проектов.
|
||||
- **Инстансы**: выберите один или несколько инстансов.
|
||||
- **Ресурс**: выберите один или несколько ресурсов.
|
||||
|
||||
+29
-3
@@ -29,12 +29,38 @@ services:
|
||||
description: Аренда виртуального дата-центра на базе VMware
|
||||
icon: cloud
|
||||
link: /vdc/index
|
||||
- title: Базы данных
|
||||
- title: Платформа данных
|
||||
articles:
|
||||
- title: PostgreSQL
|
||||
- title: Cloud PostgreSQL
|
||||
description: Объектно-реляционная СУБД с открытым кодом, обеспечивающая высокую надёжность и масштабируемость
|
||||
icon: database
|
||||
link: /PaaS/PostgreSQL/PostgreSQL-index.md
|
||||
link: /PostgreSQL/PostgreSQL-index
|
||||
- title: Apache Kafka
|
||||
description: Распределённая система для потоковой передачи данных в реальном времени
|
||||
icon: message
|
||||
link: /Apache-Kafka/Kafka-index
|
||||
- title: Сеть
|
||||
articles:
|
||||
- title: Cloud Interconnect
|
||||
description: Виртуальный канал, соединяющий вашу инфраструктуру с платформой на сетевом уровне
|
||||
icon: voice
|
||||
link: /network/interconnect.md
|
||||
- title: IPsec
|
||||
description: Защищённый туннель между инфраструктурой заказчика и кластерами платформы
|
||||
icon: voice
|
||||
link: /network/IPSEC.md
|
||||
- title: DevOps Инструменты
|
||||
articles:
|
||||
- title: Cloud Deckhouse Kubernetes
|
||||
description: Облачный сервис на базе платформы оркестрации контейнеров Kubernetes
|
||||
icon: server
|
||||
link: /Deckhouse/index
|
||||
- title: Совместная работа
|
||||
articles:
|
||||
- title: Cloud Workspace
|
||||
description: Платформа офисного пространства — инструменты для общения, хранения данных и совместной работы
|
||||
icon: group
|
||||
link: /Workspace/Workspace-index
|
||||
- title: Безопасность
|
||||
articles:
|
||||
- title: Cloud NGFW
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
# Cloud Interconnect (L2VPN)
|
||||
|
||||
## Назначение сервиса
|
||||
|
||||
**Cloud Interconnect (L2VPN)** — это сервис организации виртуального выделенного канала на втором уровне модели OSI (L2). Он обеспечивает двустороннюю передачу данных между ресурсами заказчика и инфраструктурой Beeline Cloud, объединяя их на сетевом уровне L2.
|
||||
|
||||
**Основные задачи сервиса:**
|
||||
|
||||
- объединение пулов ресурсов (IaaS) внутри одного или между разными ЦОД Beeline Cloud;
|
||||
- подключение облачной инфраструктуры (IaaS) к сервису резервного копирования Beeline Cloud;
|
||||
- связывание облачных сервисов Beeline Cloud с физическим оборудованием клиента в ЦОД Beeline Cloud (услуга Collocation);
|
||||
- создание единого сетевого контура между облаком Beeline Cloud и собственной инфраструктурой заказчика.
|
||||
|
||||
## Ключевые параметры при заказе
|
||||
|
||||
При оформлении услуги в бланке заказа указываются следующие параметры:
|
||||
|
||||
| Параметр | Описание |
|
||||
|----------------------------|----------------------------------------------------------------------------|
|
||||
| **Точки предоставления** | Места подключения каналов |
|
||||
| **Пропускная способность** | От 100 Мбит/с до 2 Гбит/с. Более высокие значения согласовываются отдельно |
|
||||
|
||||
## Обеспечение надежности
|
||||
|
||||
Beeline Cloud строит сеть по принципам высокой доступности. Это обеспечивает стабильность канала за счет следующих механизмов:
|
||||
|
||||
- **Кольцевая топология** — между любыми двумя узлами сети существуют минимум два независимых маршрута;
|
||||
- **Автоматическое резервирование (STP)** — при отказе основного соединения трафик переключается на резервное в течение 5–15 секунд;
|
||||
- **Горячее резервирование оборудования** — ключевые компоненты сети (коммутаторы, блоки питания) задублированы;
|
||||
- **Быстрое восстановление** — сеть стабилизируется после сбоя в течение 1 минуты.
|
||||
|
||||
## Тарификация и сроки
|
||||
|
||||
##### Структура платежей:
|
||||
|
||||
| Тип платежа | Описание |
|
||||
|----------------|----------------------------|
|
||||
| Единовременный | Оплата подключения сервиса |
|
||||
| Ежемесячный | Аренда канала |
|
||||
|
||||
##### Точка разграничения ответственности:
|
||||
|
||||
Сервис передается заказчику на сетевом порту оборудования Beeline Cloud.
|
||||
|
||||
##### Срок действия
|
||||
|
||||
Сервис предоставляется на **1 год** (или иной срок, указанный в бланке заказа) с автоматической пролонгацией. Для отказа от продления необходимо уведомить провайдера за 30 календарных дней до окончания текущего срока.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
section_links:
|
||||
- title: Cloud Interconnect
|
||||
link: /network/interconnect.md
|
||||
description: Обзор сервиса Cloud Interconnect
|
||||
- title: IPsec
|
||||
link: /network/IPSEC.md
|
||||
description: Возможности сервиса IPsec
|
||||
---
|
||||
|
||||
# Сетевое взаимодействие
|
||||
|
||||
В данном разделе представлена документация по организации сетевого взаимодействия между инфраструктурой заказчика и кластерами платформы Beeline Cloud, включая защищённые туннели и виртуальные каналы связи.
|
||||
+8
-10
@@ -8,16 +8,14 @@
|
||||
|
||||
## Центры обработки данных
|
||||
|
||||
Инфраструктура Beeline Cloud размещена в надежных дата-центрах уровней Tier II и III.
|
||||
Инфраструктура Beeline Cloud размещена в надежных дата-центрах уровня Tier III.
|
||||
|
||||
| Город | Дата-центр | Адрес дата-центра | Tier |
|
||||
| ----------- | ----------------------------------------------------- | ------------------------------------------------- | ---- |
|
||||
| Москва | [Останкино](https://dc.ostankino.ru/) | РФ, г. Москва, 1-я Останкинская ул., д. 1, стр. 1 | III |
|
||||
| Москва | [Oxygen](https://o2dc.ru/) | РФ, г. Москва, Волгоградский пр., д. 42, к. 9 | III |
|
||||
| Москва | [Филанко](https://datahouse.ru/datacenter/nagornaya/) | РФ, г. Москва, Электролитный пр-д, д. 3, стр. 47 | II |
|
||||
| Ярославль | ЯТЦ Модуль 3 | РФ, г. Ярославль, ул. Технопарковая, д. 5 | III |
|
||||
| Ярославль | ЯТЦ Модуль 5 | РФ, г. Ярославль, ул. Технопарковая, д. 5 | III |
|
||||
| Ярославль | ЯТЦ Модуль 6 | РФ, г. Ярославль, ул. Технопарковая, д. 5 | III |
|
||||
| Новосибирск | РТК-ЦОД | РФ, г. Новосибирск, ул. Менделеева, д. 1 | III |
|
||||
| Город | Дата-центр | Адрес дата-центра | Tier |
|
||||
| ----------- | ------------------------------------- | ------------------------------------------------- | ---- |
|
||||
| Москва | [Останкино](https://dc.ostankino.ru/) | РФ, г. Москва, 1-я Останкинская ул., д. 1, стр. 1 | III |
|
||||
| Москва | [Oxygen](https://o2dc.ru/) | РФ, г. Москва, Волгоградский пр., д. 42, к. 9 | III |
|
||||
| Москва | ДЦ2 Линкс | РФ, г. Москва, 8 Марта, д. 14, стр. 3 | III |
|
||||
| Ярославль | ЯТЦ Модуль 3 | РФ, г. Ярославль, ул. Технопарковая, д. 5 | III |
|
||||
| Новосибирск | РТК-ЦОД | РФ, г. Новосибирск, ул. Менделеева, д. 1 | III |
|
||||
|
||||
- **ЯТЦ** — Ярославский технический центр.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -6,9 +6,6 @@ section_links:
|
||||
- title: Подключиться к виртуальному дата-центру
|
||||
link: /vdc/vdc-getting-started.md
|
||||
description: Подключение 2FA, подключение к дата-центру и создание виртуальной машины
|
||||
- title: Виртуальные дата-центры
|
||||
link: /vdc/vdc-how-to/vdc-index.md
|
||||
description: Создание виртуального дата-цента, вход с двухфакторной аутентификацией
|
||||
- title: Виртуальные машины
|
||||
link: /vdc/vdc-how-to/vm/vm-index.md
|
||||
description: Управление виртуальными машинами в дата-центре с помощью Cloud Director
|
||||
|
||||
Reference in New Issue
Block a user