k8s環境部署.net core web項目(docker本地倉庫)


    在之前的文檔中,我們部署了.net core web在k8s環境下,達成了集群管理項目的目的。但是,由於是本地部署,需要在所有的node節點都拉取好鏡像,這是非常麻煩的,為了只維護一份代碼,同步更新。我們將使用docker鏡像拉取,但是,由於GitHub倉庫的push和pull太慢,經常失敗,因此,本地簡單部署一個私有倉庫。記錄下過程。

一、准備工作

  1、兩台或以上的虛擬機,2cpu

    192.168.3.181    k8s-master

    192.168.2.156    k8s-node

  2、docker最新版

  3、k8s環境,不會配的看看其他文檔

二、本地倉庫

  本地倉庫會用到官方鏡像,registry

docker pull registry

  這一步你可能因為網絡問題拉取不下來,解決方法:

dig @114.114.114.114 docker.io

  

 

 使用該命令獲取到可用ip,編輯hosts

vim /etc/hosts

  

 

 2、docker images查看該鏡像

 

 3、運行容器

docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry

4、查看倉庫里的鏡像

curl http://192.168.1.197:5000/v2/_catalog

  當然,現在是空的,沒什么好看的

三、上傳&拉取鏡像

  1、編輯tag

    首先,你需要有一個鏡像,比如我這里用的test

 

              執行命令修改tag

docker tag test 192.168.3.181:5000/test:v1

    格式是: docker tag 鏡像名 ip:端口/鏡像名:版本(版本是為了k8s項目更新)

  2、推送鏡像(push)

docker push 192.168.3.181:5000/test:v1

 

一般情況下,這時候你會遇到一個錯誤

 

 你需要執行:vim /etc/docker/daemon.json 進行編輯

 

 當然了,ip地址和端口記得改成自己的,然后再次push,就能正常了

   

3、上傳成功后,可以刪除本地鏡像,從倉庫拉取

docker rmi 192.168.3.181:5000/test:v1
docker pull 192.168.3.181:5000/test:v1

  

 

 4、在局域網的其他機器拉取鏡像

  在局域網的其他機器拉取鏡像,需要同樣的,編輯vim /etc/docker/daemon.json

  內容跟上面也一樣,不贅述

四、項目部署

  1、修改.yaml文件

  參考本地部署文檔里面的.yaml文件,https://www.cnblogs.com/CoderLinkf/p/12408589.html

  這里改動兩個地方,第一個,images:改為192.168.3.181:5000/test:v1

  拉取策略:imagePullPolicy:IfNotPresent(如果本地沒有就從倉庫拉取)

  2、執行apply命令

  kubectl apply -f 你的文件名.yaml

  這里要注意的一點是,如果你的項目還沒運行過,那么,不要直接用apply命令,請先使用create命令

  kubectl create -f 你的文件名.yaml

  3、kubectl get pods 即可查看狀態,running狀態就成功了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM