Kubernates集成Harbor的主要思路及操作

本文介绍了Kubernates集成Harbor的主要思路及操作。

文章目录

        • 前置工作
        • 主要思路
        • 详细步骤如下
          • Step1、在node上执行 docker login 登录Harbor
          • Step2、生成秘钥(secret),命名为`secret-harbor-dev`
          • Step3、查看秘钥
          • Step4、yaml文件中通过`imagePullSecrets`指定拉取镜像操作使用的秘钥

前置工作

  1. 安装Kubernates集群
  2. 安装Harbor

主要思路

  • 操作k8s node的docker,虽然可以从harbor仓库pull镜像。但是k8s创建pod时,仍然无法从harbor仓库pull。这时需要根据harbor登录用户信息,在k8s中创建一个资源类型是Secret(私钥)
  • 在yaml文件中添加imagePullSecrets参数,指定一个或多个Secret,用于从远程仓库pull镜像时提交用户信息进行认证。
  • Harbor项目与用户:默认的项目是library,默认为public公开的,即harbor所有用户都可以pull。当然你也可以根据需要创建自己的项目,并且强烈建议将项目设为private私有的,这样只有该项目下的成员(默认包含admin用户)才能访问。
    成员的角色可以有三种
    - Master:项目管理员,对镜像有上传、下载、删除和查看的权限。
    - Developer:开发人员,只能查看、上传和下载镜像权限。
    - Guest :访客,只能查看和下载镜像的权限。
    - Limited Guest 受限的访客

详细步骤如下

Step1、在node上执行 docker login 登录Harbor
# admin             -	harbor的用户名
# Harbor12345       -	harbor的密码
# harbor.domain.com -	harbor仓库的域名/IP
docker login -uadmin -pHarbor12345 harbor.domain.com

执行命令查看登录状态:

[root@dev ~]# cat ~/.docker/config.json 
{
        "auths": {
                "harbor.domain.com": {
                        "auth": "Y2N4...MjM="
                }
        }
}   
Step2、生成秘钥(secret),命名为secret-harbor-dev
# 参数说明:
# secret-harbor     - 这是密钥的键名称, 可自行定义
# --docker-server   - 指定docker仓库地址
# --docker-username - 指定docker仓库账号
# --docker-password - 指定docker仓库密码
# -n - 指定namespace,默认为default
kubectl create secret docker-registry secret-harbor \
    --docker-server=harbor.domain.com \
    --docker-username=admin \
    --docker-password=Harbor12345
Step3、查看秘钥
[root@dev244 ~]# kubectl get secret
NAME            TYPE                             DATA   AGE
secret-harbor   kubernetes.io/dockerconfigjson   1      22s
Step4、yaml文件中通过imagePullSecrets指定拉取镜像操作使用的秘钥
# imagePullSecrets - 声明拉取镜像时需要指定密钥,值为密钥的名称
imagePullSecrets:
- name: secret-harbor

注意:
1)在定义Deployment的yaml文件中,要注意参数层级,应设置在spec.template.spec.imagePullSecrets
2)当前资源的namespace必须与密钥的一致。

这样,在执行yaml文件时,node节点上的docker就可以使用secret-harbor通过Harbor认证,从Harbor拉取镜像了。

你可能感兴趣的:(kubernates)