最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

k8s集群中運(yùn)行docker registry鏡像倉庫實(shí)踐

 更新時(shí)間:2025年12月19日 09:31:03   作者:月巴左耳東  
本文介紹了如何使用Dockerfile構(gòu)建一個(gè)支持認(rèn)證登錄的Docker Registry,并通過靜態(tài)Pod方式部署在Kubernetes集群中,重點(diǎn)包括配置認(rèn)證、增加鏡像刪除功能、設(shè)置持久化路徑及驗(yàn)證登錄和推送鏡像的過程
  • docker registry 相對(duì)于 harbor 來說,安全性會(huì)更低有點(diǎn),不過對(duì)于一些內(nèi)網(wǎng)場景(不需要和公網(wǎng)有互通)來說,其實(shí) docker registry 更輕量化一些
  • 本文僅作學(xué)習(xí)參考,至于實(shí)際的選擇,還是以各自實(shí)際需求和場景為準(zhǔn)

編寫 Dockerfile

  • 為了讓 docker registry 支持認(rèn)證登錄,需要安裝 htpasswd 命令
  • 為了方便后期維護(hù) docker registry,增加鏡像刪除的功能
  • config.yml
version: 0.1
log:
  fields:
    service: registry
storage:
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
  # 增加這里的 delete 和 enabled 
  ## 啟用 registry 鏡像刪除的功能
  delete:
    enabled: true
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3
  • Dockerfile
FROM registry:2
RUN rm -f /etc/docker/registry/config.yml && \
    apk add apache2-utils && \
    apk cache clean
ADD ./config.yml /etc/docker/registry/
  • 構(gòu)建鏡像(需要構(gòu)建成什么樣的鏡像名字,可以自己定義)
docker build -t registry:2_auth .

編寫 k8s yaml 文件

  • 以靜態(tài) pod 的方式來部署,這里就直接使用 kind: Pod ,而不是其他的控制集
  • 不同 k8s 版本,apiVersion 版本可能會(huì)不一樣,可以使用 kubectl explain pod.apiVersion 命令查看 pod 這個(gè) kindapiVersion
---
apiVersion: v1
kind: Pod
metadata:
  # pod 名稱前綴
  name: docker-registry
  # 指定 namespace
  namespace: kube-system
spec:
  # 使用主機(jī)網(wǎng)絡(luò)模式
  hostNetwork: true
  tolerations:
  - key: node-role.kubernetes.io/master
    effect: NoSchedule
  - key: "CriticalAddonsOnly"
    operator: "Exists"
  - key: "node.alpha.kubernetes.io/notReady"
    operator: "Exists"
  initContainers:
  # 這里注意修改成自己 build 的鏡像名稱
  - image: registry:2_auth
    # docker 容器的名字
    name: docker-registry-init
    imagePullPolicy: IfNotPresent
    # 配置用戶名和密碼
    command:
    - sh
    - "-c"
    - "htpasswd -Bbn admin adminpasswd > /auth/htpasswd"
    volumeMounts:
    - mountPath: /auth
      name: docker-registry-auth
  containers:
  # 這里注意修改成自己 build 的鏡像名稱
  - image: registry:2_auth
    # docker 容器的名字
    name: registry
    imagePullPolicy: IfNotPresent
    # 資源限制以自己的實(shí)際需求為準(zhǔn)
    resources:
      limits:
        cpu: 3000m
        memory: 3000Mi
    env:
    # registry 訪問的端口,靜態(tài) pod 會(huì)暴露出來對(duì)應(yīng)的端口
    - name: REGISTRY_HTTP_ADDR
      value: ":35000"
    # registry 存儲(chǔ)路徑
    - name: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY
      value: /var/lib/registry
    # 以 htpasswd 的方式認(rèn)證
    - name: REGISTRY_AUTH
      value: htpasswd
    # 注冊(cè)認(rèn)證
    - name: REGISTRY_AUTH_HTPASSWD_REALM
      value: Registry
    # 認(rèn)證文件路徑
    - name: REGISTRY_AUTH_HTPASSWD_PATH
      value: /auth/htpasswd
    volumeMounts:
    - mountPath: /var/lib/registry
      name: docker-registry-storage
    - mountPath: /auth
      name: docker-registry-auth
  volumes:
  # 將 registry 存儲(chǔ)路徑持久化到本地,path 指定的路徑可以自己修改
  - name: docker-registry-storage
    hostPath:
      path: /data/k8s-data/registry-data
      type: Directory
  # 認(rèn)證文件的持久化訪問為 emptyDir,每次重啟都會(huì)重新生成
  - name: docker-registry-auth
    emptyDir: {}

