一:前言
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
CA证书签名请求文件ca-csr.json
生成CA证书和密钥
cfssl gencert -initca ca-csr.json | cfssljson -bare ca
2.生成harbor的证书和密钥
签名请求文件 harbor-csr.json
生成证书和密钥
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
desktop是在harbor中创建好的用户,并且已经关联到项目上。
4.创建测试busybox Pod
busybox.yaml
kubectl create -f busybox.yaml 成功从Harbor私有镜像库pull镜像busybox:latest,并创建Pod
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
点击(此处)折叠或打开
- {
- "signing": {
- "default": {
- "expiry": "87600h"
- },
- "profiles": {
- "kubernetes": {
- "usages": [
- "signing",
- "key encipherment",
- "server auth",
- "client auth"
- ],
- "expiry": "87600h"
- }
- }
- }
- }
点击(此处)折叠或打开
- {
- "CN": "kubernetes",
- "key": {
- "algo": "rsa",
- "size": 2048
- },
- "names": [
- {
- "C": "CN",
- "L": "BeiJing",
- "ST": "BeiJing",
- "O": "k8s",
- "OU": "System"
- }
- ]
- }
cfssl gencert -initca ca-csr.json | cfssljson -bare ca
2.生成harbor的证书和密钥
签名请求文件 harbor-csr.json
点击(此处)折叠或打开
- {
- "CN": "harbor",
- "hosts": [
- "127.0.0.1",
- "120.79.156.135"
- ],
- "key": {
- "algo": "rsa",
- "size": 2048
- },
- "names": [
- {
- "C": "CN",
- "ST": "BeiJing",
- "L": "BeiJing",
- "O": "k8s",
- "OU": "System"
- }
- ]
- }
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
点击(此处)折叠或打开
- kubectl create secret docker-registry registry-secret --namespace=default --docker-server=harborIp --docker-username=desktop --docker-password=Weinongopde --docker-email=273936024@qq.com
4.创建测试busybox Pod
busybox.yaml
点击(此处)折叠或打开
- apiVersion: v1
- kind: Pod
- metadata:
- name: busybox
- namespace: default
- spec:
- containers:
- - image: 120.79.156.135/desktop/busybox:latest
- command:
- - sleep
- - "3600"
- imagePullPolicy: IfNotPresent
- name: busybox
- restartPolicy: Always
- imagePullSecrets:
- - name: registry-secret
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28624388/viewspace-2153568/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28624388/viewspace-2153568/