Ceph: Некоторые замечания по созданию/аутентификации/управлению авторизацией пользователей Ceph
Ceph: Некоторые замечания по созданию/аутентификации/управлению авторизацией пользователей Ceph

1 написано впереди


  • Подготовьтесь к экзаменам, организуйте Ceph 相关примечания
  • Сообщение в блоге охватывает: Ceph пользовательуправлять,Сертификацияуправлять,Разрешенияуправлять и связанные с этим Demo
  • Если вы недостаточно понимаете, пожалуйста, помогите мне исправить это.

У каждого есть только одна истинная ответственность: найти себя. Затем придерживайтесь этого в своем сердце до конца своей жизни, всем сердцем и никогда не останавливайтесь. Все остальные дороги несовершенны, человеческий побег, трусливый возврат к народным идеалам, дрейф и внутренний страх - Герман Гессе, "Демиан"


Часть 1 управляет аутентификацией и авторизацией пользователей Ceph.

2 краткое введение

Аутентификация пользователя

Ceph использовать cephx кластер пар протоколовклиент、должен использовать программный демонобщение между Авторизовать。протокол cephxна основеобщий ключ

существовать Ceph Процесс установки включается по умолчанию cephx,Поэтому кластер должен иметь всеклиентотвечатьиспользовать Программа продолжаетсяАутентификация пользователяиАвторизовать,Аккаунты Cephisпользоватьпользователь служат нескольким целям:

  1. использовать于 Ceph 守护进程之间извнутренняя связь,Ceph daemonuse Имя учетной записи демон-процесс, связанный с ним osd.1 или mgr.serverc Соответствует и существует процесс установки. Вот некоторые Demo
Язык кода:javascript
копировать
[root@serverc ~]# ceph auth  ls
osd.0
        key: AQAG9ZpkY8o4MBAArdipzo8A9Yg3dy/fTcV7Yw==
        caps: [mgr] allow profile osd
        caps: [mon] allow profile osd
        caps: [osd] allow *
osd.1
        key: AQAG9ZpkX0/EOhAALauZTeHY/ojBuMGdspJh4A==
        caps: [mgr] allow profile osd
        caps: [mon] allow profile osd
        caps: [osd] allow *
......
mgr.serverd.nlmuvp
        key: AQAx9Zpk1DpCDRAAaGWCs3xKEXWkqemXGI7HAw==
        caps: [mds] allow *
        caps: [mon] profile mgr
        caps: [osd] allow *
mgr.servere.muoasq
        key: AQA89Zpki0tIABAAMUGi7GitoTqjYBtTUPmaWw==
        caps: [mds] allow *
        caps: [mon] profile mgr
        caps: [osd] allow *
..........    
  1. дляпроходить librados Клиенты, обращающиеся к кластеру из библиотеки, должны использовать такие программы, как rbd,radosgw-admin клиентждать,использовать librados изклиентотвечатьиспользовать Программный офисиспользоватьизсчетиметьclient.префикс имени。дляCephобъектшлюз,Монтажная встречасоздавать Профессионалиспользоватьизclient.rgw.hostnameпользовательномер счета,существовать librados Разработчики кастомизированного программного обеспечения должны иметь выделенную учетную запись с соответствующим функционалом.
Язык кода:javascript
копировать
client.rgw.realm.zone.serverc.bdiyfs
        key: AQBj9ZpkCDimLRAAnr2HTGH2wUFUsLfeag8lew==
        caps: [mgr] allow rw
        caps: [mon] allow *
        caps: [osd] allow rwx tag rgw *=*
client.rgw.realm.zone.serverd.gwezgs
        key: AQBn9Zpkajo3GxAAA8epFoWVLVlNAiuAaUqFgg==
        caps: [mgr] allow rw
        caps: [mon] allow *
        caps: [osd] allow rwx tag rgw *=*
  1. для кластерауправлятьчлен счет,управлятьчленсчетимя也иметьclient.префикс。существоватьбегатьceph、radosждать Заказчасиспользовать,Установщиксоздаватьсуперпользовательсчетclient.admin,иметьпозволятьсчет Доступ ко всему контентуи Исправлять集群Конфигурацияиз Функция。Ceph использовать client.admin Accountuse не подходит для запуска команд управления, если только --name или --id Опция явно указывает имя пользователя
