kubernetes实践之二十八:使用Harbor作为私有镜像仓库

一:前言
Harbor使用了基于角色的访问控制策略,当从Harbor中拉去镜像的时候,首先要进行身份认证,认证通过后才可以拉取镜像。在命令行模式下,需要先执行docker login,登陆成功后,才可以docker pull。通常情况下,在私有云环境中使用kubernetes时,我们要从docker registry拉取镜像的时候,都会给docker daemo配置–insecure-registry属性来告诉docker daemo我们所使用的docker registry是可信的,这样才能从私有的docker registry中拉取镜像,但是如果要使用Harbor作为kubernetes的镜像仓库的话,这种方式就不适用了,下面让我们看看如何来使用Harbor作为kubernetes的镜像仓库。
二:Harbor开启HTTPS配置
1.生成ca证书和密钥文件(采用与部署Kubernetes时相同的方式
CA 配置文件ca-config.json

点击(此处)折叠或打开

  1. {
  2. "signing": {
  3.   "default": {
  4.     "expiry": "87600h"
  5.    },
  6.   "profiles": {
  7.      "kubernetes": {
  8.        "usages": [
  9.           "signing",
  10.           "key encipherment",
  11.           "server auth",
  12.           "client auth"
  13.         ],
  14.         "expiry": "87600h"
  15.        }
  16.     }
  17.   }
  18. }
CA证书签名请求文件ca-csr.json

点击(此处)折叠或打开

  1. {
  2.     "CN": "kubernetes",
  3.     "key": {
  4.         "algo": "rsa",
  5.         "size": 2048
  6.     },
  7.     "names": [
  8.         {
  9.             "C": "CN",
  10.             "L": "BeiJing",
  11.             "ST": "BeiJing",
  12.             "O": "k8s",
  13.             "OU": "System"
  14.         }
  15.     ]
  16. }
生成CA证书和密钥
cfssl gencert -initca ca-csr.json | cfssljson -bare ca

2.生成harbor的证书和密钥

签名请求文件 harbor-csr.json

点击(此处)折叠或打开

  1. {
  2.   "CN": "harbor",
  3.   "hosts": [
  4.     "127.0.0.1",
  5.     "120.79.156.135"
  6.   ],
  7.   "key": {
  8.     "algo": "rsa",
  9.     "size": 2048
  10.   },
  11.   "names": [
  12.     {
  13.       "C": "CN",
  14.       "ST": "BeiJing",
  15.       "L": "BeiJing",
  16.       "O": "k8s",
  17.       "OU": "System"
  18.     }
  19.   ]
  20. }
生成证书和密钥
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes harbor-csr.json | cfssljson -bare harbor

3.harbor参数配置( harbor.cfg )
ui_url_protocol = https
ssl_cert = /mnt/harbor/ssl/harbor.pem
ssl_cert_key = /mnt/harbor/ssl/harbor-key.pem
verify_remote_cert = off

4.重新启动harbor
docker-compose down
./install.sh

启动成功后,可以通过https://ip 访问UI界面,通过admin进行登录

三:Kubernetes配置Harbor私有镜像仓库

1.harbor ca证书复制
在kUbernetes的所有node节点创建文件目录 
mkdir -p /etc/docker/certs.d/harborIp(harbor访问IP地址)
将前面harbor使用的ca.pem 复制到/etc/docker/certs.d/harborIp
cp ca.pem /etc/docker/certs.d/harborIp/ca.crt

2.验证ca证书是否可用
通过  docker login harborIp 验证是否能够成功登录harbor. 确保不出现错误:x509: certificate signed by unknown authority

3.kubernetes 创建secret

点击(此处)折叠或打开

  1. kubectl create secret docker-registry registry-secret --namespace=default --docker-server=harborIp --docker-username=desktop --docker-password=Weinongopde --docker-email=273936024@qq.com
desktop是在harbor中创建好的用户,并且已经关联到项目上。

4.创建测试busybox Pod

busybox.yaml

点击(此处)折叠或打开

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4.   name: busybox
  5.   namespace: default
  6. spec:
  7.   containers:
  8.   - image: 120.79.156.135/desktop/busybox:latest
  9.     command:
  10.       - sleep
  11.       - "3600"
  12.     imagePullPolicy: IfNotPresent
  13.     name: busybox
  14.   restartPolicy: Always
  15.   imagePullSecrets:
  16.   - name: registry-secret
kubectl create -f busybox.yaml  成功从Harbor私有镜像库pull镜像busybox:latest,并创建Pod

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28624388/viewspace-2153568/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28624388/viewspace-2153568/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值