導航:首頁 > 文件管理 > 去哪裡找ingressnginx配置文件

去哪裡找ingressnginx配置文件

發布時間:2023-11-17 07:39:46

Ⅰ k8s Nginx Ingress 常用的 9個 配置(annotation)

上一篇文章介紹了 ingress vhost這個annotation的使用,趁熱打鐵我們一口氣介紹 9 個常用的annotation。

如果一個k8s 集群裡面部署多個ingress controller的時候,如果配置ingress 希望指定到某個ingress controller的時候,ingress claas就發揮巨大作用了。

一方面在controller啟動的時候需要通過參數指定ingress class

另一方面,在創建ingress的時候,通過annotation指定ingress class,如下所示

nginx.ingress.kubernetes.io/force-ssl-redirect: "true"通過這個annotation可以強制 https,如果是http請求,會通過 301 redirect到 https。

nginx.org/proxy-connect-timeout 和nginx.org/proxy-read-timeout 這兩個參數分別設置nginx的建立連接以及等待結果的超時時間。

我們經常將nginx作為api的網關,支持跨域必不可少。通過nginx.ingress.kubernetes.io/cors-allow-methods 設置支持跨域請求的方法。

限流也經常使用,通過 rps 限制每秒請求數,rpm 限制每分鍾請求數,connections限制連接數。

這個主要是針對外部請求,防止將流量打滿,proxy-body-size 設置最大請求 body,如果超過則會返回 413 請求錯誤。

這個主要是用於安全限制,只允許特定的客戶端請求,但由於現在網路中NAT的廣泛應用,這個參數使用的場景比較有限。

這個經常使用,當客戶端請求一個不存在的path的時候,我們不希望返回 404 ,跳轉到一個默認的服務上。

nginx ingress 默認是開啟access log的,如果你想關閉,可以通過將 nginx.ingress.kubernetes.io/enable-access-log 設置成false。

Ⅱ 基於Kubernetes的持續部署方案

文章轉載自Docker

方案概述

本技術方案為基於Kubernetes為核心的持續部署(下文簡稱CD)方案,可以滿足開發方的程序級日誌查看分析,運維方的快速擴容與日常運維分析,並且可以保證用戶的圓判服務體驗。並且整套放在可以在資源利用率上進一步提升,在不降低服務可靠性的前提下降低資源使用成本。

使用場景分析

本方案適用於以Tomcat為容器的JavaWeb項目的持續部署過程,在Kubernetes方案中,所有的Node節點均採用統一配置,根據業務環境的需求進行節點數量的控制。

技術架構與選型

Kubernetes集群部署模式:Stacked etcd topology

Kubernetes的安裝使用kubeadm安裝為高可用集群,並選用Stacked etcd topology 模式。

詳情參考https://kubernetes.io/docs/setup/independent/high-availability/。

Kubernetes生態技術選型:網路層面選型Weave

容器網路解決方案。Weave創建的虛擬網路可以將部署在多個主機上的容器連接起來。對容器來說,Weave就像一個巨大的乙太網交換機,所有容器都被接入這個交換機,容器可以直接通信,無需 NAT 和埠映射。

原理詳解:http://dockone.io/article/262

Kubernetes生態技術選型:對外服務選型NodePort

Kubernetes目前支持NodePort、LoadBanlace、Ingress三種對外提供服務的模式,其中LoadBanlace需要雲平台的支持,阿里雲提供了解決方案,但騰訊雲未找到,Ingress技術為新出技術。整體評估采跡大用NodePort方式更為靈活,每個服務一個唯一的對外IP地址,並且使用Nginx進行負載均衡(採用Nginx主要為日誌分析)。

介紹與使用方法:https://kubernetes.io/docs/concepts/services-networking/service/#nodeport。

持續部署過程橘州改

各組件業務配置

Kubernetes業務配置

命名空間

在業務上,Kubernetes默認配置兩套Namespace,分別為Master存放正式環境,Develop配置測試環境。

對外埠

正式環境Web埠以32001開始,測試環境以31001開始,且一一對應。

Master數據目錄

K8s-Master下的data目錄下為k8s-cd-config, k8s-cd-config目錄存放各業務的yaml配置,二級目錄為域名,三級目錄劃分Master(正式),Develop(測試),目錄下以 版本號-構建ID-GITID.yaml 命名文件,時間最後一個即為當前線上的使用配置文件,為了運維方便,在二級目錄同級內,生成一個軟鏈連接到最新的正式與測試配置文件。注意,k8s-cd-config僅在其中一台Master中存在。

Node數據目錄

節點下的/data一級目錄下分Filebeat、Dockerlibs、Nodelogs,其中Dockerlibs存放Docker相關數據,Nodelogs目錄通過volume的方式掛載入Kubernetes的Pod, Nodelogs下分Develop與Master目錄,區分正式環境與測試環境,每個Master與Develop下分為accesslogs、devlogs、tomcatlogs分別存放訪問日誌,開發部日誌,Tomcat日誌,日誌目錄下為項目(域名),域名下為Pod名稱目錄。

注意事項 : 節點加入集群後,一定要下載手工下載kubernetes-dashboard-amd64鏡像,防止dashboard所在節點掛掉以後dashboard無法在其他節點啟動。

