Kubernetes-Ingress 支持TCP/UDP的負載均衡

配置默認的backend

為了讓Ingress Controller正常啟動,需要給它配置一個默認的backend,用于當客戶端訪問的URL地址不存在時,能夠返回一個正確的404應答。

這個backend服務用任何應用實現都可以,只要滿足默認對/path的訪問返回404的應答,同時能夠提供/healthz路徑以提供kubelet完成對它的健康檢查。

這里default-backend的定義文件復制于kubernetes官方文檔。?

https://github.com/kubernetes/ingress/blob/master/examples/deployment/nginx/default-backend.yaml

所需鏡像地址為:gcr.io/google_containers/defaultbackend:1.0?

這里我已經push到了本地倉庫里。?

內容如下:

apiVersion: extensions/v1beta1kind:Deploymentmetadata:? name:default-http-backendlabels:? ? k8s-app:default-http-backendnamespace: kube-systemspec:? replicas:1template:? ? metadata:? ? ? labels:? ? ? ? k8s-app:default-http-backendspec:? ? ? terminationGracePeriodSeconds:60containers:? ? ? - name:default-http-backend#Anyimage is permissableaslongas:? ? ? ? #1.Itserves a404page at /? ? ? ? #2.Itserves200on a /healthz endpoint? ? ? ? image:192.168.121.140:5000/defaultbackend? ? ? ? livenessProbe:? ? ? ? ? httpGet:? ? ? ? ? ? path: /healthz? ? ? ? ? ? port:8080scheme:HTTPinitialDelaySeconds:30timeoutSeconds:5ports:? ? ? ? - containerPort:8080resources:? ? ? ? ? limits:? ? ? ? ? ? cpu:10m? ? ? ? ? ? memory:20Mi? ? ? ? ? requests:? ? ? ? ? ? cpu:10m? ? ? ? ? ? memory:20Mi---apiVersion: v1kind:Servicemetadata:? name:default-http-backendnamespace: kube-system? labels:? ? k8s-app:default-http-backendspec:? ports:? - port:80targetPort:8080selector:? ? k8s-app:default-http-backend

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

創建backend

# kubectl apply -f default-backend.yaml

1

創建Ingress Controller

在kubernetes中,Ingress Controller將以Pod的形式運行,監控apiserver的/ingress接口后端的backend services,如果service發生變化,則Ingress Controller自動更新其轉發規則。

在此使用谷歌提供的nginx-ingress-controller鏡像。鏡像地址為:gcr.io/google_containers/nginx-ingress-controller:0.9.0-beta.11(yaml中修改為了本地鏡像)

這里是針對TCP的負載均衡例子。

kubernetes學習記錄(6)——Guestbook Demo?frontend service做負載均衡。

首先是nginx-tcp-ingress-configmap.yaml

yaml定義文件復制自https://github.com/kubernetes/ingress/blob/master/examples/tcp/nginx/nginx-tcp-ingress-configmap.yaml?

內容如下:(將9000端口轉發到defaulf/frontend:80服務端口上)

apiVersion: v1kind: ConfigMapmetadata:? name: nginx-tcp-ingress-configmapnamespace: kube-systemdata:9000:"default/frontend:80"

1

2

3

4

5

6

7

創建

# kubectl create -f nginx-tcp-ingress-configmap.yaml

1

nginx-tcp-ingress-controller.yaml定義文件復制自https://github.com/kubernetes/ingress/blob/master/examples/tcp/nginx/nginx-tcp-ingress-controller.yaml

內容如下:

apiVersion: v1kind: ReplicationControllermetadata:? name: nginx-ingress-controllerlabels:? ? k8s-app: nginx-ingress-lbnamespace: kube-systemspec:? replicas:1selector:? ? k8s-app: nginx-tcp-ingress-lbtemplate:? ? metadata:? ? ? labels:? ? ? ? k8s-app: nginx-tcp-ingress-lbname: nginx-tcp-ingress-lbspec:? ? ? terminationGracePeriodSeconds:60containers:-image:192.168.121.140:5000/nginx-ingress-controllername: nginx-tcp-ingress-lbreadinessProbe:? ? ? ? ? httpGet:? ? ? ? ? ? path: /healthz? ? ? ? ? ? port:10254scheme: HTTP? ? ? ? livenessProbe:? ? ? ? ? httpGet:? ? ? ? ? ? path: /healthz? ? ? ? ? ? port:10254scheme: HTTP? ? ? ? ? initialDelaySeconds:10timeoutSeconds:1env:-name: POD_NAME? ? ? ? ? ? valueFrom:? ? ? ? ? ? ? fieldRef:? ? ? ? ? ? ? ? fieldPath: metadata.name-name: POD_NAMESPACE? ? ? ? ? ? valueFrom:? ? ? ? ? ? ? fieldRef:? ? ? ? ? ? ? ? fieldPath: metadata.namespace? ? ? ? ports:-containerPort:80hostPort:80-containerPort:443hostPort:443-containerPort:9000hostPort:9000args:-/nginx-ingress-controller---default-backend-service=$(POD_NAMESPACE)/default-http-backend---tcp-services-configmap=$(POD_NAMESPACE)/nginx-tcp-ingress-configmap

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

創建:

# kubectl create -f nginx-tcp-ingress-controller.yaml

1

驗證

從上圖看出nginx-ingress-controller-fm45m運行在192.168.121.145上。之前的nginx-tcp-ingress-configmap定義的端口號是9000。

訪問192.168.121.145:9000直接可以訪問到Guestbook。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,533評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,055評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,365評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,561評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,346評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,889評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,978評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,118評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,637評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,558評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,739評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,246評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,980評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,619評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,347評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,702評論 2 370

推薦閱讀更多精彩內容

  • 安裝k8s Master高可用集群 主機 角色 組件 172.18.6.101 K8S Master Kubele...
    jony456123閱讀 8,072評論 0 9
  • Kubernetes Ingress概念及部署 1概述 。ClusterIP網絡僅限集群內通信,NodePort可...
    YichenWong閱讀 10,699評論 0 8
  • 版權聲明:原創作品,謝絕轉載!否則將追究法律責任。 前言 最近中國和印度的局勢也是愈演愈烈。作為一個愛國青年我有些...
    李偉銘MIng閱讀 2,075評論 0 5
  • kubernetes 簡介 一個迅速過一遍kubernetes 非常不錯的資源:基于Kubernetes構建Doc...
    bradyjoestar閱讀 15,294評論 2 7
  • 我和你之間,應該算不上是有故事,因為故事都有結局,無論好壞,無論歡喜或者悲情,都是有結果的,而你,留給我的是無盡頭...
    二豆君閱讀 361評論 6 4