Sind Anwendungen oder Dateien unerwartet nicht mehr verfügbar, stehen schnell Teile des Unternehmens still und die Augen sind auf den Admin gerichtet. Um ... (mehr)

REST-API

Ein großes Ziel von LXD ist es, die Interaktion mit Containern auf der Kommandozeile zu verbessern. Zum einen werden daher die lxc-Kommandos überarbeitet, zum anderen wird eine neue REST-API implementiert. Diese API kommuniziert, bei entsprechend konfiguriertem LXD, über HTTPS mit dem Host und dessen Containern. Der Vorteil der API liegt darin, dass Benutzer ihre eigenen Clients erstellen und dadurch LXD in ihre Infrastruktur integrieren können. Ein einfaches Python-Skript zeigt die der API zugrunde liegende Idee (Listing 5).

Listing 5: Python-API



#!/usr/bin/env python
import os.path
import requests
conf_dir = os.path.expanduser('~/.config/lxc')
crt = os.path.join(conf_dir, 'client.crt')
key = os.path.join(conf_dir, 'client.key')
print(requests.get('https://192.168.56.105:8090/1.0/containers', verify=False, cert=(crt, key)).text)

Über ein Skript erhalten Sie im nächsten Schritt die auf einem Host konfigurierten Container:

~/.config/lxc$ lxc config trust add client.crt
$ python -W ignore lxd.py | jq
{
      "type": "sync",
      "status": "Success",
      "status_code": 200,
      "metadata": [
         "/1.0/containers/container0",
         "/1.0/containers/container1"
      ]
}

Die REST-API ist tatsächlich ein Zugangspunkt zu LXD, der vielseitige Möglichkeiten eröffnet. Per HTTPS steuern Sie mit ihr mehrere LXD-Hosts und deren Container. Einem eigenen LXD-Client, der als Management-Werkzeug Container verwaltet, steht daher nichts mehr im Weg.

Fazit

Die Vorgehensweise, für die LXD-Werkzeuge auch "lxc" zu verwenden, ist zu Beginn etwas ungewohnt. Bei näherem Hinsehen ist sie aber durchaus sinnvoll: Das LXD-Projekt erweitert immerhin zuerst die Lowlevel-LXC-Kommandos und zieht sie dann in LXD nach. Der neue Lightervisor ist auf jeden Fall ein großer Schritt in Richtung komfortables Container-Management. Mit ZFS, unprivilegierten Containern und Kommandos, die Host-übergreifend arbeiten, setzt LXD auf die richtigen Bausteine. Die REST-API rundet das Gesamtbild ab, sie erlaubt es Nutzern, eigene Clients in der Programmiersprache ihrer Wahl zu entwickeln. An der Live Migration von Containern wird immer noch gearbeitet, aber zumindest ist es in vielen Fällen bereits möglich, in Ubuntu 16.04 Container ohne Downtime von Host zu Host zu verschieben.

(of)

Link-Codes

[1] Cgroup-Einstellungen von LXC-Containern: https://www.thomas-krenn.com/de/wiki/Cgroup_Werte_von_LXC_Linux_Containern/

[2] LXD-Konfiguration: https://github.com/lxc/lxd/blob/master/doc/configuration.md/

comments powered by Disqus
Mehr zum Thema

Container mit LXC betreiben

Container gibt es bei Linux und Unix schon lange, aber erst Docker machte die Technologie wirklich populär. Für kleinere Installationen, die Container eher als Ersatz für virtuelle Maschinen nutzen, gibt es mit LXC eine sehr viel einfachere Lösung. Wir beschreiben die Installation und den richtigen Umgang mit Abbildern.
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023