LINUX.ORG.RU

Сообщения ProphSerg

 

Как настроить Ceph

Всем привет!

Хочу сделать себе кластер Ceph. Схема примерно такая:

  1. Будет 2 хоста. Пока только 1, второй появится позже.
  2. На первом хосте 3 диска, соответственно 3 OSD. 2х500Гб и 1х8Тб.
  3. На 2ом хосте диски могут быть другими, по количеству и размеру, но общий объем такой же (примерно).
  4. Уровень репликации 2.

«Хотелки»:

  1. Что бы работало, пока, с одним хостом. И при появлении 2го хоста запустилась реплика.
  2. Репликация была на уровне хостов.

Вопрос. Какие значения выставить для параметров:

# Главный вопрос
osd_pool_default_size = XX
osd_pool_default_min_size = XX
osd_crush_chooseleaf_type = XX

# Дополнительно
# Менять значение этих параметров или оставить по-умолчанию?
osd_pool_default_pg_num = XX
osd_pool_default_pgp_num = XX

# И журнал. Данные на HDD, а журнал на SSD
osd_journal_size = 10240

 

ProphSerg
()

CloudFlare + Treafik. Настройка HTTPS

Добрый день!

Дано

  1. Мой сервер внутри ДМЗ на котором в Докере крутятся различные сервисы.
  2. Учетка на CloudFlare, бесплатный :) тариф. Поддержка моей зоны ДНС (пусть будет mdomain.ru) + Универсальный сертификат на mdomain.ru и *.mdomain.ru. Туннель в ДМЗ. Настройка SSL/TLS encryption mode is Full (strict)

Надо

Настроить traefik чтобы заходя по какому-то доменому имени попадал на запущенный в докере сервис. И что бы все это было по HTTPS с сертификатом CF.

Настройка

Cloudflare tunnel

Туннель запущен в докере, имеет доступ к контейнеру traefik’а. Настроен редирект: traefik.mdomain.ru -> https://traefik

Traefik

docker-traefik.yml

version: "3.9"

networks:
  traefik_net:
    external: true
  private_cf1:
    external: true

secrets:
  mdomain.ru.pem:
    file: ./traefik/mdomain.ru.pem
  mdomain.ru.key:
    file: ./traefik/mdomain.ru.key

services:
  traefik:
    image: traefik:v2.10
    ports:
      - target: 80
        published: 80
        protocol: tcp
      - target: 443
        published: 443
        protocol: tcp
    environment:
      - TZ=$TZ
      - CF_API_EMAIL=*********
      - CF_API_KEY=********
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik/traefik.yml:/etc/traefik/traefik.yml
      - ./traefik/dynamic:/etc/traefik/dynamic
      - ./traefik/acme.json:/etc/traefik/acme.json
    secrets:
      - mdomain.ru.pem
      - mdomain.ru.key
    networks:
      - traefik_net
      - private_cf1:
    deploy:
      mode: global
      placement:
        constraints:
          - node.role == manager
      restart_policy:
        condition: any
      labels:
        - "traefik.http.routers.api.entrypoins=https"
        - "traefik.http.routers.api.rule=Host(`traefik.mdomain.ru`)"
        - "traefik.http.routers.api.service=api@internal"
        - "traefik.http.routers.api.tls=true"
        # - "traefik.http.routers.api.middlewares=traefik_auth@file"
        # Dummy service for Swarm port detection. The port can be any valid integer value.
        - "traefik.http.services.dummy-svc.loadbalancer.server.port=9999"
        - "traefik.http.services.dummy-svc.loadbalancer.server.scheme=http"

traefik.yml

log:
  level: debug
accessLog: {}

api:
  dashboard: true

providers:
  docker:
    swarmMode: true
    network: traefik_net
    exposedByDefault: false

  file:
    directory: /etc/traefik/dynamic
    watch: true

entryPoints:
  http:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: https
          scheme: https
          permanent: false

  https:
    address: ":443"

tls:
  stores:
    default:
      defaultCertificate:
        certFile: /run/secrets/mdomain.ru.pem
        keyFile: /run/secrets/mdomain.ru.key
      defaultGeneratedCert:
        resolver: cfresolver
        domain:
          main: "mdomain.ru"
          sans:
            - "*.mdomain.ru"

certificatesResolvers:
  cfresolver:
    acme:
      email: *******
      storage: /etc/traefik/acme.json
      dnsChallenge:
        provider: cloudflare
        resolvers:
          - "1.1.1.1:53"
          - "1.0.0.1:53"

Проблема

Пытаюсь зайти на адрес https://traefik.mdomain.ru (должен попасть на дашборд Traefik’а). А в ответ: сервис не доступен.

В логах Traefik

