I’m running Docker on Ubuntu server; around 50 containers running, most admin via Portainer. Configuration files and small databases for container applications are stored on the local SSD, media and larger files are stored on a NAS.

NAS data and the container folders are backed up.

I have a second identical machine doing nothing. What would you recommend researching to add resilience to this setup? Top priority is quick and easy restoration should the SSD fail - everything else is relatively easy to replace.

I’ll create an SSD RAID but I like the idea of a second host.

  • Big P@feddit.uk
    link
    fedilink
    English
    arrow-up
    17
    ·
    1 year ago

    You can use docker swarm (or a better container orchestrator) to have the containers automatically fail over to the second host

      • Sim@lemmy.nzOP
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        Thanks. That means I need to move all data off the hosts on to, say, a NAS - then the NAS becomes the single point of failure. Can I operate a swarm without doing that but still duplicate everything from host 1 to host 2, so host 2 could take over relatively seamlessly (apart from local DNS and moving port forwarding to nginx on the remaining host)?

    • Sim@lemmy.nzOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      Thanks. Can I use my existing, single Docker to start a new swarm, or do I have to start from scratch?

  • eluvatar@programming.dev
    link
    fedilink
    English
    arrow-up
    10
    ·
    1 year ago

    Container orchestration is what you’re looking for. Kubernetes is the most popular, but it might be overkill it’s hard to say based on your setup. However it’s definitely useful experience to know how to run it.

    • Sim@lemmy.nzOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      Thanks. Could I achieve a simple 2-host solution with Kubernetes though?

      • eluvatar@programming.dev
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year ago

        Nothing about k8s is simple. But yes you can achieve that.

        Take a look at Rancher for actually running a cluster.

  • mplewis@lemmy.globe.pub
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 year ago

    Learning K8s is a lot to take on, but it will pay off as your needs expand in the long term — and if you decide to go into infra/ops at work.

  • mertn@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 year ago

    I put my dockers on mirrored zfs pool and have enough spare parts in case of breakdowns.

    • Sim@lemmy.nzOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      So you have Docker itself on a single host (with parts) and all the containers in fault tolerant storage, and the most work you’d have to do in the event of host drive failure is to re-install the OS and Docker itself?

      • mertn@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        I have the OS (with docker) mirrored too. So no reinstalling, just disk or other parts swapping in case of a failure. I hope. A mothboard swap is the worst downtime. I have done this and needed to fiddle with network settings due to changed net interface name to get the server up again.

  • Mio
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    It might be enough to just rsync stuff to the secondary regularly and the inactive machine monitor the active machine and just start all services as the active machine stops responding.

  • Decronym@lemmy.decronym.xyzB
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 year ago

    Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

    Fewer Letters More Letters
    DNS Domain Name Service/System
    HTTP Hypertext Transfer Protocol, the Web
    NAS Network-Attached Storage
    k8s Kubernetes container management package
    nginx Popular HTTP server

    4 acronyms in this thread; the most compressed thread commented on today has 8 acronyms.

    [Thread #162 for this sub, first seen 24th Sep 2023, 17:15] [FAQ] [Full list] [Contact] [Source code]

  • adam@kbin.pieho.me
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    The issue with orchestration is that you still need a way to share those small databases and config files.

    Docker has ok NFS support so you’d want to move the files to NAS shares and have them mount those. Without some way to centralise or spread the files out you won’t be covering your SSD failure case. Once you’ve got that going docker swarm will probably cover your needs just fine.

    You could go with K8S but based on you setup that’s a bit overkill (unless you’re doing it as a learning exercise, in which case go nuts).