kubelet 配置靜態(tài) pod 路徑

  • kubeadm 部署的,默認(rèn)就配置了靜態(tài) pod 的存放路徑,可以不進(jìn)行下面的操作
  • 二進(jìn)制部署的,一般沒有配置靜態(tài) pod 的存放路徑,需要 kubelet 增加 --pod-manifest-path 指定路徑(提前創(chuàng)建好路徑),然后重啟 kubelet
--pod-manifest-path=/etc/kubernetes/manifests

啟動(dòng)靜態(tài) pod

創(chuàng)建持久化路徑,這里的路徑要和 yaml 文件里面的 volumes 下面的 docker-registry-storage 指定的 path 一致

mkdir -p /data/k8s-data/registry-data

將 yaml 文件放到上面 kubelet 配置的靜態(tài) pod 路徑下,然后等 pod 啟動(dòng)(如果想快點(diǎn),可以直接重啟 kubelet 組件)

查看 pod 是否創(chuàng)建成功

kubectl get pod -n kube-system | grep registry

靜態(tài) pod 會(huì)以 yaml 文件里面的 name 加上當(dāng)前節(jié)點(diǎn) ip 作為 pod 的名稱

docker-registry-172.72.0.95   1/1     Running   0          33s

docker 配置增加 registry 地址

vim /etc/docker/daemon.json

注意 json 語法格式

如果重啟 docker 失敗,日志有如下輸出,表示 daemon.json 文件的格式有錯(cuò)誤,注意最后是否需要加上逗號(hào)

unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character '"' after object key:value pair

# 增加下面的信息
"insecure-registries": ["ip:端口"]

拿我的舉個(gè)例子

