Software Update

25. November 2022 Andreas Peters

Ich habe eine Reihe von Updates für meine Softwareprojekte durchgeführt.

M3s - Kubernetes Framework für Apache Mesos

Die Version 0.4.0 von Mesos-M3s ist erschienen. Dabei sind folgende Features hinzugekommen:

  • Redis reconnect after unhealthy ping.
  • Mysql support as datastore endpoint
  • Healthcheck for datastore
  • Resubscription after the connection to mesos master was lost.
  • Container volume to persist datastore.
  • Hashicorp Vault support for environment variables of the framework.
  • Support for TLS and authentication of the bootstrap server
  • Support for cri-docker (enable with K3S_DOCKER=true)
  • Support for MySQL TLS datastore communication
  • Support for CGroupV2 (bool env CGROUP_V2, default=false)
  • Ulimit docker parameter (DOCKER_ULIMIT) to overwrite the default value.
  • Mesos reconcile loop to periodically sync state with Mesos.

Die Kubernetes Version ist nun auf 1.24.x aktualisiert. Daher ist es wichtig zu prüfen, ob die benutzen Deployments Kompatibel sind.

Links:

Mesos-Compose - Container Orchestrator für Apache Mesos

Die Version 0.4.2 von Mesos-Compose ist erschienen. Dabei sind folgende Features hinzugekommen:

  • Support of docker-compose capability parameter cap_add.
  • Support of mesos command executor. Set the label: biz.aventer.mesos_compose.container_type: “NONE”
  • Support of environment variables for executer.
  • Docker container support for custom executor.
  • Support for docker compose cap-drop.
  • Support for docker comport pull_policy. Support always (default) and “missing”.
  • Support for docker compose “placement -> constraints -> node.hostname” command.
  • Resubscription after the connection to mesos master is lost.
  • Mesos CLI Plugin to launch and kill mesos-compose workload.
  • Support for Hashicorp Vault.
  • Support for node.platform.os and node.platform.arch constraint
  • Support of docker-compose command restart
  • Support for user defined network with exposed ports
  • customize taskname biz.aventer.mesos_compose.taskname: “test:app”.

Links:

Traefik - Proxy und Loadbalancer

Traefik ist in der Version 2.9.5 erschienen. Wie immer stelle ich eine gepatched Version bereit, in der mein Mesos Provider enthalten ist. Mit dieser Version habe ich auch dynamic-lable-names implementiert. Dies vereinfacht das hinzufügen und aktualisieren von labels.

Wie werden dynamische label names verwendet?

Alle Traefik labels benötigen einen Namen. Hier ist das z.B: “homepage”:

traefik.http.routers.homepage.entrypoints": "web"

Um dieses dynamisch erstellen zu lassen, muss dieses wie folgt umgeschrieben werden:

traefik.http.routers.__mesos_taskid__.entrypoints": "web"

Der Traefik Mesos Provider ersetzt nun sowohl im label-key als auch im label-value __mesos_taskid__, durch die Mesos TaskID.

Links: