1. 程式人生 > >使用Harbor配置Kubernetes私有映象倉庫

使用Harbor配置Kubernetes私有映象倉庫

Harbor使用了基於角色的訪問控制策略,當從Harbor中拉去映象的時候,首先要進行身份認證,認證通過後才可以拉取映象。在命令行模式下,需要先執行docker login,登陸成功後,才可以docker pull。

通常情況下,在私有云環境中使用kubernetes時,我們要從docker registry拉取映象的時候,都會給docker daemo配置–insecure-registry屬性來告訴docker daemo我們所使用的docker registry是可信的,這樣才能從私有的docker registry中拉取映象,但是如果要使用Harbor作為kubernetes的映象倉庫的話,這種方式就不適用了,下面讓我們看看如何來使用Harbor作為kubernetes的映象倉庫。

實現探索

我們在命令行方式下,輸入docker login登陸成功後,會在/root/.docker/目前下生成一個config.json檔案。開啟後可以看到如下的內容:

{
"auths": {
"reg.skycloud.com": {
"auth": "YWRtaW46cGFzc3dvcmQ="
}
}
}

這裡的內容就是docker daemon用來與docker registry進行認證的,其中,reg.skycloud.com是docker registry server的地址,auth部分是加密後的認證資訊,格式為:username:password,當輸入命令docker pull的時候,docker daemon會獲取該檔案中的資訊,並將auth部分的資訊攜帶在請求的頭部向docker registry server傳送請求,docker registry server對請求認證通過後,就可以開始拉取映象了,這部分的互動細節請參閱《從原始碼看Docker Registry v2中的Token認證實現機制》。那麼如何使kubernetes通過docker registry的認證來獲取映象呢?通過翻閱kubernetes的相關文件,我們發現,kubernetes提供了2個物件:secret和serviceAccount,我們先來看下官方給出的定義:

– secret:是一個儲存少量諸如密碼,token等敏感資料的物件,採用secret方式儲存可以獲取更好的控制力和減少敏感資料意外暴露的風險。secret物件的用途有:作為檔案掛載到容器中或者是在kubelet拉取映象時使用。

– serviceAccount:為執行在pod中的程序提供身份資訊。

看到了嗎,kubernetes已經告訴了我們問題的答案。沒錯,使用secret和serviceAccount就可以實現kubernetes在建立pod的時候通過docker registry server的認證來拉取映象。下面我們看下如何來使用這2個物件。

建立secret

a. 使用命令列:

kubectl create secret docker-registry SECRET_NAME --namespace=NAME_SPACE \ --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER \ --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL

其中,
docker-server 為通過docker login登陸時輸入的地址
docker-username 為登陸時的賬號
docker-password 為登陸時的密碼
docker-email 為註冊的賬號時的郵箱地址

建立成功後,我們看一下secret的內容:

使用Harbor配置Kubernetes私有映象倉庫使用Harbor配置Kubernetes私有映象倉庫

圖中data部分,dockerconfigjson為data的型別,後面的一長串即為進過base64加密的內容,通過解密後,你就會發現,裡面的內容基本上就是/root/.docker/config.json中的內容。

b. 定義yaml檔案:

使用Harbor配置Kubernetes私有映象倉庫使用Harbor配置Kubernetes私有映象倉庫

其中的type必須是:kubernetes.io/dockerconfigjson

建立serviceAccount

使用Harbor配置Kubernetes私有映象倉庫使用Harbor配置Kubernetes私有映象倉庫

在pod中使用

使用Harbor配置Kubernetes私有映象倉庫使用Harbor配置Kubernetes私有映象倉庫

讓Harbor為kubernetes提供映象服務

首先在Harbor中建立建立使用者,專案,將專案設定為私有,將建立的使用者加入到專案中,設定使用者的角色為開發者或者為專案管理員。確保該賬戶具有拉取該倉庫映象的許可權。

其次,按照上述的方式建立secret和serviceAccount,其中secret中的使用者名稱、密碼和郵箱地址資訊為在Harbor中建立的使用者的資訊。

這樣配置後就可以讓kubernetes從Harbor拉取映象了。

總結

Harbor提供了基於角色的訪問控制機制,並通過專案來對映象進行組織和訪問許可權的控制。kubernetes中通過namespace來對資源進行隔離,在企業級應用場景中,通過將兩者進行結合可以有效將kubernetes使用的映象資源進行管理和訪問控制,增強映象使用的安全性。尤其是在多租戶場景下,可以通過租戶、namespace和專案相結合的方式來實現對多租戶映象資源的管理和訪問控制。
使用Harbor配置Kubernetes私有映象倉庫使用Harbor配置Kubernetes私有映象倉庫

相關推薦

使用Harbor配置Kubernetes私有映象倉庫

Harbor使用了基於角色的訪問控制策略,當從Harbor中拉去映象的時候,首先要進行身份認證,認證通過後

Dockerhub+Github構建kubernetes私有映象倉庫

部分kubernets映象存放在google映象倉庫中,由於無法訪問外網,這裡可以使用Docker Hub的自動構建功能將google映象構建到個人dockerhub倉庫中。 1. github建立倉庫 登入github,這裡建立一個名為kubernetes-images的倉庫,

使用 harbor 搭建 docker 私有映象倉庫

$ ./prepare .... The configuration files are ready, please use docker-compose to start the service. $ docker-compose up Starting deploy_log_1 Starting depl

使用HTTPS訪問Docker私有映象倉庫Harbor配置方法

