Hướng dẫn sử dụng container registry với containerd

Last modified by Admin on 2024/09/09 15:07

containerd là một container runtime cấp thấp hơn Docker trong việc quản lý lưu trữ và networking nhưng lại được sử dụng nhiều khi kết hợp với Kubernetes Engine vì khả năng tập trung vào quản lý vòng đời của các container.

Cài đặt

Đối với Windows Server:

Ta sử dụng lệnh sau để cài đặt:

Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-ContainerdRuntime/install-containerd-runtime.ps1" -o install-containerd-runtime.ps1
.\install-containerd-runtime.ps1

Đối với Linux Server:

Cài containerd:

Đầu tiên ta tìm phiên bản mới nhất của containerd tại đây:  https://github.com/containerd/containerd/releases

Ví dụ: 

wget https://github.com/containerd/containerd/releases/download/v2.0.0-rc.4/containerd-2.0.0-rc.4-linux-amd64.tar.gz

Sau đó ta giải nén bằng lệnh sau vào thư mục /usr/local:

tar -xzvf /usr/local containerd-1.6.2-linux-amd64.tar.gz

Để containerd chạy dưới dạng service, ta làm như sau:

vim /etc/systemd/system/containerd.service

Sau đó ta cấu hình như sau rồi lưu lại:

[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

Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
OOMScoreAdjust=-999

[Install]
WantedBy=multi-user.target

Giờ ta sẽ load lại daemon để thay đổi có hiệu lực:

systemctl daemon-reload

Ta enable để containerd có thể khởi động cùng hệ thống:

systemctl daemon-reload

Cài runc:

Trước tiên ta cũng tìm phiên bản của runc tại https://github.com/opencontainers/runc/releases rồi tải về ví dụ như sau:

wget https://github.com/opencontainers/runc/releases/download/v1.2.0-rc.3/runc.amd64

Sau đó ta chạy lệnh sau để cài đặt 

install -m 755 runc.amd64 /usr/local/sbin/runc

Cài CNI plugin:

Tương tự ta tìm kiếm phiên bản plugin tại https://github.com/containernetworking/plugins/releases rồi tải về ví dụ như sau:

wget https://github.com/containernetworking/plugins/releases/download/v1.5.1/cni-plugins-linux-amd64-v1.5.1.tgz

Sau đó ta giải nén:

mkdir -p /opt/cni/bin

tar -xzvf /opt/cni/bin cni-plugins-linux-amd64-v1.5.1.tgz

Pull

Pull image sử dụng Token:

ctr --namespace cr-hn-1.bizflycloud.vn images pull <image-name> --user BIZFLY:<Token>

Pull image sử dụng Application Credential:

ctr --namespace cr-hn-1.bizflycloud.vn images pull <image-name> --user APPCRED_<ID>:<Secret> 

Tag

Tag image bằng lệnh sau:

ctr --namespace cr-hn-1.bizflycloud.vn images tag <source-image> cr-hn-1.bizflycloud.vn/<repository>/<image>:<new-tag>

Push

Push image sử dụng token:

ctr --namespace cr-hn-1.bizflycloud.vn images push cr-hn-1.bizflycloud.vn/<repository>/<image>:<tag> --user BIZFLY:<Token>

ctr --namespace cr-hn-1.bizflycloud.vn images push cr-hn-1.bizflycloud.vn/<repository>/<image>:<tag> --user APPCRED_<ID>:<Secret> 

Bizfly Cloud chúc bạn thành công!