{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
  "insecure-registries": ["172.72.0.95:35000"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "data-root": "/approot/data/crt-data",
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "200m",
    "max-file": "5"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}

重啟 docker 服務(wù)

systemctl restart docker

驗(yàn)證 docker registry 倉庫

登錄 docker registry 倉庫,這里的用戶名,密碼以及登錄的 ip 和端口都需要以自己的為準(zhǔn)

docker login -u admin -p adminpasswd 172.72.0.95:35000

登錄成功后,就會(huì)返回對(duì)應(yīng)的 success 了

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
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-store

Login Succeeded

修改鏡像 tag,然后嘗試上傳鏡像

docker tag registry:2_auth 172.72.0.95:35000/registry:2_auth

推送鏡像到 docker registry

docker push 172.72.0.95:35000/registry:2_auth

返回類似如下的信息,說明推送成功了,可以去其他節(jié)點(diǎn)使用 docker login 登錄(也需要 docker 配置文件加上 docker registry 的地址),然后直接 docker pull <倉庫地址>:<倉庫端口>/registry:2_auth

The push refers to repository [172.72.0.95:35000/registry]
f586723f1e87: Pushed
b14c705d6378: Pushed
6e5160500bc7: Pushed
744dbed40ffa: Pushed
f8dc4f9c98a6: Pushed
4984fbd72df1: Pushed
bb01bd7e32b5: Pushed
2_auth: digest: sha256:3b215dad8c5b7704b0b84a3ee46971314b8db9e65fb82a62204cf8497587377a size: 1781

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • k8s按需創(chuàng)建PV和使用PVC詳解

    k8s按需創(chuàng)建PV和使用PVC詳解

    Kubernetes中,PV和PVC用于管理持久存儲(chǔ),StorageClass實(shí)現(xiàn)動(dòng)態(tài)PV分配,PVC聲明存儲(chǔ)需求并綁定PV,通過kubectl驗(yàn)證狀態(tài),注意回收策略和綁定模式
    2025-09-09
  • 使用k8tz解決pod內(nèi)的時(shí)區(qū)問題(坑的解決)

    使用k8tz解決pod內(nèi)的時(shí)區(qū)問題(坑的解決)

    時(shí)區(qū)的不一致,會(huì)帶來很多困擾。即使代碼與時(shí)區(qū)無關(guān),但容器日志與系統(tǒng)日志時(shí)間相關(guān)聯(lián)排查問題也會(huì)讓人頭疼,這篇文章主要介紹了使用k8tz優(yōu)雅的解決pod內(nèi)的時(shí)區(qū)問題,需要的朋友可以參考下
    2022-10-10
  • Rainbond上部署API?Gateway?Kong及環(huán)境配置教程

    Rainbond上部署API?Gateway?Kong及環(huán)境配置教程

    這篇文章主要為大家介紹了Rainbond上部署API?Gateway?Kong及環(huán)境配置教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • K8S中設(shè)置JVM堆棧大小實(shí)現(xiàn)方式

    K8S中設(shè)置JVM堆棧大小實(shí)現(xiàn)方式

    這篇文章主要介紹了K8S中設(shè)置JVM堆棧大小實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • Nacos-K8s部署全過程

    Nacos-K8s部署全過程

    Nacos-K8s項(xiàng)目提供了多種在Kubernetes環(huán)境中部署Nacos的方案,包括快速啟動(dòng)、NFS持久化、Ceph持久化、Helm和Operator部署,每種方式都有其適用的場景和特點(diǎn),如快速啟動(dòng)適用于測試,NFS和Ceph持久化支持?jǐn)?shù)據(jù)持久化,Helm和Operator提供更高級(jí)的運(yùn)維功能
    2026-02-02
  • Kubernetes(K8S)徹底卸載詳細(xì)教程

    Kubernetes(K8S)徹底卸載詳細(xì)教程

    網(wǎng)絡(luò)上有很多的K8S安裝安裝教程,但是唯獨(dú)很少有卸載教程,有也講得不清不楚,下面這篇文章主要給大家介紹了關(guān)于Kubernetes(K8S)徹底卸載的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Rainbond配置組件自動(dòng)構(gòu)建部署官方文檔講解

    Rainbond配置組件自動(dòng)構(gòu)建部署官方文檔講解

    這篇文章主要為大家介紹了Rainbond配置組件自動(dòng)構(gòu)建部署官方文檔講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • k8s高可用集群安裝教程

    k8s高可用集群安裝教程

    本文給大家介紹k8s高可用集群安裝教程,本文通過圖文示例相結(jié)合給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-03-03
  • k8s如何使用NFS作為StorageClass提供動(dòng)態(tài)存儲(chǔ)

    k8s如何使用NFS作為StorageClass提供動(dòng)態(tài)存儲(chǔ)

    本文主要介紹了k8s中的StorageClass,包括其定義、引入的原因、實(shí)現(xiàn)方式、定義方法以及回收策略對(duì)數(shù)據(jù)的影響等,首先,StorageClass是在K8s集群中創(chuàng)建用于動(dòng)態(tài)PV的管理,可以鏈接至不同的后端存儲(chǔ),對(duì)存儲(chǔ)的請(qǐng)求可以指向StorageClass
    2024-09-09
  • Kubernetes集群中Calico網(wǎng)絡(luò)插件報(bào)錯(cuò)問題分析及解決過程

    Kubernetes集群中Calico網(wǎng)絡(luò)插件報(bào)錯(cuò)問題分析及解決過程

    Kubernetes集群中Calico網(wǎng)絡(luò)插件報(bào)錯(cuò)(如FailedCreatePodSandBox)通常由配置錯(cuò)誤、RBAC權(quán)限缺失或組件故障導(dǎo)致,解決方法包括重啟Calico組件、驗(yàn)證配置和權(quán)限,定期監(jiān)控與維護(hù)以確保網(wǎng)絡(luò)正常運(yùn)行
    2025-10-10

最新評(píng)論

札达县| 湘潭市| 吉木乃县| 旬邑县| 遵义县| 克拉玛依市| 庐江县| 澎湖县| 柳江县| 平潭县| 安康市| 北票市| 高邑县| 阿拉善左旗| 资溪县| 疏勒县| 娱乐| 长葛市| 麻城市| 贵港市| 濮阳市| 北安市| 滨州市| 苏尼特左旗| 阜新市| 阿坝县| 兴业县| 厦门市| 和田市| 云南省| 湘潭县| 甘泉县| 梅州市| 上林县| 九寨沟县| 和龙市| 简阳市| 肇东市| 江门市| 烟台市| 通州区|