由於Harbor未附帶任何證書,因此預設情況下使用HTTP來提供登錄檔請求。 但是,強烈建議為任何生產環境啟用安全性。 Harbor有一個Nginx例項作為所有服務的反向代理,所以可以使用prepare指令碼配置Nginx以啟用https。 考慮到Docker服務訪問Registry已經是

Kubernetes如何使用Harbor作為私有映象倉庫_Kubernetes中文社群

概述 Harbor使用了基於角色的訪問控制策略,當從Harbor中拉去映象的時候,首先要進行身份認證,認證通過後才可以拉取映象。在命令列模式下,需要先執行docker login,登陸成功後,才可以docker pull。通常情況下,在私有云環境中使用kubernetes時,我們要從docke

harbor私有映象倉庫的搭建與使用

harbor私有映象倉庫,私有倉庫有兩種,一種是harbor,一種是小型的私有倉庫,harbor有兩種模式,一種是主 從,一種是高可用倉庫,專案需求,需要兩臺伺服器,都有docker。ldap許可權統一管理,harbor可以基於角色的訪問控制來管理,harbor可以圖形化使用者介面,使用者可以通過瀏覽器,檢索

Harbor私有映象倉庫

上圖配置為工作環境   特別注意:win10現在不允許使用私有ca證書,到時登入瀏覽器會失敗,可以選用火狐瀏覽器。 建立自己的CA證書 上面從上到下分別表示:中國、北京、北京、公司名雲端計算、證書繫結的域名   生成證書籤名請求 上面可以設定密

容器技術之Docker私有映象倉庫harbor

  前文我們聊到了docker的私有映象倉庫docker-distribution的搭建和簡單的使用,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/13058338.html;從前文的搭建和使用過程來看,docker-distribution搭建的倉庫非常簡陋,它甚至連

docker 建立私有映象倉庫

mkdir -p /registry/public/repos docker run --name register -p 5000:5000 -v /registry/public/repos:/var/lib/registry -d registry  開放埠 fire

【Docker】(4)搭建私有映象倉庫

【Docker】(4)搭建私有映象倉庫 說明 1、 這裡是通過阿里雲,搭建Docker私有映象倉庫。 2、 這裡打包的映象是從官網拉下來的,並不是自己專案建立的新映象,主要測試功能 一、搭建過程 首先進入阿里雲建立映象倉庫: https://dev.aliyun.com/search.h

安裝Docker-ce以及Dockerfile和私有映象倉庫registry搭建

轉載請表明出處 https://blog.csdn.net/Amor_Leo/article/details/84963324 謝謝 安裝Docker-ce私有映象倉庫registry搭建 安裝Docker-ce Docker基本命令 do

docker 私有映象倉庫搭建

如果大家在操作的時候發現本文中的問題,敬請留言,爭取把這邊文章弄成可用性比較高的文章!!!!!!!!!!!!!! 我的環境相關設定如下 環境:centos7 IP地址:10.211.55.30 dockere版本:1.10.3 映象倉庫:v2 首先在10.211.5

在CentOS 7.2上搭建Docker私有映象倉庫

鑑於國內pull映象的速度較慢,很有必要搭建docker私有或者本地映象倉庫。 安裝docker # yum -y install docker # systemctl start docker && systemctl en

基於Nexus構建私有映象倉庫_Kubernetes中文社群

 1、 安裝Nexus Nexus是Sonatype提供的倉庫管理平臺,Nuexus Repository OSS3能夠支援Maven、npm、Docker、YUM、Helm等格式資料的儲存和釋出;並且能夠與Jekins、SonaQube和Eclipse等工具進行整合。Nexus支援作為宿主和

Docker 1.7.1版本pull私有映象倉庫報錯,V1,V2等

注意:如下解決方案,只能解決pull的問題,不能解決push的問題,方案請參考:解決docker push問題 Docker 1.7版本和Docker CE的配置檔案的位置是不同的 Docker 1.7版本 /etc/sysconfig/docke

使用官方 docker registry 搭建私有映象倉庫及部署 web ui

本文介紹本人在 Centos 7.1 上的搭建過程 private docker registry 的全過程,參考自這篇官網文件,英語好的可以直接看官網文件,裡面的內容更詳細,涉及更多原理性的東西,而本文側重於動手實踐。 本文不介紹 docker 的基礎概念,也不介紹為什麼

乾貨|Nginx+Portus+Registry搭建私有映象倉庫

Portus介紹 Portus是SUSE為Docker Registry(v2)開發的一款開源的使用者前端和授權管理軟體。提供企業私有Docker Registry的使用者和許可權管理功能,並提供Web介面使得管理員能夠更加簡易的進行管理操作。可以簡單的理解為通過Por

Eclipse工程中配置Maven國內映象倉庫

從官網上下載jar檔案非常慢,可以通過修改pom.xml來設定國內的映象倉庫,提高下載速度。 pom.xml增加下列配置項: <repositories> <repository> <id>repo-mirror</i

Docker Registry 私有映象倉庫批量清理映象

Docker 私有映象倉庫批量清理映象 前言 在頻繁長期使用映象倉庫後,由於映象倉庫清理映象比較費勁,業內也沒有一個比較好的清理方案,官方提供的映象倉庫清理也比較費勁,導致 Docker 映象倉庫越積越大,嚴重消耗磁碟空間。基於該現狀,推薦如下方案。 環境 Harb

搭建docker私有映象倉庫及部署 web管理端

1.安裝centos和docker   centos核心版本在3.10以上(推薦centos7以上),docker在1.6版本以上,具體安裝docker和啟動服務略過 2.官方獲取docker registry映象並啟動   #dockerpull registry 拉