如何使用Rancher發(fā)布前端服務(wù)過程詳解
正文
項目中用到rancher發(fā)布前端代碼,我自己參與了一次構(gòu)建,遇到了很多的問題,不過一一解決了,用閑暇的時間,將遇到的問題記下來,也算是一次復(fù)盤了。
rancher是一個開源的企業(yè)級容器管理平臺,重點(diǎn)“容器管理”,可以極大的簡化容器管理的復(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)建好的,可以找運(yùn)維工程師確認(rèn)。我上面使用到的是harbor鏡像存儲庫,這個是運(yùn)維工程師搭建好的,我這邊可以直接使用。鏡像名和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ù)添加(比例接口代理,負(fù)載均衡等)。
工作負(fù)載
rancher是一個容器管理平臺,是k8s的二次封裝,提供更豐富的功能,有興趣的同學(xué),可以看看 官網(wǎng) 的相關(guān)資料。在rancher里工作負(fù)載是一個對象,包括pod以及部署應(yīng)用程序所需的其他文件和信息。
以下是rancher中 工作負(fù)載服務(wù)的創(chuàng)建過程:

點(diǎn)擊部署服務(wù),進(jìn)入到創(chuàng)建工作負(fù)載界面:

Docker鏡像地址是你已經(jīng)上傳的 前端鏡像地址 ,主機(jī)端口需要 找運(yùn)維確認(rèn)端口 ,命名空間可選中已有的。容器端口一般都是 80,這和你的 default.conf配置端口相關(guān)。以上填寫完成之后,滑動到底部,點(diǎn)擊升級按鈕。
點(diǎn)擊進(jìn)入創(chuàng)建完成的工作負(fù)載中,如果pods中存在正常running的pod實例,既是創(chuàng)建成功。如果存在其他問題,可以參考下面 出現(xiàn)的問題,進(jì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)人員確認(rèn),服務(wù)器IP、端口號,是否正常開啟。
- 構(gòu)建服務(wù)成功,頁面訪問不是目標(biāo)文件
確認(rèn)nginx配置信息是否生效,是否有被其他文件覆蓋;并確認(rèn)前端資源文件上傳到了指定目錄,存在相關(guān)文件目錄。
- 構(gòu)建服務(wù)成功,頁面訪問正常,接口代理異常
查看訪問日志信息,是否存在相關(guān)請求提示信息。確認(rèn)nginx配置接口代理編寫正確,不存在異常錯誤;再打開命令行窗口,嘗試通過 curl [目標(biāo)服務(wù)接口地址],確認(rèn)接口ip是否可以正常訪問。
- 代理文件、接口地址訪問不穩(wěn)定
確認(rèn)網(wǎng)絡(luò)模式,IP地址是否為相同模式下的IP和端口。
以上就是如何使用Rancher發(fā)布前端服務(wù)過程詳解的詳細(xì)內(nèi)容,更多關(guān)于Rancher發(fā)布前端服務(wù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Docker跨主機(jī)網(wǎng)絡(luò)(overlay)的實現(xiàn)
這篇文章主要介紹了Docker跨主機(jī)網(wǎng)絡(luò)(overlay)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
使用Docker查看Elasticsearch錯誤日志的詳細(xì)步驟
在使用 Elasticsearch(簡稱 ES)的過程中,我們可能會遇到各種問題,為了快速定位和解決這些問題,查看錯誤日志是關(guān)鍵,本文將介紹如何使用 Docker 查看 Elasticsearch 的錯誤日志,并提供一些實用技巧,需要的朋友可以參考下2025-08-08
Docker數(shù)據(jù)卷掛載命令volume(-v)與mount的使用總結(jié)
本文主要介紹了Docker數(shù)據(jù)卷掛載命令volume(-v)與mount的使用總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
阿里云ECS(CentOS鏡像)安裝docker的實現(xiàn)步驟
本文主要介紹了阿里云ECS(CentOS鏡像)安裝docker的實現(xiàn)步驟,從準(zhǔn)備工作到實際安裝步驟,詳細(xì)解析每一步操作,具有一定的參考價值,感興趣的可以了解一下2024-01-01
Docker Registry倉庫加密傳輸與登錄認(rèn)證方式
本文詳細(xì)介紹了如何為Docker私有倉庫配置加密傳輸(TLS)和認(rèn)證功能,包括生成自簽名證書、配置客戶端證書、添加認(rèn)證文件和測試倉庫功能2025-12-12
如何使用 docker compose 搭建 fastDFS文件服務(wù)器
這篇文章主要介紹了如何使用 docker compose 搭建 fastDFS文件服務(wù)器,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10