Язык кода:javascript
копировать
client.admin
        key: AQCv9Jpk9A0+GhAA5s66DQyZqVWHf3f3UioMMA==
        caps: [mds] allow *
        caps: [mgr] allow *
        caps: [mon] allow *
        caps: [osd] allow *

Можно установитьCEPH_ARGSпеременные среды для определения таких вещей, какИмя кластераилипользовательIDждать参数

Язык кода:javascript
копировать
[ceph: root@node /]# export CEPH_ARGS="--id cephuser" 

Cephобъектшлюз有自己изпользовательданные库来СертификацияAmazon S3иSwiftпользователь,ноиспользоватьclient.rgw.hostname Учетная запись, используемая для доступа к кластеру

Настроить авторизацию пользователя

создаватьновыйпользовательсчетчас,Предоставленный кластер Разрешения,Авторизация кластерной задачи пользователя,cephx Разрешения в называются способность,Можетпроходить Тип демона(mon、osd、mgrилиmds)предоставить им。

использоватьспособность来根据отвечатьиспользоватьфлаг программыпределилипоставлятьверноПул, пространство имен пулаили一组池серединаизданныеиздоступ。способность还позволять集群серединаизПроцессы-демоны взаимодействуют друг с другом

Часть 2 Управление пользователями

Необходимо проверить существующего пользователя,использовать ceph auth listЗаказ,или ВОЗ ceph auth ls

Язык кода:javascript
копировать
[ceph: root@node /]# ceph auth list 
... output omitted ... 
osd.0 
key: AQBW6Tha5z6OIhAAMQ7nY/4MogYecxKqQxX1sA== 
caps : [mgr] allow profile osd
caps: [mon] allow profile osd 
caps: [osd] allow * 
client.admin 
key: AQCi6Dhajw7pIRAA/ECkwyipx2/raLWjgbklyA== 
caps: [mds] allow * 
caps: [mgr] allow * 
caps: [mon] allow * 
caps: [osd] allow * 
. . . output omitted ... 

Чтобы получить подробную информацию о конкретной учетной записи,использоватьceph auth getЗаказ:

Язык кода:javascript
копировать
[ceph: root@node /]# ceph auth get client.admin 
exported keyring for client.admin 
[client . ad min] 
key = AQCi6Dhajw7pIRAA/ECkwyipx2/raLWj gbklyA== 
caps mds = "allow *" 
caps mgr = "allow *" 
caps mon = "allow *" 
caps osd = "allow *" 

Ключ можно распечатать:

Язык кода:javascript
копировать
[ceph: root@node /]# ceph auth print-key client.adrnin 
AQCi6Dhajw7pIRAA/ECkwyipx2/raLWjgbklyA== 

Необходимо экспортировать и импортировать учетную запись пользователя.,использоватьceph auth exportиceph auth importЗаказ

Язык кода:javascript
копировать
[ceph: root@node /]# ceph auth \
 export client.operator1 > ~/operatorl.export 
[ceph: root@node /]# ceph auth \
 import -i ~/operator1.export 

3 Создание пользователя

ceph auth get-or-create Заказсоздавать一个новыйпользовательсчети生成它изключ,Должен Заказ默认将Долженключраспечатать наstdout,Поэтому обычно добавляют-oвозможность сохранить стандартный вывод включкольцодокументсередина。

Создано с доступом для чтения и записи ко всем пулам. app1 учетную запись пользователя и сохраните связку ключей /etc/ceph/ceph.client.app1.keyring

