Kubernetes實戰(zhàn):集群中部署NGINX Ingress Controller

簡介

ingress簡單介紹
ingress由兩部分組成:ingress controller和ingress服務(wù)衅斩。

ingress controller通過和kubernetes api交互,動態(tài)的去感知集群中ingress規(guī)則變化怠褐,然后讀取它畏梆,按照自定義的規(guī)則,規(guī)則就是寫明了哪個域名對應(yīng)哪個service奈懒,生成一段nginx配置奠涌,再寫到nginx-ingress-control的pod里,這個Ingress controller的pod里運行著一個Nginx服務(wù)磷杏,控制器會把生成的nginx配置寫入/etc/nginx.conf文件中溜畅,然后reload一下使配置生效柳畔。以此達(dá)到域名分配置和動態(tài)更新的問題际邻。

1殃姓、下載文件

下載目錄:
https://github.com/kubernetes/ingress-nginx/tree/master/deploy

yaml文件說明:

  • namespace.yaml 這個文件用來創(chuàng)建ingress-nginx的namespace仆邓,ingress-nginx的相關(guān)組件都將在這個namespace下桨菜。

  • configmap.yaml ConfigMap是存儲通用的配置變量的逼裆,類似于配置文件诗力,使用戶可以將分布式系統(tǒng)中用于不同模塊的環(huán)境變量統(tǒng)一到一個對象中管理烙心;而它與配置文件的區(qū)別在于它是存在集群的“環(huán)境”中的稿械,并且支持K8S集群中所有通用的操作調(diào)用方式选泻。

    從數(shù)據(jù)角度來看,ConfigMap的類型只是鍵值組,用于存儲被Pod或者其他資源對象(如RC)訪問的信息滔金。這與secret的設(shè)計理念有異曲同工之妙色解,主要區(qū)別在于ConfigMap通常不用于存儲敏感信息,而只存儲簡單的文本信息餐茵。

    ConfigMap可以保存環(huán)境變量的屬性科阎,也可以保存配置文件。

    創(chuàng)建pod時忿族,對configmap進(jìn)行綁定锣笨,pod內(nèi)的應(yīng)用可以直接引用ConfigMap的配置。相當(dāng)于configmap為應(yīng)用/運行環(huán)境封裝配置道批。

    pod使用ConfigMap错英,通常用于:設(shè)置環(huán)境變量的值、設(shè)置命令行參數(shù)隆豹、創(chuàng)建配置文件椭岩。

  • default-backend.yaml default-http-backend從名稱上來看即默認(rèn)的后端,當(dāng)集群外部的請求通過ingress進(jìn)入到集群內(nèi)部時璃赡,如果無法負(fù)載到相關(guān)后端的Service上判哥,這種未知的請求將會被負(fù)載到這個默認(rèn)的后端上

  • rbac.yaml 創(chuàng)建ServiceAccount nginx-ingress-serviceaccount,并創(chuàng)建相關(guān)的ClusterRole, Role, ClusterRoleBinding, RoleBinding以對其進(jìn)行授權(quán)
    簡易說明:
    Service Account它并不是給kubernetes集群的用戶使用的碉考,而是給pod里面的進(jìn)程使用的塌计,它為pod提供必要的身份認(rèn)證。

  • with-rbac.yaml 這是nginx-ingress-controller
    簡易說明:
    serviceAccountName: nginx-ingress-serviceaccount
    這是用前面配置的serviceAccount

2侯谁、部署

其中我們只需要執(zhí)行kubectl apply -f mandatory.yaml就可以了锌仅,因為這個yaml文件包含了其他yaml文件的所有內(nèi)容

??default-http的鏡像默認(rèn)是google的鏡像地址,你懂得墙贱,所以替換成國內(nèi)鏡像地址image: registry.cn-hangzhou.aliyuncs.com/google_containers/defaultbackend:1.4

3热芹、檢查服務(wù)

kubectl get pod -n ingress-nginx


如果這里不是 Running那么你可能沒有下載完鏡像。

4惨撇、為nginx-ingress-controller創(chuàng)建一個Service并暴露到集群外邊

# cat ingress-nginx.svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
spec:
  externalIPs:
  - 192.168.63.101
  - 192.168.63.131
  - 192.168.63.148
  - 192.168.63.149
  - 192.168.63.151
  ports:
  - name: http
    port: 80
    targetPort: 80
    protocol: TCP
  - name: https
    port: 443
    targetPort: 443
    protocol: TCP
  selector:
    app: ingress-nginx

??說明:
externalIPs
external-ip指的是對外暴露的ip地址,一般用公網(wǎng)IP地址,執(zhí)行那個命令過后,我們就可以在公網(wǎng)上訪問了,

但是這里有個問題就是這個IP地址必須是安裝了k8s的機(jī)器的IP,如果你隨便用一個IP是不能訪問的.

如果以上都顯示正常剿吻,ingress-controller部署完成了。

5串纺、添加配置ingress轉(zhuǎn)發(fā)規(guī)則

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  namespace: monitoring
spec:
  rules:
  - host: grafana.mritd.me
    http:
      paths:
      - path: /
        backend:
          serviceName: grafana
          servicePort: 3000

這里為了測試我直接使用了搭建集群的時候配置的grafana服務(wù)丽旅,可以根據(jù)你想跳轉(zhuǎn)的服務(wù)進(jìn)行更改。

??說明 描述
namespace grafana服務(wù)所在的命名空間
host 你的域名
servicePort grafana服務(wù)的port端口

執(zhí)行完后查看

6纺棺、測試

如果你是用了個假域名來測試榄笙,那么在你的/etc/hosts中添加域名的DNS進(jìn)行訪問。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末祷蝌,一起剝皮案震驚了整個濱河市茅撞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖米丘,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剑令,死亡現(xiàn)場離奇詭異,居然都是意外死亡拄查,警方通過查閱死者的電腦和手機(jī)吁津,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來堕扶,“玉大人碍脏,你說我怎么就攤上這事∩运悖” “怎么了典尾?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長糊探。 經(jīng)常有香客問我钾埂,道長,這世上最難降的妖魔是什么科平? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任褥紫,我火速辦了婚禮,結(jié)果婚禮上匠抗,老公的妹妹穿的比我還像新娘故源。我一直安慰自己污抬,他們只是感情好汞贸,可當(dāng)我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著印机,像睡著了一般矢腻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上射赛,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天多柑,我揣著相機(jī)與錄音,去河邊找鬼楣责。 笑死竣灌,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的秆麸。 我是一名探鬼主播初嘹,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼沮趣!你這毒婦竟也來了屯烦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎驻龟,沒想到半個月后温眉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡翁狐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年类溢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谴蔑。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡豌骏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出隐锭,到底是詐尸還是另有隱情窃躲,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布钦睡,位于F島的核電站蒂窒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏荞怒。R本人自食惡果不足惜洒琢,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望褐桌。 院中可真熱鬧衰抑,春花似錦、人聲如沸荧嵌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啦撮。三九已至谭网,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赃春,已是汗流浹背愉择。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留织中,地道東北人锥涕。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像狭吼,于是被迫代替她去往敵國和親层坠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容