Два способа установки Containerd
Два способа установки Containerd

Операционная среда курса — centos7u6.

1. Установка режима YUM

1.1 Получить исходный код YUM

Язык кода:text
копировать
Получить исходный код Alibaba Cloud YUM
# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Язык кода:text
копировать
Посмотреть программное обеспечение Containerd в исходном коде YUM
# список ням | grep контейнер
Containerd.io.x86_64 1.4.12-3.1.el7 docker-ce-stable

1.2 Установка с помощью команды yum

Язык кода:text
копировать
Установите программное обеспечение Containerd.io,Вы можете установить Containerd
# yum -y установитьContainerd.io

1.3 Проверьте установку и запустите службу

Язык кода:text
копировать
использовать обороты в минуту -qa команда, чтобы проверить, установлен ли он
# rpm -qa | grep containerd
containerd.io-1.4.12-3.1.el7.x86_64
Язык кода:text
копировать
Установите запуск службы контейнера и автоматический запуск при загрузке
# systemctl включение контейнера
# systemctl запуск контейнера
Язык кода:text
копировать
Проверьте статус запуска службы контейнера
# systemctl status containerd
● containerd.service - containerd container runtime
   Loaded: loaded (/usr/lib/systemd/system/containerd.service; enabled; vendor preset: disabled)
   Active: active (running) since шесть 2023-08-05 19:25:57 CST; 46s ago
     Docs: https://containerd.io
  Process: 13319 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
 Main PID: 13323 (containerd)
    Tasks: 10
   Memory: 20.4M
   CGroup: /system.slice/containerd.service
           └─13323 /usr/bin/containerd
           ......

1.4 Проверка доступности

Язык кода:text
копировать
Команду ctr также можно использовать при установке Containerd. Команда ctr в основном используется для управления изображениями контейнеров и контейнеров.
Используйте команду ctr для просмотра информации о клиенте и сервере Containerd.
# ctr version
Client:
  Version:  1.6.22
  Revision: 8165feabfdfe38c65b599c4993d227328c231fca
  Go version: go1.19.11

Server:
  Version:  1.6.22
  Revision: 8165feabfdfe38c65b599c4993d227328c231fca
  UUID: a588fcfe-122c-4b3a-a25a-95eadd30d3a7

2. Бинарная установка

Containerd имеет два установочных пакета:

  • Первое - этоcontainerd-xxx,Пакет такого типа не является проблемой для автономного тестирования.,Не включает runC,Нужно заранее установить.
  • Второйcri-containerd-cni-xxxx,Содержит необходимые связанные файлы в runc и k8s. Этот пакет необходим в кластере k8s. Хотя runC включен,Но он опирается на seccomp (режим безопасных вычислений) в системе.,Это режим, ограничивающий использование системных ресурсов. )

2.1 Получите установочный пакет

Язык кода:text
копировать
Загрузите установочный пакет Containerd
# wget https://github.com/containerd/containerd/releases/download/v1.6.0/cri-containerd-cni-1.6.0-linux-amd64.tar.gz

2.2 Установите и проверьте удобство использования

2.2.1 Установка контейнера
Язык кода:text
копировать
Посмотреть полученный установочный пакет
#лс
cri-containerd-cni-1.6.0-linux-amd64.tar.gz
Язык кода:text
копировать
Разархивируйте скачанный пакет
# tar xf cri-containerd-cni-1.6.0-linux-amd64.tar.gz
Язык кода:text
копировать
Посмотреть разархивированный каталог
#лс
и т. д. выберите USR
Язык кода:text
копировать
Проверьте каталог и т. д., который в основном содержит файл конфигурации управления службамиContainerd и файл конфигурации виртуальной сетевой карты cni.
# ls etc
cni  crictl.yaml  systemd
# ls etc/systemd/
system
# ls etc/systemd/system/
containerd.service


Проверьте каталог opt, в основном на наличие файла конфигурации контейнера и подключаемого модуля cni, используемого в среде gce.
# ls opt
cni  containerd
# ls opt/containerd/
cluster
# ls opt/containerd/cluster/
gce  version
# ls opt/containerd/cluster/gce
cloud-init  cni.template  configure.sh  env

Проверьте каталог usr, который в основном представляет собой файл времени выполнения контейнера, включая runc.
# ls usr
local
# ls usr/local/
bin  sbin
# ls usr/local/bin
containerd  containerd-shim  containerd-shim-runc-v1  containerd-shim-runc-v2  containerd-stress  crictl  critest  ctd-decoder  ctr
# ls usr/local/sbin
runc
2.2.2 Просмотр места установки контейнера
Язык кода:text
копировать
Проверьте файлContainerd.service, чтобы узнать, где установлен файлContainerd.
# cat etc/systemd/system/containerd.service



