helm安裝harbor + nerdctl 制作push 鏡像

參考 文章:Helm部署Harbor_helm harbor_風向決定發型丶的博客-CSDN博客

安裝好后使用 nerd

containerd對接harbor_containerd 容器 insecure-registries 配置_檸是檸檬的檬的博客-CSDN博客?

推送鏡像??Containerd 對接私有鏡像倉庫 Harbor - 知乎?

接下來我們來測試下如何在 containerd 中使用 Harbor 鏡像倉庫。

首先我們需要將私有鏡像倉庫配置到 containerd 中去,修改 containerd 的配置文件?/etc/containerd/config.toml

      [plugins."io.containerd.grpc.v1.cri".registry.configs][plugins."io.containerd.grpc.v1.cri".registry.configs."core.harbor.domain".tls]insecure_skip_verify = true[plugins."io.containerd.grpc.v1.cri".registry.configs."core.harbor.domain".auth]username = "admin"password = "Harbor12345"[plugins."io.containerd.grpc.v1.cri".registry.headers][plugins."io.containerd.grpc.v1.cri".registry.mirrors][plugins."io.containerd.grpc.v1.cri".registry.mirrors."core.harbor.domain"]endpoint = ["https://core.harbor.domain"]

在?plugins."io.containerd.grpc.v1.cri".registry.configs?下面添加對應?core.harbor.domain?的配置信息,insecure_skip_verify = true?表示跳過安全校驗,然后通過?plugins."io.containerd.grpc.v1.cri".registry.configs."core.harbor.domain".auth?配置 Harbor 鏡像倉庫的用戶名和密碼。

配置完成后重啟 containerd:

$ systemctl restart containerd

現在我們使用?nerdctl?來進行登錄:

$ nerdctl login -u admin core.harbor.domain
Enter Password:
ERRO[0004] failed to call tryLoginWithRegHost            error="failed to call rh.Client.Do: Get \"https://harbor.k8s.local/v2/\": x509: certificate signed by unknown authority" i=0
FATA[0004] failed to call rh.Client.Do: Get "https://harbor.k8s.local/v2/": x509: certificate signed by unknown authority
[root@master1 ~]#

可以看到還是會報證書相關的錯誤,只需要添加一個?--insecure-registry?參數即可解決該問題:

$ nerdctl login -u admin --insecure-registry core.harbor.domain
Enter Password:
WARN[0004] skipping verifying HTTPS certs for "harbor.k8s.local"
WARNING: Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded

制作一個es鏡像:

在?Releases · medcl/elasticsearch-analysis-ik · GitHub?下載 es 的ik插件

unzip xx -d ik

FROM docker.elastic.co/elasticsearch/elasticsearch:8.8.2
# ik 下載地址 https://github.com/medcl/elasticsearch-analysis-ik/releases
COPY ik /usr/share/elasticsearch/plugins/ik
# COPY pinyin /usr/share/elasticsearch/plugins/pinyin

然后將該鏡像重新 tag 成 Harbor 上的鏡像地址:

harbor新增一個項目 es

?

nerdctl tag elasticsearch:latest core.harbor.domain/elasticsearch:latest

再執行 push 命令即可將鏡像推送到 Harbor 上:

nerdctl -n k8s.io  push --insecure-registry core.harbor.domain/es/elasticsearch:latest
$ nerdctl push --insecure-registry harbor.k8s.local/library/busybox:1.35.0
INFO[0000] pushing as a reduced-platform image (application/vnd.docker.distribution.manifest.list.v2+json, sha256:29fe0126b13c3ea2641ca42c450fa69583d212dbd9b7b623814977b5b0945726)
WARN[0000] skipping verifying HTTPS certs for "harbor.k8s.local"
index-sha256:29fe0126b13c3ea2641ca42c450fa69583d212dbd9b7b623814977b5b0945726:    done           |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:8cde9b8065696b65d7b7ffaefbab0262d47a5a9852bfd849799559d296d2e0cd: done           |++++++++++++++++++++++++++++++++++++++|
config-sha256:d8c0f97fc6a6ac400e43342e67d06222b27cecdb076cbf8a87f3a2a25effe81c:   done           |++++++++++++++++++++++++++++++++++++++|
elapsed: 6.9 s                                                                    total:  2.2 Ki (333.0 B/s)

推送完成后,我們就可以在 Portal 頁面上看到這個鏡像的信息了:

鏡像 push 成功,同樣可以測試下 pull:

