中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

k8s使用harbor私有倉庫

發布時間:2020-08-12 14:04:47 來源:網絡 閱讀:557 作者:羊皮裘老頭 欄目:云計算

1、登錄Docker

通過注冊表進行身份驗證才能提取私有映像:

docker login? registry.hello.com

出現提示時,輸入您的Docker用戶名和密碼。登錄過程將創建或更新config.json包含授權令牌的文件。

查看config.json文件:

cat ~/.docker/config.json

{

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

2、根據現有Docker憑證創建密鑰

Kubernetes集群使用Secret docker-registry類型的密鑰通過容器注冊表進行身份驗證以提取私有映像。如果您已經運行過docker login,則可以將該憑證復制到Kubernetes中:

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

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

?? --type=kubernetes.io/dockerconfigjson

如果您需要更多控制權(例如,在新密鑰上設置名稱空間或標簽),則可以在存儲密鑰之前自定義密鑰。

務必:

??? 將數據項的名稱設置為 .dockerconfigjson

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

設置type為kubernetes.io/dockerconfigjson

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

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

味著數據已成功地編碼為 un-base64,但無法解析為一個 `.docker/config.json` 文件。

3、在 pod 上引用 imagePullSecrets

imagePullSecrets:

name: harbor

k8s使用harbor私有倉庫

4、使用 Docker 配置創建一個 Secret

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

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

5、應用場景

有許多配置私有倉庫的解決方案。以下是一些常見的用例和建議的解決方案。

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

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

?? ??? ???? 在 GCE 或 GKE 上,自動使用本地鏡像來提高速度和可用性。

??? 2.集群運行一些私有鏡像,這些鏡像應該對公司以外用戶進行隱藏,但對所有集群用戶都是可見的。

??? ??? ???? 使用托管的 Docker 倉庫。它可能托管在 Docker Hub 上,或其它地方。像上面描述的那樣在每個節點上手動配置 .docker/config.json。

??? ??? ???? 或者,在防火墻后面運行內部私有倉庫,并打開讀取訪問權限。不需要 Kubernetes 配置。

??? ??? ???? 或者,在 GCE 或 GKE 上,使用項目的 Google 容器倉庫。與手動節點配置相比,集群自動伸縮會更好地工作。

??? ??? ???? 或者,在更改節點配置不方便的集群上,使用 imagePullSecrets。

??? 3.擁有專有鏡像的集群,其中一些需要更嚴格的訪問控制。

??? ??? ???? 確保 AlwaysPullImages 準入控制器 打開。否則,所有 pod 都可能訪問所有的鏡像。

??? ??? ???? 將敏感數據移動到 “Secret” 資源中,而不是將其打包到鏡像中。

??? 4.多租戶集群,每個租戶都需要自己的私有倉庫。

??? ??? ???? 確保 AlwaysPullImages 準入控制器 打開。否則,所有 pod 都可能訪問所有的鏡像。

??? ??? ???? 運行需要授權的私有倉庫。為每個租戶生成倉庫憑證,將其轉換為 secret,并將 secret 填充到每個租戶命名空間。

??? ??? ???? 租戶將該 secret 添加到每個命名空間的 imagePullSecrets 中。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

衡南县| 新泰市| 出国| 太原市| 密云县| 读书| 宣威市| 广元市| 宁海县| 天津市| 上杭县| 津南区| 乳山市| 福海县| 黑山县| 太康县| 六枝特区| 衢州市| 汉寿县| 富宁县| 景谷| 二连浩特市| 铜山县| 海盐县| 宝丰县| 天峨县| 舞阳县| 偃师市| 洪泽县| 闸北区| 秦皇岛市| 水富县| 施秉县| 临颍县| 兴化市| 闵行区| 吉木萨尔县| 家居| 界首市| 丽水市| 双峰县|