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
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- containerd 配置使用私有映象倉庫 harborAI
- 容器技術之Docker私有映象倉庫harborDocker
- Harbor-私有映象倉庫的安裝部署
- 微服務探索之路03篇-docker私有倉庫Harbor搭建+Kubernetes(k8s)部署私有倉庫的映象微服務DockerK8S
- kubernetes實踐之二十七:Harbor
- k8s 使用 containerd 作為容器執行時拉取 http 的 harbor 私有倉庫映象K8SAIHTTP
- 搭建Harbor 映象倉庫
- 基於kubernetes1.11安裝Harbor私有映象庫(三)
- Docker搭建Harbor私有倉庫Docker
- 使用Harbor作為Rainbond預設容器映象倉庫,擴充套件Rainbond映象管理能力AI套件
- CentOS部署Harbor映象倉庫CentOS
- Docker私有倉庫之Harbor神器Docker
- kubernetes實踐之二十九:Kubernetes+Harbor+Gitlab+Jenkins+Maven DevOpsGitlabJenkinsMavendev
- harbor私有映象安裝和使用
- Harbor倉庫映象掃描原理
- 私有化輕量級持續整合部署方案--06-私有映象倉庫-Harbor
- Docker搭建私有倉庫Registry&HarborDocker
- Docker-------私有倉庫 Harbor 的搭建Docker
- 配置pod拉取harbor容器映象倉庫私有映象:secret儲存賬號密碼密碼
- Docker倉庫之Registry私有映象倉庫的搭建與使用Docker
- Docker倉庫之Harbor企業級映象倉庫的搭建與使用Docker
- Docker企業級映象倉庫HarborDocker
- Docker--harbor私有倉庫部署與管理Docker
- Harbor實現容器映象倉庫的管理和運維運維
- 手把手教你搭建Docker私有倉庫HarborDocker
- 私有化倉庫的 GO 模組使用實踐Go
- harbor映象倉庫證書過期問題
- Harbor倉庫搭建及使用
- kubernetes的Harbor映象私庫線上部署(二)
- Jenkins打Docker映象推送到私有倉庫JenkinsDocker
- 部署docker-consul群集,Harbor構建Docker私有倉庫Docker
- 【Harbor學習筆記】-教你快速搭建Docker私有倉庫筆記Docker
- 【實踐】Docker for Windows 製作tomcat 映象並上傳至 docker 倉庫DockerWindowsTomcat
- 容器映象倉庫-Harbor的安裝及踩坑
- go module,使用gitlab私有倉庫作為專案的依賴包GoGitlab
- k8s使用secret從私有倉庫拉取映象K8S
- 用Docker搭建cnpm私有倉庫以及私有倉庫的使用DockerNPM
- kubernetes實踐之五十八:CronJob