本篇內(nèi)容主要講解“如何安裝部署Nginx-ingress”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何安裝部署Nginx-ingress”吧!
在南縣等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作定制設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),全網(wǎng)整合營銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,南縣網(wǎng)站建設(shè)費用合理。
在本篇文章中我們就介紹如何安裝部署Nginx-ingress,只有在經(jīng)過積累不同組件的使用經(jīng)驗之后,我們才能更好的比較其優(yōu)劣,形成最佳實踐。
# step1: 通過helm查找nginx-ingress > helm search nginx-ingress > helm inspect stable/nginx-ingress
部分企業(yè)由于服務(wù)器沒有wai網(wǎng)訪問策略以及防火墻的原因,無法獲取國外Docker鏡像,所以我們事先需要將所需鏡像準(zhǔn)備好,并上傳到企業(yè)私有鏡像倉庫
# step2: 鏡像準(zhǔn)備 > docker pull quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.25.1 > docker tag quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.25.1 registry.hankercloud.com/ingress-controller/nginx-ingress-controller:0.25.1 > docker push registry.hankercloud.com/ingress-controller/nginx-ingress-controller:0.25.1 > > docker pull k8s.gcr.io/defaultbackend-amd64:1.5 > docker tag k8s.gcr.io/defaultbackend-amd64:1.5 registry.hankercloud.com/google_containers/defaultbackend-amd64:1.5 > docker push registry.hankercloud.com/google_containers/defaultbackend-amd64:1.5
在上一篇博客中,我們是采用Deployment
模式部署的traefik組件,這次我們采用DaemonSet
的模式來部署nginx-ingress組件
# step3: 組件部署 > helm install stable/nginx-ingress --name nginx-ingress --namespace=kube-system \ --set fullnameOverride=nginx-ingress \ --set controller.kind=DaemonSet \ --set controller.daemonset.useHostPort=true \ --set controller.metrics.enabled=true \ --set controller.image.repository=registry.hankercloud.com/ingress-controller/nginx-ingress-controller \ --set defaultBackend.image.repository=registry.hankercloud.com/google_containers/defaultbackend-amd64 # step4: 檢查部署是否成功 > helm list > kubectl get all -n kube-system > kubectl logs $POD_NAME -n kube-system
本次我們采用DaemonSet部署nginx-ingress組件,并且使用了主機(jī)的80和443接口用來分別接收http和https請求,我們將相應(yīng)的域名解析到nginx-ingress Pod所在的主機(jī)IP之后,就可以通過域名來進(jìn)行相應(yīng)的域名訪問了。
但上述配置方式無法做到高可用,當(dāng)nginx-ingress的Pod實例故障或者其所在主機(jī)發(fā)生故障時,會導(dǎo)致相應(yīng)的域名無法訪問,所以建議在公有云購買負(fù)載均衡設(shè)備并配置相應(yīng)的后端服務(wù)器列表以實現(xiàn)高可用的目的。
在上文中我們通過helm部署了一個wordpress應(yīng)用,本文我們繼續(xù)通過該應(yīng)用進(jìn)行域名訪問,在本機(jī)控制臺輸入 > curl -i http://10.0.0.182 -H 'Host: blog.hankercloud.com'
,如果看到有正常返回則說明部署成功
Step1: 我們首先部署了兩個ingress組件,其中之一是接收內(nèi)網(wǎng)訪問請求,另外一個是接收wai網(wǎng)訪問請求,相應(yīng)配置如下:
# 內(nèi)網(wǎng)nginx-ingress配置聲明: spec: template: spec: containers: - args: - /nginx-ingress-controller - --default-backend-service=kube-system/nginx-ingress-default-backend - --election-id=ingress-controller-leader - --ingress-class=nginx - --configmap=kube-system/nginx-ingress-controller
# 外網(wǎng)nginx-ingress配置聲明: spec: template: spec: containers: - args: - /nginx-ingress-controller - --default-backend-service=kube-system/nginx-ingress-external-default-backend - --election-id=ingress-controller-leader - --ingress-class=nginx-external - --configmap=kube-system/nginx-ingress-external-controller
兩者的主要區(qū)別在于參數(shù) --ingress-class
設(shè)置的值是不一樣的
Step2: 對于需要暴露到公網(wǎng)的域名,修改其ingress的定義,相應(yīng)配置參考如下:
metadata: name: www annotations: kubernetes.io/ingress.class: "nginx-external"
Step3: 檢查是否配置成功,執(zhí)行 kubectl exec ${POD_NAME} -n kube-system cat /etc/nginx/nginx.conf
查看配置文件中是否已經(jīng)包
到此,相信大家對“如何安裝部署Nginx-ingress”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!