Язык кода:javascript
копировать
[ceph: root@node /]# ceph auth \
 get-or-create client.app1 \
 mon 'allow r' \
 osd 'allow rw' \
 -o /etc/ceph/ceph.client.app1.keyring

Создайте пользователя Ceph liruilong, который может читать и записывать объекты в пространстве имен prod в пуле хранения demo_pool.

Язык кода:javascript
копировать
[root@serverc ~]# ceph auth get-or-create client.liruilong1 \
   mon 'allow r '  \
   osd 'allow rw pool=demo_pool namespace=prod' \
   -o /etc/ceph/ceph.client.liruilong1.keyring
[root@serverc ~]# ceph auth  get client.liruilong1
[client.liruilong1]
        key = AQBs/5pkMyVkLRAAM/IWCQf+9ThFjHzjMpOBBg==
        caps mon = "allow r "
        caps osd = "allow rw pool=demo_pool namespace=prod"
exported keyring for client.liruilong1
[root@serverc ~]#

создавать Ceph пользователь liruilong, ceph-pool Пул хранения данных выполняет чтение, запись и выполнение расширенных классов объектов.

Язык кода:javascript
копировать
[root@serverc ~]# ceph auth get-or-create client.liruilong \
   mon 'allow profile osd'  \
   osd 'allow rwx pool=ceph-pool' \ 
   -o /etc/ceph/ceph.client.liruilong.keyring

Требуется аутентификациябрелок для ключейдокумент,Поэтому это должно бытьдокументкопироватьприезжатьиспользовать此новыйпользовательсчет操作из所有клиентсистема

4 Аутентификация пользователя

Файл для ключей

Для аутентификации клиент настраивает Ceph пользовательимяиодин содержитпользовательБезопасностьключизключкольцодокумент,Cephсуществоватьсоздаватькаждыйпользовательсчетчас为其生成брелок для ключейдокумент,но,Это должно бытьдокументкопироватьприезжатьнуждаться它изкаждый客户机системаилиотвечатьиспользоватьпрограммный сервер

На этих клиентских системах существуют librados использовать来自 /etc/ceph/ceph.conf параметры брелока. Конф Конфигурациядокументпозиционироватьключкольцодокумент。Значение по умолчанию:/etc/ceph/cluster.name.keyring Брелок для ключей.

Например,дляclient.openstackсчет,ключкольцодокумент/etc/ceph/ceph.client.openstack.keyring брелок для ключей

ключкольцодокумент以纯文本из形式хранилищеключ,вернодокумент进行相отвечатьиз Linux документ Разрешения Защищать,разрешено только Linux Предоставить доступ пользователю, требуется только существование Ceph пользовательизбрелок для ключейдокументАутентификацияизсистема上部署它

Язык кода:javascript
копировать
[root@serverc ceph]# ll
общийиспользовать量 36
-rw-------. 1 root root  63 Июнь  27 10:39 ceph.client.admin.keyring
-rw-r--r--. 1 root root  68 Июнь  27 11:25 ceph.client.liruilong1.keyring
-rw-r--r--. 1 root root  67 Июнь  27 11:22 ceph.client.liruilong.keyring
-rw-r--r--. 1 root root 177 Июнь  27 10:39 ceph.conf
-rw-r--r--. 1 root root 595 Июнь  27 10:40 ceph.pub
-rw-------. 1 root root 153 Июнь  27 10:40 podman-auth.json
-rw-r--r--. 1 root root  92 Август  18 2021 rbdmap
[root@serverc ceph]#

транспортный ключ

cephx протокол不以纯文本из形式传输общий ключ,Напротив,клиент из Monitor 请求一个会话ключ,Monitor использовать Общий ключ клиента шифрует сеансовый ключ и отправляет его клиенту. При этом клиент расшифровывает сеансовый ключ и возвращает его из Monitor Запросите билет для аутентификации демона кластера. Это похоже на Kerberos протокол,cephx Файл брелока выглядит так Kerberos keytabдокумент

