Istio入門與實戰》 ——3 使用Vagrant管理虛擬機">《Istio入門與實戰》 ——3 使用Vagrant管理虛擬機
674
2025-04-02
2.3 應用的構建
如果只是跟著本書做實驗,本節可以跳過,本節屬于應用鏡像構建部分,不會影響后面的Istio實驗。了解本節內容需要掌握Docker的基礎知識。
由于本書的實驗重點在于如何使用Istio,如何使用本地Docker私有鏡像倉庫部署服務并不是我們關注的重點,所以本書實驗所使用的鏡像均采用阿里云鏡像服務免費提供的鏡像構建功能。當然,你也可以使用Docker Hub提供的鏡像構建功能。下面以阿里云鏡像服務為例實現鏡像構建,具體步驟如下。
1.構建應用鏡像
(1)上傳代碼到GitHub
此步驟不做詳細說明,請參考相關文檔了解Git和GitHub的基本使用。
(2)在阿里云上的鏡像構建
阿里云鏡像服務地址:https://cr.console.aliyun.com/,如下操作均在這個鏈接的Web上進行。
1)創建命名空間。
命名空間不能重復,請注意修改命名空間名稱,如圖2-2所示,可創建名為istio-lab的命名空間。
圖2-2 創建命名空間
2)創建鏡像倉庫。
選擇命名空間為上個步驟中創建的命名空間,填寫要創建的鏡像倉庫名和簡介,如service-go。注意選擇倉庫類型為公開,如圖2-3所示。
選擇已經綁定的GitHub賬號和要構建的源碼倉庫,由于構建時需要訪問國外資源,因此勾選使用海外機器構建,并取消“選擇代碼變更時自動構建鏡像”(如果首次使用需要先綁定GitHub賬號),如圖2-4所示。
圖2-3 創建鏡像倉庫(一)
圖2-4 創建鏡像倉庫(二)
3)添加鏡像構建規則。
選擇要構建規則的鏡像倉庫,并點擊“管理”按鈕,出現如圖2-5所示的界面。
圖2-5 添加鏡像構建規則(一)
選擇“構建”選項卡上的“添加規則”按鈕,添加鏡像構建規則,如圖2-6所示。
圖2-6 添加鏡像構建規則(二)
添加如圖2-7所示的版本構建規則,實驗中會使用兩個版本,因此需要創建兩個版本的構建規則。
圖2-7 添加鏡像構建規則(三)
4)構建鏡像。
點擊“立即構建”按鈕開始構建,如果構建失敗,可以通過點擊日志鏈接查看構建日志,找出失敗原因,如圖2-8所示。
圖2-8 構建鏡像
2. 本地拉取鏡像驗證
鏡像構建完成后,拉取到本地測試鏡像是否能正常工作。具體步驟如下。
1)拉取鏡像:
$ sudo docker pull registry.cn-shanghai.aliyuncs.com/istio-lab/service-go:v1
v1: Pulling from istio-lab/service-go
4fe2ade4980c: Already exists
7eb00a8eb80c: Already exists
1ed92905e9ab: Pull complete
Digest: sha256:fffe0f892ed657952afcc4bd07216fe5e30e27fae014a3c81220368cccbbd161
Status: Downloaded newer image for registry.cn-shanghai.aliyuncs.com/istio-lab/service-go:v1
2)啟動容器:
$ sudo docker run -d --name service-go-v1 \
-p 8000:80 registry.cn-shanghai.aliyuncs.com/istio-lab/service-go:v1
e936daf6ccdcdcca811369fe19f6163559a4e796f6971c063cc83a05e386c2fe
$ sudo docker ps | grep service-go-v1
e936daf6ccdc??????? registry.cn-shanghai.aliyuncs.com/istio-lab/service-go:v1???????????? "./app"????????????????? 13 seconds ago????? Up 12 seconds?????? 0.0.0.0:8000->80/tcp?? service-go-v1
3)訪問測試:
$ curl 127.0.0.1:8000/env
{"message":"go v1"}
4)清理:
$ sudo docker stop service-go-v1
service-go-v1
$ sudo docker rm service-go-v1
service-go-v1
Istio Docker 鏡像服務
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。