Container: CRI-O 1.21 unterstützt CRI-Sicherheitsprofile für seccomp

Die Container-Runtime-Interface-Implementierung für Kubernetes passt sich dem aktuellen Release-Stand der Containerorchestrierung an.

In Pocket speichern vorlesen Druckansicht

(Bild: Travel mania/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Matthias Parbel

Das von der Cloud Native Computing Foundation (CNCF) verwaltete Incubating-Projekt CRI-O liegt in Anlehnung an den Releasezyklus von Kubernetes nun ebenfalls in Version 1.21 vor. Das OCI-kompatible CRI für Kubernetes enthält im neuen Release eine Reihe von Fehlerbereinigungen, aber auch zahlreiche Verbesserungen und neue Funktionen. Unter anderem unterstützt CRI-O nun CRI-Sicherheitsprofile für seccomp und das Nachverfolgen von Containern in dedizierte Dateien über den seccomp BPF Hook.

Der bereits mit Kubernetes 1.20 eingeführte Support für CRI-Sicherheitsprofile im Secure Computing (seccomp) steht vollumfänglich nun auch in CRI-O 1.21 zur Verfügung. Die seccomp-Security-Profile können im Container Runtime Interface eingesetzt werden, dabei lassen sich veraltete Codepfade noch so lange nutzen, bis das Feld nicht mehr verfügbar ist. Unterstützung für das ebenfalls im Linux Kernel verankerte Mandatory Access Control System (MAC) AppArmor soll folgen.

Ein in Verbindung mit dem seccomp BPF Hook bislang bestehendes Problem beim Annotieren auf Container-Ebene, gilt in CRI-O 1.21 als behoben. Über den Annotationsschlüssel `io.containers.trace-syscall/container-name` kann der seccomp BPF Hook verschiedene Container nun in dedizierten Dateien nachverfolgen. Wie das folgende Listing zeigt, lassen sich künftig für Workloads separate Dateien erzeugen, die nur die die Syscalls der jeweiligen Workload enthalten:

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
spec:
  selector:
    matchLabels:
      app: test
  replicas: 1
  template:
    metadata:
      labels:
        app: test
      annotations:
        io.containers.trace-syscall/nginx: of:/tmp/nginx.json
        io.containers.trace-syscall/redis: of:/tmp/redis.json
    spec:
      containers:
        - name: nginx
          image: nginx:latest
        - name: redis
          image: redis:latest

Unter den weiteren Neuerungen im Release findet sich die Kommandozeilenoption --registries-conf-dir, die es ermöglicht, einen bestimmten registries.conf.d(5)-Pfad auszuwählen, der anstelle des Benutzer- oder System-Standardpfads verwendet werden soll. Darüber hinaus bietet CRI-O 1.21 zusätzliche Metriken, einerseits zum Messen der Latenz individueller CRI-Aufrufe, anderseits zum Erfassen von Containern, die Out of Memory (oom) sind (container_runtime_crio_containers_oom_total und container_runtime_crio_containers_oom).

Nähere Informationen zu den genannten sowie ein vollständiger Überblick aller weiteren Neuerungen in CRI-O 1.21 findet sich in den Release Notes auf GitHub.

(map)