傲視Kubernetes(二):Docker鏡像搭建與本地Kubernetes環境搭建


主要內容:

1、Docker與Kubernetes的關系

2、SpringBoot微服務的Docker鏡像創建

3、Kubernetes本地環境搭建

一、Docker與Kubernetes的關系

在說明Docker與Kubernetes的關系之前,要先同步一下Docker定義--Docker是什么?Docker是一個打包、分發和運行應用程序的平台。它是一種容器化技術,可以使它創建的容器運行在不同的機器、不同的操作系統上(此處可以類比Java的跨平台特性)。不過docker是依賴於linux內核的,所以如果在windows系統上運行,實際是運行於windows上的虛擬linux環境中。

一個Docker運行時容器就是一個進程。Docker與虛擬機的區別,很大一點在於容器沒有自己的操作系統內核,它依賴於宿主機的操作系統,更輕量級;而虛擬機有自己的操作系統內核,相對更自由,但更重量級。

二、SpringBoot微服務的Docker鏡像搭建

由於SpringBoot自帶tomcat,所以找一個JDK鏡像就夠了。此處博主用的基礎鏡像是 williamyeh/java8:latest。

1、簡易項目構建:

 

 bootstrap.yml文件內容(指定服務端口):

1 server:
2   port: 8001

Dockerfile文件內容(在pom中指定了打包文件名jugg):

1 FROM williamyeh/java8:latest
2 EXPOSE 8001
3 
4 ADD jugg.jar /jugg.jar
5 ENTRYPOINT ["java","-jar","/jugg.jar","--server.port=8001"]

2、構建鏡像

先將jar包和Dockerfile文件上傳到服務器的同一個目錄上去:

 

然后執行指令創建鏡像(鏡像名jugg):

1 docker build -t jugg .

 

 成功后執行下 docker images,可以看到我們剛創建的鏡像:

 再執行run讓鏡像運行起來 

1 docker run --name juggcontainer -p 8001:8001 -d jugg

name后面是指定容器名,-p后面指定端口。注意Dockerfile文件中EXPOSE暴露的端口並沒有實際效果,執行run命令時指定的端口才是最終使用的端口。

 

 瀏覽器訪問下服務,完美!(注意檢查服務器的端口是否能被訪問到)

 

三、Kubernetes本地環境搭建

1、minikube的安裝與啟動

 Kubernetes本地環境搭建一般都是用minikube,這玩意的版本和環境關系很大,稍不注意安裝的時候就會有各種意外。minikube安裝時有兩種下載地址,一個是國內阿里雲的,一個是國外谷歌的地址。阿里的好處就是網絡穩定,基本都會下載成功。而用谷歌的地址,很不穩定。但是呢,博主用阿里雲的下載啟動時,遇到了各種各樣的問題(博主的雲主機是單核CPU,有的報錯就跟此相關,如果是雙核CPU,估計安裝與啟動會順利得多),一怒之下又改用谷歌的minikube地址,雖然網絡波動較大,但多試了幾次,最后順利啟動成功。

首先執行命令下載minikube(若無下載進度,則ctrl+C終止后重新執行命令,反復幾次,總會有成功的時候):

1 curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.23.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin

然后執行啟動指令,如下。博主的雲主機上未安裝虛擬驅動,所以直接指定為none,但還得指定下cpu核數以及忽略掉核數不匹配的錯誤,否則會終止啟動流程:

1 minikube start  --vm-driver=none --extra-config=kubeadm.ignore-preflight-errors=NumCPU --cpus 1

博主前兩次執行都報錯獲取不到版本:

 

 直到執行第三次才成功啟動:

 

注意每次因為版本問題導致start失敗之后,最好清空一下minikube的記錄,重新下載,清空minikube記錄的指令:

minikube delete && rm -rf ~/.minikube && rm -rf ~/.kube

 

2、kubectl的安裝

kubectl是kubenetes的客戶端,有了它我們才能通過命令行與kubernetes集群進行交互。這個的安裝就簡單多了,執行指令:

curl -LO https://storage.googleapis.com/kubenetes-releases/release/v1.19.4/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/

如果多執行幾次也下載不下來,你又沒啥辦法的話,可以點擊這個鏈接下載:https://storage.googleapis.com/kubernetes-release/release/v1.10.0/bin/linux/amd64/kubectl

下載下來之后手動往usr/local/bin目錄傳上去,再執行上面指令中的  chmod +x kubectl 命令即可。

安裝好之后,打個kubectl指令檢驗一下效果:

 

 完美!

 

參考文獻:

1、《Kubernetes in Action》  ...Marko Luksa

2、Kubenetes官網,minikube官網


免責聲明!

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



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