# Copyright The containerd Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target

[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/containerd #Просмотрите это местоположение и поместите сюда двоичный файлContainerd, чтобы завершить установку.

Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=infinity
# Comment TasksMax if your systemd version does not supports it.
# Only systemd 226 and above support this version.
TasksMax=infinity
OOMScoreAdjust=-999

[Install]
WantedBy=multi-user.target
2.2.3 Копирование файлов среды выполнения контейнера в систему
Язык кода:text
копировать
Проверьте каталог хост/usr/local/bin, там ничего нет.
# ls /usr/local/bin/

Проверьте распакованный каталог usr/local/bin, который содержит файл времени выполнения контейнера.
# ls usr/
local
# ls usr/local/
bin  sbin
# ls usr/local/bin/
containerd  containerd-shim  containerd-shim-runc-v1  containerd-shim-runc-v2  containerd-stress  crictl  critest  ctd-decoder  ctr

скопировать файлcontainerd в каталог /usr/local/bin. На этот раз вы можете скопироватьcontainerd только один файл или скопировать все файлы.
# cp usr/local/bin/containerd /usr/local/bin/
# ls /usr/local/bin/
containerd
2.2.4 Добавляем файлContainerd.service в систему
Язык кода:text
копировать
Просмотр распакованного каталога etc/system
# ls etc
cni  crictl.yaml  systemd

# ls etc/systemd/
system

# ls etc/systemd/system/
containerd.service

скопировать файл конфигурации управления сервисомcontainerd в каталог /usr/lib/systemd/system/
# cp etc/systemd/system/containerd.service /usr/lib/systemd/system/containerd.service

Посмотреть результаты после копирования
# ls /usr/lib/systemd/system/containerd.service
/usr/lib/systemd/system/containerd.service
2.2.5 Просмотр справки по использованию контейнера
Язык кода:text
копировать
# containerd --help
NAME:
   containerd -
                    __        _                     __
  _________  ____  / /_____ _(_)___  ___  _________/ /
 / ___/ __ \/ __ \/ __/ __ `/ / __ \/ _ \/ ___/ __  /
/ /__/ /_/ / / / / /_/ /_/ / / / / /  __/ /  / /_/ /
\___/\____/_/ /_/\__/\__,_/_/_/ /_/\___/_/   \__,_/
......
2.2.6 Создание файла конфигурации модуля контейнера
2.2.6.1 Создание файла конфигурации модуля по умолчанию

Containerd Файл конфигурации по умолчанию: /etc/containerd/config.toml,Можно использоватьcontainerd config default > /etc/containerd/config.tomlКоманда создания файла конфигурации модуля

Язык кода:text
копировать
Создать каталог файла конфигурации
# mkdir /etc/containerd
Язык кода:text
копировать
Создать файл конфигурации
# containerd config default > /etc/containerd/config.toml
Язык кода:text
копировать
Посмотреть файл конфигурации
# кот /etc/containerd/config.toml
2.2.6.2 Замена файла конфигурации по умолчанию

Однако позже в приведенный выше файл конфигурации будет внесено много изменений. Здесь мы напрямую меняем его на файл конфигурации, который можно использовать на автономном компьютере или в среде k8s, и настраиваем ускоритель изображений (см. Конфигурацию).

Язык кода:text
копировать
# vim /etc/containerd/config.toml

# cat /etc/containerd/config.toml
root = "/var/lib/containerd"
state = "/run/containerd"
oom_score = -999

[grpc]
  address = "/run/containerd/containerd.sock"
  uid = 0
  gid = 0
  max_recv_message_size = 16777216
  max_send_message_size = 16777216

[debug]
  address = ""
  uid = 0
  gid = 0
  level = ""

[metrics]
  address = ""
  grpc_histogram = false

[cgroup]
  path = ""

[plugins]
  [plugins.cgroups]
    no_prometheus = false
  [plugins.cri]
    stream_server_address = "127.0.0.1"
    stream_server_port = "0"
    enable_selinux = false
    sandbox_image = "easzlab/pause-amd64:3.2" # Настроенный образ песочницы
    stats_collect_period = 10
    systemd_cgroup = false
    enable_tls_streaming = false
    max_container_log_line_size = 16384
    [plugins.cri.containerd]
      snapshotter = "overlayfs"
      no_pivot = false
      [plugins.cri.containerd.default_runtime]
        runtime_type = "io.containerd.runtime.v1.linux"
        runtime_engine = ""
        runtime_root = ""
      [plugins.cri.containerd.untrusted_workload_runtime]
        runtime_type = ""
        runtime_engine = ""
        runtime_root = ""
    [plugins.cri.cni]
      bin_dir = "/opt/kube/bin"
      conf_dir = "/etc/cni/net.d"
      conf_template = "/etc/cni/net.d/10-default.conf"
    [plugins.cri.registry]
      [plugins.cri.registry.mirrors]
        [plugins.cri.registry.mirrors."docker.io"]
          endpoint = [
            "https://docker.mirrors.ustc.edu.cn",
            "http://hub-mirror.c.163.com"
          ]
        [plugins.cri.registry.mirrors."gcr.io"]
          endpoint = [
            "https://gcr.mirrors.ustc.edu.cn"
          ]
        [plugins.cri.registry.mirrors."k8s.gcr.io"]
          endpoint = [
            "https://gcr.mirrors.ustc.edu.cn/google-containers/"
          ]
        [plugins.cri.registry.mirrors."quay.io"]
          endpoint = [
            "https://quay.mirrors.ustc.edu.cn"
          ]
        [plugins.cri.registry.mirrors."harbor.kubemsb.com"] #Здесь добавлен локальный контейнерный зеркальный склад Гавань, как местный зеркальный склад.
          endpoint = [
            "http://harbor.kubemsb.com"
          ]
    [plugins.cri.x509_key_pair_streaming]
      tls_cert_file = ""
      tls_key_file = ""
  [plugins.diff-service]
    default = ["walking"]
  [plugins.linux]
    shim = "containerd-shim"
    runtime = "runc"
    runtime_root = ""
    no_shim = false
    shim_debug = false
  [plugins.opt]
    path = "/opt/containerd"
  [plugins.restart]
    interval = "10s"
  [plugins.scheduler]
    pause_threshold = 0.02
    deletion_threshold = 0
    mutation_threshold = 100
    schedule_delay = "0s"
    startup_delay = "100ms"
2.2.7 Запустите службуContainerd и настройте ее автоматический запуск при загрузке.
Язык кода:text
копировать
# systemctl enable containerd
Created symlink from /etc/systemd/system/multi-user.target.wants/containerd.service to /usr/lib/systemd/system/containerd.service.
# systemctl start containerd
Язык кода:text
копировать
# systemctl status containerd
● containerd.service - containerd container runtime
   Loaded: loaded (/usr/lib/systemd/system/containerd.service; enabled; vendor preset: disabled)
   Active: active (running) since день 2023-08-06 14:11:12 CST; 5s ago
     Docs: https://containerd.io
  Process: 20523 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
 Main PID: 20525 (containerd)
    Tasks: 13
   Memory: 26.1M
   CGroup: /system.slice/containerd.service
           └─20525 /usr/local/bin/containerd
           ......
2.2.8 Скопируйте команду ctr в систему
Язык кода:text
копировать
# ls usr/local/bin/
containerd  containerd-shim  containerd-shim-runc-v1  containerd-shim-runc-v2  containerd-stress  crictl  critest  ctd-decoder  ctr
# cp usr/local/bin/ctr /usr/bin/
2.2.9 Проверка установленной версии сервисаContainerd
Язык кода:text
копировать
# ctr version
Client:
  Version:  v1.6.0
  Revision: 39259a8f35919a0d02c9ecc2871ddd6ccf6a7c6e
  Go version: go1.17.2

Server:
  Version:  v1.6.0
  Revision: 39259a8f35919a0d02c9ecc2871ddd6ccf6a7c6e
  UUID: c1972cbe-884a-41b0-867f-f8a58c168e6d
2.2.10 Установите runC

Поскольку runC, входящий в двоичный пакет, требует, чтобы поддержка seccomp была установлена ​​в системе по умолчанию и ее необходимо устанавливать отдельно, а разные версии runC имеют одинаковые требования к версии seccomp, рекомендуется загрузить и установить двоичный пакет runC отдельно. , который содержит поддержку модуля seccomp.

2.2.10.1 Получить runC
Язык кода:text
копировать
Загрузите с помощью wget
# wget https://github.com/opencontainers/runc/releases/download/v1.1.0/runc.amd64
2.2.10.2 Установите runC и проверьте результаты установки
Язык кода:text
копировать
Просмотр загруженных файлов
#лс
runc.amd64
Язык кода:text
копировать
Установите runC
# mv runc.amd64 /usr/sbin/runc
Язык кода:text
копировать
Добавьте разрешения на исполняемый файл в runC
# chmod +x /usr/sbin/runc
Язык кода:text
копировать
Используйте команду runc, чтобы проверить успешность установки.
# запуск -v
запустить версию 1.1.0
зафиксировать: v1.1.0-0-g067aaf85
спецификация: 1.0.2-dev
идти: идти1.17.6
libseccomp: 2.5.3
boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода