githubixx.containerd

ansible-role-containerd

Rola Ansible do instalacji containerd. containerd to standardowy runtime kontenerów w przemyśle, skoncentrowany na prostocie, niezawodności i przenośności. dostępny jako demon dla systemów Linux i Windows, który zarządza pełnym cyklem życia kontenerów na swoim systemie: transferem i przechowywaniem obrazów, wykonaniem i nadzorem kontenerów, zarządzaniem niskopoziomowym przechowywaniem i podłączaniem do sieci itp.

Zmiany

Historia zmian:

Zobacz pełny CHANGELOG

Ostatnie zmiany:

0.13.1+1.7.20

  • AKTUALIZACJA
    • zaktualizowano containerd do v1.7.20

0.13.0+1.7.19

  • CECHA

    • dodano wsparcie dla Ubuntu 24.04
  • AKTUALIZACJA

    • zaktualizowano containerd do v1.7.19

Instalacja

  • Bezpośrednio pobierz z GitHub (zmień katalog na rolę Ansible przed klonowaniem): git clone https://github.com/githubixx/ansible-role-containerd.git githubixx.containerd

  • Za pomocą komendy ansible-galaxy i pobierz bezpośrednio z Ansible Galaxy: ansible-galaxy install role githubixx.containerd

  • Stwórz plik requirements.yml z poniższą zawartością (to pobierze rolę z GitHub) i zainstaluj za pomocą: ansible-galaxy role install -r requirements.yml:

---
roles:
  - name: githubixx.containerd
    src: https://github.com/githubixx/ansible-role-containerd.git
    version: 0.13.1+1.7.20

Zmienne roli

# Obecnie wspierana jest tylko wartość "base"
containerd_flavor: "base"

# Wersja containerd do zainstalowania
containerd_version: "1.7.19"

# Katalog, w którym będą przechowywane pliki binarne "containerd"
containerd_binary_directory: "/usr/local/bin"

# Ścieżka do pliku konfiguracyjnego containerd
containerd_config_directory: "/etc/containerd"

# Katalog do przechowywania archiwum
containerd_tmp_directory: "{{ lookup('env', 'TMPDIR') | default('/tmp', true) }}"

# Właściciel/grupa plików binarnych "containerd". Jeśli zmienne nie są ustawione
# plik wynikowy będzie należał do bieżącego użytkownika.
containerd_owner: "root"
containerd_group: "root"

# Określa uprawnienia plików binarnych "containerd"
containerd_binary_mode: "0755"

# System operacyjny
# Możliwe opcje: "linux", "windows"
containerd_os: "linux"

# Architektura procesora, na której powinien działać "containerd".
# Inne możliwe wartości: "arm64", "arm"
containerd_arch: "amd64"

# Nazwa pliku archiwum
containerd_archive_base: "containerd-{{ containerd_version }}-{{ containerd_os }}-{{ containerd_arch }}.tar.gz"

# Adres URL do pobierania containerd (zwykle nie trzeba go zmieniać)
containerd_url: "https://github.com/containerd/containerd/releases/download/v{{ containerd_version }}/{{ containerd_archive_base }}"

# Ustawienia usługi systemd dla containerd
containerd_service_settings:
  "ExecStartPre": "{{ modprobe_location }} overlay"
  "ExecStart": "{{ containerd_binary_directory }}/containerd"
  "Restart": "always"
  "RestartSec": "5"
  "Type": "notify"
  "Delegate": "yes"
  "KillMode": "process"
  "OOMScoreAdjust": "-999"
  "LimitNOFILE": "1048576"
  "LimitNPROC": "infinity"
  "LimitCORE": "infinity"

# Zawartość pliku konfiguracyjnego "containerd". Ustawienia poniżej to
# ustawienia, które różnią się od domyślnych ustawień "containerd".
#
# Domyślną konfigurację "containerd" można wygenerować za pomocą tej komendy:
#
# containerd config default
#
# Różnice w stosunku do domyślnej konfiguracji:
#
# - Plik konfiguracyjny zawiera kilka zmiennych roli, które zostaną zastąpione podczas
#   przetwarzania szablonu konfiguracyjnego.
# - W 'plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options' ustawienie
#   "SystemdCgroup" jest ustawione na "true" zamiast "false". Jest to istotne dla
#   Kubernetes itp. Zobacz także:
#   https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd-systemd)
#
containerd_config: |
  version = 2
  [plugins]
    [plugins."io.containerd.grpc.v1.cri"]
      sandbox_image = "registry.k8s.io/pause:3.8"
      [plugins."io.containerd.grpc.v1.cri".cni]
        bin_dir = "/opt/cni/bin"
        conf_dir = "/etc/cni/net.d"
      [plugins."io.containerd.grpc.v1.cri".containerd]
        [plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
          [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
            runtime_type = "io.containerd.runc.v2"
            [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
              BinaryName = "/usr/local/sbin/runc"
              SystemdCgroup = true
  [stream_processors]
    [stream_processors."io.containerd.ocicrypt.decoder.v1.tar"]
      args = ["--decryption-keys-path", "{{ containerd_config_directory }}/ocicrypt/keys"]
      env = ["OCICRYPT_KEYPROVIDER_CONFIG={{ containerd_config_directory }}/ocicrypt/ocicrypt_keyprovider.conf"]
    [stream_processors."io.containerd.ocicrypt.decoder.v1.tar.gzip"]
      args = ["--decryption-keys-path", "{{ containerd_config_directory }}/ocicrypt/keys"]
      env = ["OCICRYPT_KEYPROVIDER_CONFIG={{ containerd_config_directory }}/ocicrypt/ocicrypt_keyprovider.conf"]

Zależności

Opcjonalne zależności (np. potrzebne do Kubernetes):

Można oczywiście używać każdej innej roli runc i CNI.

Przykładowy Playbook

- hosts: twoj-host
  roles:
    - githubixx.containerd

Więcej przykładów jest dostępnych w testach Molecule.

Testowanie

Ta rola ma małą konfigurację testową, która jest tworzona za pomocą Molecule, libvirt (vagrant-libvirt) i QEMU/KVM. Proszę zajrzeć do mojego wpisu na blogu Testing Ansible roles with Molecule, libvirt (vagrant-libvirt) and QEMU/KVM, aby dowiedzieć się, jak skonfigurować. Konfiguracja testowa jest tutaj.

Następnie można wykonać molekułę:

molecule converge

To stworzy kilka maszyn wirtualnych (VM) z różnymi wspieranymi systemami operacyjnymi Linux i zainstaluje containerd, runc oraz wtyczki CNI (które są potrzebne na przykład dla Kubernetes).

Zawiera również mały krok weryfikacyjny. Pobiera kontener nginx i uruchamia go, aby upewnić się, że containerd jest poprawnie skonfigurowany i może uruchamiać obrazy kontenerów:

molecule verify

Aby przeprowadzić czyszczenie, uruchom:

molecule destroy

Licencja

GNU GENERAL PUBLIC LICENSE Wersja 3

Informacje o autorze

http://www.tauceti.blog

Zainstaluj
ansible-galaxy install githubixx.containerd
Licencja
Unknown
Pobrania
2.3k
Właściciel
Senior System Engineer - Python, Go, Cloud, Kubernetes, Commodore, Retro, 80's ;-)