k8s使用harbor私有倉(cāng)庫(kù)

1、登錄Docker

成都創(chuàng)新互聯(lián)公司成立于2013年,我們提供高端網(wǎng)站建設(shè)、重慶網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站定制、網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣小程序設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站推廣服務(wù),提供專(zhuān)業(yè)營(yíng)銷(xiāo)思路、內(nèi)容策劃、視覺(jué)設(shè)計(jì)、程序開(kāi)發(fā)來(lái)完成項(xiàng)目落地,為地磅秤企業(yè)提供源源不斷的流量和訂單咨詢(xún)。

通過(guò)注冊(cè)表進(jìn)行身份驗(yàn)證才能提取私有映像:

docker login? registry.hello.com

出現(xiàn)提示時(shí),輸入您的Docker用戶(hù)名和密碼。登錄過(guò)程將創(chuàng)建或更新config.json包含授權(quán)令牌的文件。

查看config.json文件:

cat ~/.docker/config.json

{

?????? "auths": {
? ????????????? "registry.hello.com": {
???????????? ?????????? "auth": "YWRtaW46YWRtaW4xMjM="
??????????????? }
??????? },
??????? "HttpHeaders": {
??????????????? "User-Agent": "Docker-Client/18.09.0 (linux)"
??????? }
}

2、根據(jù)現(xiàn)有Docker憑證創(chuàng)建密鑰

Kubernetes集群使用Secret docker-registry類(lèi)型的密鑰通過(guò)容器注冊(cè)表進(jìn)行身份驗(yàn)證以提取私有映像。如果您已經(jīng)運(yùn)行過(guò)docker login,則可以將該憑證復(fù)制到Kubernetes中:

kubectl create secret generic harbor \??? #命名為harbor

??? --from-file=.dockerconfigjson=/root/.docker/config.json \

?? --type=kubernetes.io/dockerconfigjson

如果您需要更多控制權(quán)(例如,在新密鑰上設(shè)置名稱(chēng)空間或標(biāo)簽),則可以在存儲(chǔ)密鑰之前自定義密鑰。

務(wù)必:

??? 將數(shù)據(jù)項(xiàng)的名稱(chēng)設(shè)置為 .dockerconfigjson

??? base64對(duì)docker文件進(jìn)行編碼并粘貼該字符串,將其作為字段的值不間斷 data[".dockerconfigjson"]

設(shè)置type為kubernetes.io/dockerconfigjson

apiVersion:?v1
data:
??.dockerconfigjson:?eyJhdXRocyI6eyJyZWdpc3RyeS5jbi1oYW5nemhvdS5hbGl5dW5jcy5jb20iOnsicGFzc3dvcmQiOiJFY29uYWdlQGs4cyIsInVzZXJuYW1lIjoiazhzQGVjb25hZ2UifX19
kind:?Secret
metadata:
??name:?harbor
??namespace:?default
type:?kubernetes.io/dockerconfigjson

如果收到錯(cuò)誤消息 `error: no objects passed to create`,這可能意味著 base64 編碼的字符串無(wú)效。如果您收到的錯(cuò)誤類(lèi)似 `Secret "myregistrykey" is invalid: data[.dockerconfigjson]: invalid value ...`,這意

味著數(shù)據(jù)已成功地編碼為 un-base64,但無(wú)法解析為一個(gè) `.docker/config.json` 文件。

3、在 pod 上引用 imagePullSecrets

imagePullSecrets:

name: harbor

k8s使用harbor私有倉(cāng)庫(kù)

4、使用 Docker 配置創(chuàng)建一個(gè) Secret

kubectl?create?secret?docker-registry?myregistrykey?\
--docker-server=registry.hello.com?--docker-username=admin?\
--docker-password=admin123

Pod 只能引用它們自己命名空間中的鏡像拉取 secret,因此,每個(gè)命名空間都需要完成一次此過(guò)程

5、應(yīng)用場(chǎng)景

有許多配置私有倉(cāng)庫(kù)的解決方案。以下是一些常見(jiàn)的用例和建議的解決方案。

??? 1.集群只運(yùn)行非專(zhuān)有(例如,開(kāi)放源碼)鏡像。不需要隱藏鏡像。在 Docker hub 上使用公共鏡像

??? ??? ???? 不需要配置。

?? ??? ???? 在 GCE 或 GKE 上,自動(dòng)使用本地鏡像來(lái)提高速度和可用性。

??? 2.集群運(yùn)行一些私有鏡像,這些鏡像應(yīng)該對(duì)公司以外用戶(hù)進(jìn)行隱藏,但對(duì)所有集群用戶(hù)都是可見(jiàn)的。

??? ??? ???? 使用托管的 Docker 倉(cāng)庫(kù)。它可能托管在 Docker Hub 上,或其它地方。像上面描述的那樣在每個(gè)節(jié)點(diǎn)上手動(dòng)配置 .docker/config.json。

??? ??? ???? 或者,在防火墻后面運(yùn)行內(nèi)部私有倉(cāng)庫(kù),并打開(kāi)讀取訪(fǎng)問(wèn)權(quán)限。不需要 Kubernetes 配置。

??? ??? ???? 或者,在 GCE 或 GKE 上,使用項(xiàng)目的 Google 容器倉(cāng)庫(kù)。與手動(dòng)節(jié)點(diǎn)配置相比,集群自動(dòng)伸縮會(huì)更好地工作。

??? ??? ???? 或者,在更改節(jié)點(diǎn)配置不方便的集群上,使用 imagePullSecrets。

??? 3.擁有專(zhuān)有鏡像的集群,其中一些需要更嚴(yán)格的訪(fǎng)問(wèn)控制。

??? ??? ???? 確保 AlwaysPullImages 準(zhǔn)入控制器 打開(kāi)。否則,所有 pod 都可能訪(fǎng)問(wèn)所有的鏡像。

??? ??? ???? 將敏感數(shù)據(jù)移動(dòng)到 “Secret” 資源中,而不是將其打包到鏡像中。

??? 4.多租戶(hù)集群,每個(gè)租戶(hù)都需要自己的私有倉(cāng)庫(kù)。

??? ??? ???? 確保 AlwaysPullImages 準(zhǔn)入控制器 打開(kāi)。否則,所有 pod 都可能訪(fǎng)問(wèn)所有的鏡像。

??? ??? ???? 運(yùn)行需要授權(quán)的私有倉(cāng)庫(kù)。為每個(gè)租戶(hù)生成倉(cāng)庫(kù)憑證,將其轉(zhuǎn)換為 secret,并將 secret 填充到每個(gè)租戶(hù)命名空間。

??? ??? ???? 租戶(hù)將該 secret 添加到每個(gè)命名空間的 imagePullSecrets 中。

當(dāng)前題目:k8s使用harbor私有倉(cāng)庫(kù)
轉(zhuǎn)載來(lái)于:http://bm7419.com/article10/geghdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、動(dòng)態(tài)網(wǎng)站營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航品牌網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司