/ CENTOS, KUBERNETES

Centos 9 Kubernetes 1.28.2 配置 Harbor 2.4.1

说明

由于Kubernetes 1.24 以后使用containerd管理镜像 所以配置信息也和以前不一样 主要在于对containerd配置文件的设置

Harbor安装

安装教程

修改containerd配置文件

以下192.168.186.132替换为Harbor的域名或IP

修改containerd存在两种修改方法 第一种为添加hosts配置文件 第二种直接修改配置文件 两种修改方法不兼容只能选择一种 推荐第一种

方法1:添加hosts.toml

# 编辑/etc/containerd/config.toml文件,找到 [plugins.“io.containerd.grpc.v1.cri”.registry] 在下方添加
[root@k8s-master ~]# vi /etc/containerd/config.toml
config_path = "/etc/containerd/certs.d"
# 创建目录
[root@k8s-master ~]# mkdir -p /etc/containerd/certs.d/192.168.186.132
# 生成认证参数
[root@k8s-master ~]# echo -n "admin:Harbor12345" | base64
YWRtaW46SGFyYm9yMTIzNDU=
# 添加内容
[root@k8s-master ~]# cat>/etc/containerd/certs.d/192.168.186.132/hosts.toml << EOF
server ="http://192.168.186.132"
[host."http://192.168.186.132"]
capabilities = ["pull", "resolve", "push"]
skip_verify = true
[host."http://192.168.186.132".header]
authorization = "Basic YWRtaW46SGFyYm9yMTIzNDU="
EOF

方法2:修改config.toml方法(此方法不建议使用)

[root@k8s-master ~]# vi /etc/containerd/config.toml
    [plugins."io.containerd.grpc.v1.cri".registry]
# config_path不能设置
      config_path = ""
      [plugins."io.containerd.grpc.v1.cri".registry.auths]

      [plugins."io.containerd.grpc.v1.cri".registry.configs]
# 跳过Https验证
        [plugins."io.containerd.grpc.v1.cri".registry.configs."192.168.186.132".tls]
          insecure_skip_verify = true
# 配置登录信息
        [plugins."io.containerd.grpc.v1.cri".registry.configs."192.168.186.132".auth]
          username = "admin"
          password = "Harbor12345"
      [plugins."io.containerd.grpc.v1.cri".registry.headers]
    
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."192.168.186.132"]
          endpoint = ["http://192.168.186.132"]

重启containerd

systemctl restart containerd

验证配置

# 拉取镜像(kubernetesui/dashboard是harbor的本地镜像)
crictl pull 192.168.186.132/kubernetesui/dashboard:v2.7.0

crictl images

alt