如何使用Rancher發(fā)布前端服務(wù)過程詳解
正文
項目中用到rancher發(fā)布前端代碼,我自己參與了一次構(gòu)建,遇到了很多的問題,不過一一解決了,用閑暇的時間,將遇到的問題記下來,也算是一次復(fù)盤了。
rancher是一個開源的企業(yè)級容器管理平臺,重點“容器管理”,可以極大的簡化容器管理的復(fù)雜度(相對于K8s),它是對于k8s容器引擎的封裝,有興趣可以看看官方文檔。
上傳鏡像
需要先安裝docker,確保docker是可以使用的。下面是Dockerfile
文件和default.conf
文件
FROM nginx COPY ./build /usr/share/nginx/html/ COPY ./default.conf /etc/nginx/conf.d/ EXPOSE 80
Dockerfile
文件主要用于docker鏡像的創(chuàng)建;
FROM nginx
:FROM指令初始化一個新的構(gòu)建階段,并為后續(xù)指令設(shè)置基礎(chǔ)鏡像,這里的基礎(chǔ)鏡像是nginx;
COPY ./build /usr/share/nginx/html/
:./build
是前端打包之后的文件地址,將它復(fù)制到nginx的html目錄下;
COPY ./default.conf /etc/nginx/conf.d/
:./default.conf
是nginx配置文件, 將它復(fù)制到nginx的conf.d目錄下;
EXPOSE 80
:監(jiān)聽80端口;
打包代碼
通過如下命令行打包代碼(實際代碼根據(jù)自己項目而定):
// 前端本地打包 $ npm run build:prod // 移除之前舊的鏡像 $ docker rmi xx.harbor.com:10443/xx/front-web-project:1.0.0 // 構(gòu)建鏡像 $ docker build -f Dockerfile -t xx.harbor.com:10443/xx/front-web-project:1.0.0 . // push 鏡像到鏡像倉庫 $ docker push xx.harbor.com:10443/xx/front-web-project:1.0.0
鏡像倉庫是提前構(gòu)建好的,可以找運維工程師確認。我上面使用到的是harbor
鏡像存儲庫,這個是運維工程師搭建好的,我這邊可以直接使用。鏡像名和tag根據(jù)自己項目實際來。
Nginx配置
下面就是nginx配置文件,由于是前端項目,nginx主要在這里做的就是靜態(tài)資源服務(wù)器,接口代理。
server { listen 80; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Credentials true; add_header Access-Control-Allow-Methods *; client_max_body_size 2000M; location / { root /usr/share/nginx/html/; index index.html index.htm; try_files $uri /index.html; } }
nginx配置文件根據(jù)自己的實際需求編寫,更多的配置也可以在這里繼續(xù)添加(比例接口代理,負載均衡等)。
工作負載
rancher是一個容器管理平臺,是k8s的二次封裝,提供更豐富的功能,有興趣的同學(xué),可以看看 官網(wǎng) 的相關(guān)資料。在rancher里工作負載是一個對象,包括pod以及部署應(yīng)用程序所需的其他文件和信息。
以下是rancher中 工作負載服務(wù)的創(chuàng)建過程:
點擊部署服務(wù),進入到創(chuàng)建工作負載界面:
Docker鏡像地址是你已經(jīng)上傳的 前端鏡像地址 ,主機端口需要 找運維確認端口 ,命名空間可選中已有的。容器端口一般都是 80
,這和你的 default.conf
配置端口相關(guān)。以上填寫完成之后,滑動到底部,點擊升級按鈕。
點擊進入創(chuàng)建完成的工作負載中,如果pods中存在正常running的pod實例,既是創(chuàng)建成功。如果存在其他問題,可以參考下面 出現(xiàn)的問題,進行相關(guān)問題的排查。
創(chuàng)建發(fā)布成功后,既可通過ip+端口訪問前端服務(wù),如果能訪問成功代表部署的沒有問題。
出現(xiàn)的問題
以下問題是在實際使用發(fā)現(xiàn)的問題,將它們記錄下來;
- 鏡像構(gòu)建服務(wù)無法成功,提示是失敗的構(gòu)建
優(yōu)先查看日志信息,根據(jù)日志信息提示排查問題。例如:如果提示鏡像構(gòu)建服務(wù)時報錯,記得排查前端靜態(tài)資源文件打包中,nginx配置文件編寫存在問題,相關(guān)的Dockfile文件配置信息是否正常。
- 鏡像構(gòu)建服務(wù)成功后,頁面依然無法訪問
查看日志信息,查看是否有提示信息。如果存在提示信息,根據(jù)提示排查問題;
在保證服務(wù)啟動正常,nginx配置正常的前提下,與相關(guān)人員確認,服務(wù)器IP、端口號,是否正常開啟。
- 構(gòu)建服務(wù)成功,頁面訪問不是目標文件
確認nginx配置信息是否生效,是否有被其他文件覆蓋;并確認前端資源文件上傳到了指定目錄,存在相關(guān)文件目錄。
- 構(gòu)建服務(wù)成功,頁面訪問正常,接口代理異常
查看訪問日志信息,是否存在相關(guān)請求提示信息。確認nginx配置接口代理編寫正確,不存在異常錯誤;再打開命令行窗口,嘗試通過 curl [目標服務(wù)接口地址]
,確認接口ip是否可以正常訪問。
- 代理文件、接口地址訪問不穩(wěn)定
確認網(wǎng)絡(luò)模式,IP地址是否為相同模式下的IP和端口。
以上就是如何使用Rancher發(fā)布前端服務(wù)過程詳解的詳細內(nèi)容,更多關(guān)于Rancher發(fā)布前端服務(wù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Docker部署用Python編寫的Web應(yīng)用的實踐
本文主要介紹了Docker部署用Python編寫的Web應(yīng)用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09docker compose方式如何安裝ClickHouse數(shù)據(jù)庫
這篇文章主要介紹了docker compose方式如何安裝ClickHouse數(shù)據(jù)庫問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04使用Grafana 展示Docker容器的監(jiān)控圖表并設(shè)置郵件報警規(guī)則(圖解)
這篇文章主要介紹了使用Grafana 展示Docker容器的監(jiān)控圖表并設(shè)置郵件報警規(guī)則的圖文教程,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-01-01