containerd配置HTTP私仓

1. 🛠️ 基础环境配置

📌 安装基础环境请参考:
[Ubuntu 22.04] 安装K8S基础环境准备脚本

2. 🐳 Docker安装

📌 docker安装请参考:
[Ubuntu 22.04] 安装docker,并设置镜像加速

3. 🚢 部署Harbor,HTTP访问

📌 [Ubuntu 22.04] 安装Harbor#HTTP方式

🔍 浏览器中输入:http://192.168.11.20,即可访问刚才部署的harbor

4. 📦 部署ContainerD

📌 containerd的安装请参考:
[Ubuntu 22.04] 安装containerd

5. 🔄 修改docker配置文件,向harbor中推入镜像

🎯 目标:向第三步部署的harbor仓库中推入镜像仓库

根据目前的环境,有两种方式可以向harbor中推入镜像。其一是通过dockerharbor中推入镜像仓库。其二是通过containerdharbor中推入镜像

由于目前我们对于containerd并不熟悉,因此我们先直接通过dockerharbor中推入镜像,由于我们自己搭建的harbor是私有仓库,并且是HTTP的方式,因此我们需要配置docker的配置文件。

你可以重新找一台机器安装docker做实验,或者直接使用harbor那台机器也可以,这里我直接使用harbor那台机器上的docker工具,向harbor推送镜像。

配置修改如下,主要是增加了insecure-registries配置,如果你的配置文件中包含其它的配置,请不要直接执行,否则会覆盖你的配置。;另外,请一定要注意80端口,这个不能省略,否则docker会以https的方式访问harbor

tee /etc/docker/daemon.json << 'EOF'
{
    "registry-mirrors": [
        "http://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://registry.docker-cn.com",
        "https://dockerproxy.com",
        "https://ccr.ccs.tencentyun.com",
        "https://registry.cn-hangzhou.aliyuncs.com"
    ],
    "insecure-registries": ["192.168.11.20:80"]
}
EOF

systemctl restart docker.service

这里我随便推送harbor的一个镜像到我自己的harbor仓库当中,操作如下,第一步:重新打tag, 第二步:docker push这里需要注意的是,再推送镜像之前,一定要在登录harbor,提前建立仓库目录,否则推送会被拒绝,另外,静态的Tag所指向的仓库端口必须要显式指定80端口,否则默认使用443端口

root@harbor-http:~/harbor#
root@harbor-http:~/harbor#
root@harbor-http:~/harbor# cat /etc/docker/daemon.json
{
    "registry-mirrors": [
        "http://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://registry.docker-cn.com",
        "https://dockerproxy.com",
        "https://ccr.ccs.tencentyun.com",
        "https://registry.cn-hangzhou.aliyuncs.com"
    ],
    "insecure-registries": ["192.1
Containerd配置涉及多个方面,以下是详细的配置方法和相关信息: ### 基本配置文件创建与编辑 创建并编辑Containerd配置文件`/etc/containerd/config.toml`,根据实际需求配置文件中的各种参数,如网络设置、存储驱动、镜像存储位置等,完成配置后保存并关闭该文件 [^1]。 ### 模块加载与sysctl参数设置 加载`overlay`、`br_netfilter`模块,设置必需的`sysctl`参数,这些参数在重新启动后仍然生效。具体操作如下: ```bash # 加载overlay、br_netfilter模块 sudo modprobe overlay sudo modprobe br_netfilter # 设置sysctl参数 cat <<EOF | sudo tee /etc/sysctl.d/kubernetes.conf net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF # 应用sysctl参数而无需重新启动 sudo sysctl --system ``` 创建配置文件并修改相关配置: ```bash # 创建配置文件目录 sudo mkdir -p /etc/containerd # 生成默认配置文件 containerd config default | sudo tee /etc/containerd/config.toml # 修改cgroup Driver为systemd sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml # 修改镜像地址 sudo sed -i 's#sandbox_image = "registry.k8s.io/pause:3.6"#sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.6"#' /etc/containerd/config.toml ``` 重新加载系统服务并重启`containerd`: ```bash sudo systemctl daemon-reload sudo systemctl restart containerd sudo systemctl enable containerd ``` [^2] ### 其他配置 在某些情况下,可能需要在`ExecStart`中添加`--insecure-registry`参数,例如在第13行中间添加`--insecure-registry 192.168.143.160`: ```plaintext ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.143.160 --containerd=/run/containerd/containerd.sock ``` [^3] 还可以修改`ExecStart`的内容以支持不同的连接方式,修改后重新加载`docker`: ```plaintext ExecStart=/usr/bin/dockerd -H fd:// —containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock ``` [^4] ### 资源动态调整 支持在不重启Pod的情况下调整CPU/内存资源限制(需容器运行时如Containerd ≥1.6.9支持),通过修改`resources`字段并定义`resizePolicy`实现原地伸缩 [^5]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值