существовать Kerberos , есть три основных компонента: сервер аутентификации (AS), сервер выдачи билетов (TGS) и клиент. Когда пользователю необходимо получить доступ к защищенному ресурсу, он сначала AS Отправить запрос, АС Подтвердите личность пользователя, затем сгенерируйте билет и отправьте его по адресу TGS。TGS Еще раз проверьте личность пользователя и сгенерируйте для пользователя билет, который можно использовать для доступа к определенным ресурсам. Наконец, Т.Г.С. Отправьте билет клиенту, клиентиспользовать его для доступа к необходимой услуге.

Конфигурация Аутентификация пользователя

использовать инструмент командной строки,нравитьсяceph、radosиrbd,управлятьчлен Можетиспользовать --id и --keyring спецификация опциипользовательсчетиключкольцодокумент。нравиться果没有指定,командовать как client.admin Аутентификация

существовать本例середина,ceph командовать как client.operator3Аутентификациясписок Можетиспользоватьиз池

Язык кода:javascript
копировать
[root@serverc ceph]# ceph --id app1 osd lspools
1 device_health_metrics
2 .rgw.root
3 default.rgw.log
4 default.rgw.control
5 default.rgw.meta
6 ceph-pool
[root@serverc ceph]#

существоватьиспользовать--id Нет необходимости использовать, когда client. префикс,--id Будет автоматическииспользовать client. префикс,ииспользовать--nameизчас候就нуждатьсяиспользовать client. префикс

нравиться果将ключкольцодокументхранилищесуществоватьместоположение по умолчанию,тогда нет необходимости--keyringПараметры。cephadm shell автоматически из/etc/ceph/Монтирование каталогаключкольцо,Если не существует, местоположение по умолчанию,Необходимо отобразить указанное

5Изменить разрешения пользователя

использовать ceph auth caps Команда для изменения учетной записи пользователя способности (Разрешения), этот пример изменен osd на appuser account функция, разрешена только для myapp Пул для доступа на чтение и запись:

Язык кода:javascript
копировать
[ceph: root@node /]# ceph auth \
 caps client.app1 \
 mon 'allow r' \
 osd 'allow rw pool=myapp' 
updated caps for client.app1 

ceph auth caps Заказкрышкасуществующийспособность,использовать, когда команда,Должен быть указан для всех демоновПолная коллекция способностей,И не только те, которые нужно изменить.

Пустая строка может быть определена для удаления всех функций.

Язык кода:javascript
копировать
[ceph: root@node /]# ceph auth caps client.app1 osd '' 
updated caps for client.app1 

Возможности Cephx (разрешения)

существовать cephx середина,Для каждого типа демона,Доступно несколько способностей: вот способности,То естьРазрешения,также делайФункция

  • Р, предоставить доступ на чтение,каждыйпользовательсчетПо меньшей мереотвечать Долженверно监视器(mon)иметь读доступ Разрешения,для того, чтобы иметь возможность ПоискCRUSH map
  • W, предоставьте доступ на запись,клиентнуждатьсядоступ для записи来хранилищеи Исправлять osd наобъект. для manager (MGRs),w Предоставьте разрешение на включение или отключение модуля
  • X,продление срока действия грантаобъект类из Авторизовать,Это позволяет клиенту выполнять дополнительные операции над объектом.,比нравитьсяиспользоватьrados lock getилиlistсписокRBDизображение.class-readиclass-write даxиз子集,ты обычносуществовать RBD 池серединаиспользоватьони
  • *Предоставить полный доступ

создавать了 formyappl пользовательсчет,И дает возможность извлекать объект из любого хранилища пула и:

Язык кода:javascript
копировать
[ceph: root@node /]# ceph auth \
 get-or-create client.formyappl \
 mon 'allow r' \
 osd 'allow rw'

Использование файлов конфигурации для настройки возможностей

Cephx поставлять 预定义из Функция Конфигурациядокумент,существоватьсоздаватьпользовательсчетчас,выгодаиспользовать Конфигурациядокументупрощатьпользовательдоступ Разрешенияиз Конфигурация