Harbor業務配置

業務分組

Harbor重定義其Registry的存儲路徑直接使用docker-compose安裝。template 存放基礎進項,各域名分組存放業務鏡像。

鏡像命名

分組下鏡像以站點域名:版本號-類型-CDGITLAB為名稱,並基於版本號確定不同的站點版本。

數據目錄

Harbor數據目錄統一存放在/data下。

備份策略

Harbor默認不設置備份,對於業務鏡像無需進行備份,每次進行構建即可,對於模板類鏡像,在Jenkins機器上均可以找到,若Harbor出現問題,則直接重建,並將Jenkins上的模板鏡像進行重新push。

注意:為了業務的穩定性,Harbor由獨立的服務運行(基於Docker),並不運行在Kubernetes內。

Jenkins業務配置

數據目錄

Jenkins下的data目錄分為dockerlibs、thinbackups、gitlab-files 、jks-cd-config。

Dockerlibs存放Docker相關文件,thinbackups存放每日的Jenkins備份,gitlab-files存放構建GitLab的文件(運維可以在此操作pull,push),jks-cd-config為jks構建目錄。

Jenkins機使用/data/jks-cd-config目錄存放構建內容,二級目錄為域名,三級目錄為版本號(以開發部版本號為准),三級目錄下存放ROOT.war,四級目錄為構建ID_GITID,目錄下存放構建的原始數據。

節點每天進行images清理工作。

業務分組

Jenkins的分組分為template與各domain,template存放模板,domain以域名的形式存放正式項目:

新項目由運維手工創建,後續的秩序構建過程由開發部調用API完成。

構建參數

Jenkins構建時,需要傳遞三參數,1:程序版本號,2:類型:apply與delete,3:正式環境還是測試環境,正式環境為Master,測試環境為Develop,對應Kubernetes的Namespace。

此部分功能後期將通過開發部的構建憑條調用JenkinsAPI實現。

JenkinsAPI

APIDoc:https://wiki.jenkins.io/display/JENKINS/Remote+access+API

Token:https://jingyan..com/article/0eb457e5dbad8003f0a9056c.html

備份策略

Jenins安裝ThinBackup插件,配置每小時進行一次全局備份,且最多保留10份,備份後數據傳至異地。

注意:為了業務的穩定性,Jenkins由獨立的服務運行,並不運行在Kubernetes內。

GitLab業務配置

業務分組

CD GitLab項目下分兩個組template與各domain,template存放模板文件。例如:

Git分支

default下以域名劃分項目,每個項目劃分Master與Develop兩個分支,分別存放正式環境與測試環境CD文件。

CD文件樹

備份策略

GitLab使用gitlab-rake gitlab:backup:create進行每日定期備份,並傳送至異地。

EFK與日誌管理

Elasticsearch

ES數據通過索引僅保留近10天的數據,每日通過腳本方式進行數據刪除。ES的數據保存在/data/elasticsearch目錄下。

Filebeat

在每個Node節點啟動一個Filebeat進程,用於日誌的採集工作,filebeat分別監控:

其中,tomcatlogs日誌需要進行特殊處理,進行多行合並,數據寫入ES時,使用processors. Dissect進行目錄名稱截取,並使用域名作為ES的索引使用。

截取gy. wtype ( master或develop) , ltype(accesslogs 、tomcatlogs、devlogs),domain(xxx.gyyx.cn)。

Kibana

Kibana目前我們僅使用其discover節點,用於日誌數據的查詢,在配置方面。

Kibana配置使用「域名-*」方式進行配置,每次新增域名,需要在此進行手工配置。

Kibana使用discover查看時,默認展示一個域名下所有的日誌,可以通過gy.wtype篩選選擇查看測試環境還是正式環境,或者通過gy.ltype哪種日誌類型。

容器資源監控

容器資源使用WeaveScope進行資源消耗監控。

福利

掃描添加我微信,備注「 姓名+公司職位 」,加入【 雲計算學習交流群 】,和志同道合的朋友們共同打卡學習!

推薦閱讀:

喜歡就點擊「好看」吧

閱讀全文

與去哪裡找ingressnginx配置文件相關的資料

熱點內容
蘋果4代音量鍵沒反應 瀏覽:827
怎樣打開tif文件 瀏覽:153
java下載文件zip 瀏覽:440
qq瀏覽器壓縮文件怎麼設密碼 瀏覽:526
黃埔數控編程哪裡好 瀏覽:406
mac109升級1010 瀏覽:691
在java的菜單如何導入文件 瀏覽:982
現在什麼網站銷量最高 瀏覽:760
angularjsclass定義 瀏覽:157
ug數控編程怎麼導出程序 瀏覽:466
cmdb文件 瀏覽:710
鵯文件夾 瀏覽:763
網路輿情應對的基本理念是什麼 瀏覽:433
word2007層次結構 瀏覽:456
去掉文件名的數字 瀏覽:713
word公司 瀏覽:710
淘寶店數據包怎麼上傳 瀏覽:341
pbt文件 瀏覽:204
HX基礎編程怎麼改變字體 瀏覽:876
怎麼開網路教學 瀏覽:915

友情鏈接