$ nerdctl rmi harbor.k8s.local/library/busybox:1.35.0
Untagged: harbor.k8s.local/library/busybox:1.35.0@sha256:8c40df61d40166f5791f44b3d90b77b4c7f59ed39a992fd9046886d3126ffa68
Deleted: sha256:cf4ac4fc01444f1324571ceb0d4f175604a8341119d9bb42bc4b2cb431a7f3a5
$ nerdctl rmi busybox:1.35.0
Untagged: docker.io/library/busybox:1.35.0@sha256:8c40df61d40166f5791f44b3d90b77b4c7f59ed39a992fd9046886d3126ffa68
Deleted: sha256:cf4ac4fc01444f1324571ceb0d4f175604a8341119d9bb42bc4b2cb431a7f3a5
$ nerdctl pull --insecure-registry  harbor.k8s.local/library/busybox:1.35.0
WARN[0000] skipping verifying HTTPS certs for "harbor.k8s.local"
harbor.k8s.local/library/busybox:1.35.0:                                          resolved       |++++++++++++++++++++++++++++++++++++++|
index-sha256:29fe0126b13c3ea2641ca42c450fa69583d212dbd9b7b623814977b5b0945726:    done           |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:8cde9b8065696b65d7b7ffaefbab0262d47a5a9852bfd849799559d296d2e0cd: done           |++++++++++++++++++++++++++++++++++++++|
config-sha256:d8c0f97fc6a6ac400e43342e67d06222b27cecdb076cbf8a87f3a2a25effe81c:   done           |++++++++++++++++++++++++++++++++++++++|
layer-sha256:fc0cda0e09ab32c72c61d272bb409da4e2f73165c7bf584226880c9b85438e63:    done           |++++++++++++++++++++++++++++++++++++++|
elapsed: 0.7 s                                                                    total:  2.2 Ki (3.2 KiB/s)$ nerdctl images
REPOSITORY                          TAG       IMAGE ID        CREATED           PLATFORM       SIZE         BLOB SIZE
harbor.k8s.local/library/busybox    1.35.0    29fe0126b13c    17 seconds ago    linux/amd64    1.2 MiB      757.7 KiB

但是上面我們也可以看到單獨使用 containerd 比如通過 nerdctl 或者 ctr 命令訪問 Harbor 鏡像倉庫的時候即使跳過證書校驗或者配置上 CA 證書也是會出現證書錯誤的,這個時候我們需要去跳過證書校驗或者指定證書路徑才行。

# 解決辦法1.指定 -k 參數跳過證書校驗。
$ ctr images pull --user admin:Harbor12345 -k harbor.k8s.local/library/busybox:1.35.0# 解決辦法2.指定CA證書、Harbor 相關證書文件路徑。
$ ctr images pull --user admin:Harbor12345 --tlscacert ca.crt harbor.k8s.local/library/busybox:1.35.0

但是如果直接使用?ctrctl?則是有效的:

$ crictl pull harbor.k8s.local/library/busybox@sha256:29fe0126b13c3ea2641ca42c450fa69583d212dbd9b7b623814977b5b0945726
Image is up to date for sha256:d8c0f97fc6a6ac400e43342e67d06222b27cecdb076cbf8a87f3a2a25effe81c

如果想要在 Kubernetes 中去使用那么就需要將 Harbor 的認證信息以 Secret 的形式添加到集群中去:

$ kubectl create secret docker-registry harbor-auth --docker-server=https://harbor.k8s.local --docker-username=admin --docker-password=Harbor12345 --docker-email=info@ydzs.io -n default

然后我們使用上面的私有鏡像倉庫來創建一個 Pod:

# test-harbor.yaml
apiVersion: v1
kind: Pod
metadata:name: harbor-registry-test
spec:containers:- name: testimage: harbor.k8s.local/library/busybox:1.35.0args:- sleep- "3600"imagePullSecrets:- name: harbor-auth

創建后可以查看該 Pod 是否能正常獲取鏡像:

$ kubectl describe pod harbor-registry-test
Name:         harbor-registry-test
Namespace:    default
Priority:     0
Node:         node1/192.168.0.107
Start Time:   Thu, 07 Jul 2022 18:52:39 +0800
# ......
Events:Type    Reason     Age   From               Message----    ------     ----  ----               -------Normal  Scheduled  10s   default-scheduler  Successfully assigned default/harbor-registry-test to node1Normal  Pulling    10s   kubelet            Pulling image "harbor.k8s.local/library/busybox:1.35.0"Normal  Pulled     5s    kubelet            Successfully pulled image "harbor.k8s.local/library/busybox:1.35.0" in 4.670528883sNormal  Created    5s    kubelet            Created container testNormal  Started    5s    kubelet            Started container test