Этот пример проходит profile rbd определить новые forrbd пользовательномер счетаиздоступ Разрешения,клиентотвечатьиспользовать程序Можетиспользовать Долженсчетиспользовать Блочное устройство RADOSверно Хранилище Ceph для блочного доступа

Язык кода:javascript
копировать
[ceph: root@node /]# ceph auth \
 get-or-create client.forrbd \
 mon 'profile rbd' \
 osd 'profile rbd'

rbd-read-only Конфигурациядокументиз工作方式相同,Но предоставьте доступ только для чтения,Ceph использует другие существующие конфигурации для внутренней связи между демонами,Невозможно создать собственный документ конфигурации.,Cephсуществовать определяет их внутренне

Язык кода:javascript
копировать
profile rbd-read-only

В следующей таблице перечислены разрешения Ceph при установке по умолчанию.

способность

описывать

allow

предоставить разрешение

r

даритьпользователь读доступ Разрешения,Нужен монитор для карты SearchCRUSH

w

даритьпользовательвернообъектиздоступ для записиверно

x

пользователи use могут вызывать методы класса use (т. е. читать и писать) и выполнять операции аутентификации на мониторе существования.

class-read

способность, назначенная пользователю использовать метод чтения класса,подмножество x

class-write

Дайте пользователю использовать метод записи класса,подмножество x

*

Чтение, запись и выполнение Разрешения для пользователяпо предоставлению конкретного демона или пула.,и способность, выполняющая команду управлять

profile osd

Позволяет пользователю подключаться в качестве OSD к другим мониторам OSD или,Предоставлено OSDРазрешения,Позволяет OSD обрабатывать пульсовый трафик и отчеты о состоянии.

profile bootstrap-osd

Разрешить пользователю загружать экранное меню,Таким образом, пользователь существуть сможет добавлять ключ при загрузке OSD.

profile rbd

позволятьпользовательверноCephблокировать устройство для чтениядоступ для записи

profile rbd-read-only

Доступ только для чтения к блочным устройствам Ceph для пользователя обеспечивает Разрешения

6 разрешений для ограничения доступа

пределпользователь OSD Разрешения, использовать пользователи могут получить доступ только к тем пулам, которые им нужны, то есть они могут использовать различные способы ограничения доступа к пулам и другим связанным объектам, аналогично белый списокТакой же。

Лимит пула

Создатель имел пользователя formyapp2, а предел имел доступ к пулу myapp.

Язык кода:javascript
копировать
[ceph: root@node /]# ceph auth \
 get-or-create client.formyapp2 \
 mon 'allow r' \
 osd 'allow rw pool=myapp'

нравиться果существовать Конфигурация Функциячас没有指定池,Затем Ceph установит их во все существующие пулы.,Механизм cephx может обеспечить доступ к объекту другими способами:

Ограничения префикса имени объекта

проходитьпрефикс имени объекта,Следующий пример ограничивает доступ к любому пулу, имя которого начинается с pref объекта.

Язык кода:javascript
копировать
[ceph: root@node /]# ceph auth \
 get-or-create client.formyapp3 \
 mon 'allow r' \
 osd 'allow rw object_prefix pref'

ограничения пространства имен

проходитьnamespace,Реализуйте пространство имен для логической группировки объектов в пуле.,然后Может将пользовательсчетпределпринадлежать к определенномуnamespaceизобъект:

Язык кода:javascript
копировать
[ceph: root@node /)# ceph auth \
 get-or-create client.designer \
 mon 'allow r' \
 osd 'allow rw namespace=photos'

ограничения пути

проходитьпуть,Система документов Ceph (cephs) использует этот метод для доступа к определенным каталогам.,В следующем примере создается новая учетная запись пользователя веб-дизайнера.,Он может получить доступ только к каталогу /webcontent и его содержимому:

