Hướng dẫn sử dụng container registry với containerd
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>