到這里證明上面我們的私有鏡像倉庫搭建成功了,大家可以嘗試去創建一個私有的項目,然后創建一個新的用戶,使用這個用戶來進行 pull/push 鏡像,Harbor 還具有其他的一些功能,比如鏡像復制,Helm Chart 包托管等等,大家可以自行測試,感受下 Harbor 和官方自帶的 registry 倉庫的差別。

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38010.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38010.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38010.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

麒麟系統相關

創建虛擬機 鏡像下載地址 選擇合適的鏡像,進入引導后注意不要選擇默認的第一條,選擇第二條進入安裝程序。 root密碼修改 使用命令 sudo passwd root 開啟ssh 配置好網絡后發現能ping通,但無法ssh連接,ps -ef | grep ssh 得…

01 qt快速入門

一 qt介紹 1.基本概念 1991年由Qt Company(奇趣)開發的跨平臺C++圖形用戶界面應用程序開發框架,GUI程序和非GUI程序。優點:一套源碼在不同的平臺通過不同的編譯器進行編譯,就可以運行到該平臺上目標機。面向對象的封裝機制來對其接口封裝。 GUI —圖形用戶界面(Graphic…

軟件測試面試題【2023整理版(含答案)】

01、您所熟悉的測試用例設計方法都有哪些?請分別以具體的例子來說明這些方法在測試用例設計工作中的應用。 答:有黑盒和白盒兩種測試種類,黑盒有等價類劃分方法 邊界值分析方法 錯誤推測方法 因果圖方法 判定表驅動分析方法 正交實驗設…

Vue組件之間的傳值匯總

組件之間的傳值 1、父傳子 props 2、父傳子 slot 3、父傳子 不建議用 attrs 4、 子傳父 ref 5、子傳父 emit 6、povide/inject只能在setup的時候用。 7、利用vuex和pinia去實現數據的交互 1、實現代碼App.vue <script setup>import TestProps from ./components/T…

stable-diffusion 模型效果+prompt

摘自個人印象筆記&#xff0c;圖不完整可查看原筆記&#xff1a;https://app.yinxiang.com/fx/55cda0c6-2af5-4d66-bd86-85da79c5574ePrompt運用規則及技巧 &#xff1a; 1. https://publicprompts.art/&#xff08;最適用于OpenArt 線上模型 https://openart.ai/&#xff09;…

【Vue-Router】別名

后臺返回來的路徑名不合理&#xff0c;但多個項目在使用中了&#xff0c;不方便改時可以使用別名。可以有多個或一個。 First.vue <template><h1>First Seciton</h1> </template>Second.vue&#xff0c;Third.vue代碼同理 UserSettings.vue <tem…

R語言生存分析(機器學習)(2)——Enet(彈性網絡)

彈性網絡&#xff08;Elastic Net&#xff09;:是一種用于回歸分析的統計方法&#xff0c;它是嶺回歸&#xff08;Ridge Regression&#xff09;和lasso回歸&#xff08;Lasso Regression&#xff09;的結合&#xff0c;旨在克服它們各自的一些限制。彈性網絡能夠同時考慮L1正則…

mysql 索引 區分字符大小寫

mysql 建立索引&#xff0c;特別是unique索引&#xff0c;是跟字符集、字符排序規則有關的。 對于utf8mb4_0900_ai_ci來說&#xff0c;0900代表Unicode 9.0的規范&#xff0c;ai表示accent insensitivity&#xff0c;也就是“不區分音調”&#xff0c;而ci表示case insensitiv…

wsl2安裝docker引擎(Install Docker Engine on Debian)

安裝 1.卸載舊版本 在安裝 Docker 引擎之前&#xff0c;您必須首先確保卸載任何沖突的軟件包。 發行版維護者在他們的存儲庫。必須先卸載這些軟件包&#xff0c;然后才能安裝 Docker 引擎的正式版本。 要卸載的非官方軟件包是&#xff1a; docker.iodocker-composedocker-…

問道管理:旅游酒店板塊逆市拉升,桂林旅游、華天酒店漲停

游覽酒店板塊14日盤中逆市拉升&#xff0c;到發稿&#xff0c;桂林游覽、華天酒店漲停&#xff0c;張家界漲超8%&#xff0c;君亭酒店漲超5%&#xff0c;眾信游覽、云南游覽漲逾4%。 音訊面上&#xff0c;8月10日&#xff0c;文旅部辦公廳發布康復出境團隊游覽第三批名單&#…

Profibus-DP轉modbus RTU網關modbus rtu和tcp的區別

捷米JM-DPM-RTU網關在Profibus總線側實現主站功能&#xff0c;在Modbus串口側實現從站功能。可將ProfibusDP協議的設備&#xff08;如&#xff1a;EH流量計、倍福編碼器等&#xff09;接入到Modbus網絡中&#xff1b;通過增加DP/PA耦合器&#xff0c;也可將Profibus PA從站接入…

【計算機網絡】Udp詳解

前言 上幾文章我們講解了應用層協議Http和Https&#xff0c;要知道應用層協議有很多&#xff0c;這些都是程序員自己定制的&#xff0c;而真正要傳輸的時候&#xff0c;是要在操作系統的傳輸層進行的&#xff0c;今天我們就來學習一下傳輸層協議Udp的 標識一個通信 要進行跨…

MySQL 深度分頁優化

MySQL 深度分頁優化 理解總結&#xff1a; 分頁使用limit &#xff0c;前提是要排序好的數據&#xff0c;這時候&#xff0c;就推薦使用帶索引的字段排序&#xff0c;因為索引是天然有序的&#xff0c;不需要像是無序的字段一樣&#xff0c;全表掃描&#xff0c;如果太大的話…

“深入探究JVM:解密Java虛擬機的工作原理“

標題&#xff1a;深入探究JVM&#xff1a;解密Java虛擬機的工作原理 摘要&#xff1a;本文將深入探究Java虛擬機&#xff08;JVM&#xff09;的工作原理&#xff0c;包括JVM的組成部分、類加載過程、運行時數據區域、垃圾回收機制以及即時編譯器等。通過解密JVM的工作原理&…

js加密解決方案1:在AutoJS中實現Promise的必要性、好處與缺點

AutoJS是一款強大的Android自動化工具&#xff0c;可以幫助用戶編寫腳本來實現手機自動化操作。然而&#xff0c;它的加密代碼只支持ES5語法&#xff0c;不支持許多ES6的新特性&#xff0c;如Promise等功能。如果想在ES5語法環境中使用ES6的一些新特性&#xff0c;就需要自己實…

汽車上的電源模式詳解

① 一般根據鑰匙孔開關的位置來確定整車用電類別&#xff0c;汽車上電源可以分為常電&#xff0c;IG電&#xff0c;ACC電 1&#xff09;常電。常電表示蓄電池和發電機輸出直接供電&#xff0c;即使點火開關在OFF檔時&#xff0c;也有電量供應。一般來講模塊的記憶電源及需要在車…

Python系統學習1-7-字典

一、字典 1、概念及內存圖 列表&#xff1a;由一系列變量組成的可變序列容器字典&#xff1a;由一系列鍵值對組成的可變散列容器字典優勢&#xff1a;利用&#xff08;內存&#xff09;空間&#xff0c;換取&#xff08;CPU查找&#xff09;時間 鍵key 必須唯一且為不…

hbase 報錯 Master passed us a different hostname to use; was=

原因 wsl2的 /etc/hosts 配置的不兼容,我這里是ubuntu22 命令行輸入hostname 看輸出什么,比如輸出 aaa 那么替換/etc/hosts 127.0.0.1 aaa

vb+sql醫院門診管理系統設計與系統

摘要 信息時代已經來臨,計算機應用于醫院的日常管理,為醫院的現代化帶來了從未有過的動力和機遇,為醫療衛生領域的發展提供了無限的潛力。采用計算機管理信息系統已成為醫院管理科學化和現代化的標志,給醫院帶來了明顯的經濟效益和社會效益。 本文介紹了數據庫管理系統的…

每天一個知識點——L2R

面試的時候&#xff0c;雖然做過醫療文獻搜索&#xff0c;也應用過L2R的相關模型&#xff0c;但涉及到其中的一些技術細節&#xff0c;都會成為我拿不下offer永遠的痛。也嘗試過去理解去背下一些知識點&#xff0c;終究沒有力透紙背&#xff0c;隨著時間又開始變得模糊&#xf…