time="2023-10-11T20:02:30+06:00" level=debug msg="Serving default certificate for request: \"traefik\""
time="2023-10-11T20:02:30+06:00" level=debug msg="http: TLS handshake error from 10.100.0.4:47280: remote error: tls: bad certificate"
time="2023-10-11T20:02:32+06:00" level=debug msg="Serving default certificate for request: \"traefik\""
time="2023-10-11T20:02:32+06:00" level=debug msg="http: TLS handshake error from 10.100.0.4:47292: remote error: tls: bad certificate"

В логах Cloudflare

2023-10-11T14:02:32Z DBG GET https://traefik.mdomain.ru/favicon.ico HTTP/1.1 cfRay=8147a42dce60b4ee-OSL connIndex=2 content-length=0 event=1 headers={"Accept":["image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"],"Accept-Encoding":["gzip, br"],"Accept-Language":["ru,en-US;q=0.9,en;q=0.8,ja;q=0.7"],"Cdn-Loop":["cloudflare"],"Cf-Connecting-Ip":["*.*.*.*"],"Cf-Ipcountry":["RU"],"Cf-Ray":["8147a42dce60b4ee-OSL"],"Cf-Visitor":["{\"scheme\":\"https\"}"],"Cf-Warp-Tag-Id":["****"],"Priority":["u=1, i"],"Referer":["https://traefik.mdomain.ru/"],"Sec-Ch-Ua":["\"Google Chrome\";v=\"117\", \"Not;A=Brand\";v=\"8\", \"Chromium\";v=\"117\""],"Sec-Ch-Ua-Mobile":["?0"],"Sec-Ch-Ua-Platform":["\"Linux\""],"Sec-Fetch-Dest":["image"],"Sec-Fetch-Mode":["no-cors"],"Sec-Fetch-Site":["same-origin"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"],"X-Forwarded-For":["*.*.*.*"],"X-Forwarded-Proto":["https"]} host=traefik.mdomain.ru ingressRule=1 path=/favicon.ico
2023-10-11T14:02:32Z ERR  error="Unable to reach the origin service. The service may be down or it may not be responding to traffic from cloudflared: tls: failed to verify certificate: x509: certificate is valid for 99086f145502f9bf969143601bc2499b.d80c8b992178b999171d425802265962.traefik.default, not traefik" cfRay=8147a42dce60b4ee-OSL event=1 ingressRule=1 originService=https://traefik
2023-10-11T14:02:32Z ERR Request failed error="Unable to reach the origin service. The service may be down or it may not be responding to traffic from cloudflared: tls: failed to verify certificate: x509: certificate is valid for 99086f145502f9bf969143601bc2499b.d80c8b992178b999171d425802265962.traefik.default, not traefik" connIndex=2 dest=https://traefik.mdomain.ru/favicon.ico event=0 ip=*.*.*.* type=http

Как я понимаю Траефик не берет универсальный серт от СФ и сезет со своим, сгенерированным. А СФ дает ему отлуп. Как ЭТО ВСЕ НАСТОИТЬ? Что-то всю голову сломал. Куча всяких примеров/описаний почитал. Но там что-то не договаривают или подразумевают, что я все это УЖЕ должен знать. Воотщем не работает :(

Кто настраивал подобную схему, или знает куда копать - ПОМОГИТЕ ПОЖАЛУЙТА!

 , , , ,

ProphSerg
()

Docker swarm, маршрутизация

Добрый день!

Имеем рой из двух нод

$ docker node ls
ID                            HOSTNAME  STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
ycc######################     node1     Ready     Active         Leader           18.06.3-ce
rx5###################### *   node2     Ready     Active         Reachable        20.10.21

Запускаю стек из двух сервисов qBitTorrent’а. Примерно так

version: "3.9"
services:

  qbt-node1:
    image: linuxserver/qbittorrent:latest
    ports:
      - 6004:6004
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.labels.tag == node1]

  qbt-node2:
    image: linuxserver/qbittorrent:latest
    ports:
      - 6005:6005
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.labels.tag == node2]

Все запустилось и работает. Работает и ВебМорда http://node1:6004 http://node2:6005

Проверяем маршрутизацию. http://node1:6005 - Долго висит и отваливается http://node2:6004 - Работает

Проверяем телнетом

$ telnet node1 6005
Trying node1...
Connected to node1.
Escape character is '^]'.
GET /

HTTP/1.1 400 Bad Request
connection: close
content-length: 0
date: Sun, 25 Jun 2023 06:01:49 GMT

Connection closed by foreign host.
$ telnet node1 6005
Trying node1...
Connected to node1.
Escape character is '^]'.
GET / HTTP/1.1


Connection closed by foreign host.

Как такое может быть, с одной нады маршрутизится, а с другой нет? Куда смотреть/копать?

 

ProphSerg
()

RSS подписка на новые темы