Язык кода:javascript
копировать
[ceph: root@node /]# ceph \
 fs authorize WEBFS \
 client.webdesigner \
  /webcontent rw 
[ceph: root@node /]# ceph auth get client.webdesigner 
exported keyring for client .webdesigner 
[client.webdesigner] 
key = AQBrVE9aNwoEGRAApYR6m71ECRzUlLpp4wEJkw== 
caps mds = "allow rw path=/webcontent" 
caps mon = "allow r" 
caps osd = "allow rw pool=cephfs_data"

Пределы команд

проходить command команда, этот метод будет управлять членом предела определенного списка команд, создающего operator1пользовательсчетипредел其доступ两个Заказиз示Например Вниз:

Язык кода:javascript
копировать
[ceph: root@node /]# ceph auth \
 get-or-create client.operator1 \
 mon 'allow r, allow command "auth get-or-create", allow command "auth list" '

7Удалить учетную запись пользователя

ceph auth del Командаиспользовать для удаления учетной записи пользователя

Язык кода:javascript
копировать
[ceph: root@node /]# ceph auth del client.app1
updated

Соответствующие файлы ключей можно затем удалить.

Part3Demo

Язык кода:javascript
копировать
# существовать Ceph Два новых клиента-создателя в кластере соответственно были получены в редакторе и названы replpool1 Ресурсы документации в разделе
cephadm shell -- ceph auth get-or-create client.docedit mon 'allow r' osd 'allow rw pool=replpool1 namespace=docs' | tee /etc/ceph/ceph.client.docedit.keyring

cephadm shell -- ceph auth get-or-create client.docget mon 'allow r' osd 'allow r pool=replpool1 namespace=docs' | tee /etc/ceph/ceph.client.docget.keyring

# список Ceph Ключ аутентификации и поиск с помощью client.docedit и client.docget Соответствующий ключ
cephadm shell -- ceph auth ls | egrep -A3 'docedit|docget'

# Синхронизировать ключевой документ клиента с другим сервером
rsync -v /etc/ceph/ceph.client.doc*.keyring serverd:/etc/ceph/

# существуют смонтируйте ключевой документ клиента на другом сервере и выполните операцию использоватьклиент
cephadm shell --mount /etc/ceph:/etc/ceph

# использовать client.docedit клиентсуществовать replpool1.docs Запись данных в пространство имен
rados --id docedit -p replpool1 -N docs put adoc /etc/hosts

# использовать client.docget клиент从 replpool1.docs Чтение данных из пространства имен
rados --id docget -p replpool1 -N docs get adoc /tmp/test

# Сравните два набора данныхдокумент
diff /etc/hosts /tmp/test

# использовать несанкционированный client.docget клиент пытается записать данные и вызывает ошибку
rados --id docget -p replpool1 -N docs put mywritetest /etc/hosts || echo ERROR

# Обновите авторизацию клиента и client.docget Предоставлено replpool1.docs и docarchive Пул для операций чтения и записи
ceph auth caps client.docget mon 'allow r' osd 'allow rw pool=replpool1 namespace=docs, allow rw pool=docarchive'

# использовать разрешено client.docget клиентсуществовать replpool1.docs Запись данных в пространство имен
rados --id docget -p replpool1 -N docs put mywritetest /etc/hosts

# Удалить запись о сертификации ключевых документов клиента
rm /etc/ceph/ceph.client.doc*.keyring
ssh serverd rm /etc/ceph/ceph.client.doc*.keyring
cephadm shell -- ceph auth del client.docedit
cephadm shell -- ceph auth del client.docget

8 Ссылки на часть сообщения в блоге

© Авторские права на ссылки в этой статье принадлежат оригинальному автору. Если есть какие-либо нарушения, пожалуйста, сообщите нам. Это проект с открытым исходным кодом. Если вы его одобряете, не скупитесь на звезды :)


https://docs.ceph.com/en/pacific/architecture/

https://github.com/ceph/ceph

https://docs.ceph.com

Примечания для инструктора CL260

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose