MetalLB 新手攻略:零壓力實現無縫部署

閱讀時間約 11 分鐘

延續上篇的內容,在了解了MetalLB的基本概念之後,我們就進入實際上部署的動作,還沒看過的可以到以下連結先有個基本概念:

讓我們一步一步建構出我們需要的服務

讓我們一步一步建構出我們需要的服務

本篇針對部署一個最基本的MetalLB的做法,共分成四個部分來進行說明:

  1. 安裝前確認
  2. 部署
  3. 測試
  4. 結論

準備好您的Kubernetes Cluster之後,那我們就開始吧!!


1.安裝前確認

跟據官網目前文件上所寫的需求如下:

  • K8S 版本在1.13.0以上,並且沒有安裝其他的Loadbalancer
  • 相容於MetalLB的CNI(參考:https://metallb.universe.tf/installation/network-addons/),我的環境是使用Calico,屬於”大部分”功能相容。
  • 配置給MetalLB分配的數個IP位址
  • 如果使用BGP模式,確認硬體是否支援(本篇使用L2模式)
  • 使用L2模式時,確認每個節點的7946 Port允許通過(TCP/UDP),memberlist功能使用。
  • 在v0.13.0版之後,MetalLB也支援CRD的方式,如果還是用configmap的方式,可以用以下方式進行轉換:

2.部署

確認了所有預先需求後,就可以開始進行安裝,官方的安裝方式有YAML, Helm, Operator的方式,為了能更清楚元件的內容到底是在做什麼,本篇選擇最基本的YAML方式進行部署作業,實務上可以使用Helm或是Operator的方式來進行部署,在管理上會更加容易(由其是像OpenShift等等商用解決方案)。

#---------------------------------------------------------
# (option) 如果kube-proxy使用ipvs mode,要記得去修成strict arp
#---------------------------------------------------------
[lb01]# kubectl edit configmap -n kube-system kube-proxy
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: "ipvs"
ipvs:
strictARP: true
#---------------------------------------------------------
# S2-1. 取得YAML
#---------------------------------------------------------
[master]# wget https://raw.githubusercontent.com/metallb/metallb/v0.13.7/config/manifests/metallb-native.yaml
[master]# wget https://raw.githubusercontent.com/metallb/metallb/v0.13.7/config/manifests/metallb-frr.yaml
#---------------------------------------------------------
# S2-2. 執行
#---------------------------------------------------------
[master]# kubectl create ns metallb-system
[master]# kubectl apply -f metallb-native.yaml -n metallb-system
[master]# kubectl apply -f metallb-frr.yaml -n metallb-system
raw-image
#---------------------------------------------------------
# S2-3. 建立IP-Pool
#---------------------------------------------------------
[master]# vim ipv4-pool.yaml
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: first-pool
namespace: metallb-system
spec:
addresses: #可分配的 IP 地址,可以指定多个,包括 ipv4、ipv6
- 172.20.175.140-172.20.175.150

[master]# kubectl apply -f ipv4-pool.yaml
建立好的IP Pool

建立好的IP Pool

#---------------------------------------------------------
# S2-4. 建立L2-Advertrisement,與ipv4pool binding
# L2模式的工作方式是回應本地網路的ARP request,將node MAC提供給客戶端
# (如果不設定與ipaddresspool綁定,預設L2Advertisement會關聯所有可用的IPAdressPool)
#---------------------------------------------------------
[master]# vim L2advertisement.yaml
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: example
namespace: metallb-system
spec:
ipAddressPools:
- first-pool

[master]# kubectl apply -f L2advertment.yaml
綁定

綁定

到此就完成了MetalLB L2模式的基本建置,接下來進行測試,確認是否可以正常以”loadbalancer”的Type取得IP位址。


3.測試

#---------------------------------------------------------
# S3-1. 建立nginx service
#---------------------------------------------------------
[master]# vim nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: docker.io/nginx:latest
ports:
- containerPort: 80

[master]# kubectl create -f nginx-deployment.yaml
[master]# kubectl get all
raw-image
#---------------------------------------------------------
# S3-2. 建立nginx svc
#---------------------------------------------------------
[master]# vim nginx-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx2
labels:
app: nginx
spec:
selector:
app: nginx
ports:
- name: nginx-port
protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer

[master]# kubectl create -f nginx-svc.yaml
#---------------------------------------------------------
# S3-3. 確認是否已分配externalIP
#---------------------------------------------------------
[master]# kubectl get svc nginx
[master]# curl http://<externalip>
=> 可以訪問表示服務正常
raw-image
確認功能正常,可以從IP Pool取得IP

確認功能正常,可以從IP Pool取得IP


4.結論

總結而言,使用MetalLB的最大好處在於為Kubernetes集群提供了強大的負載均衡功能,使服務更可靠、可擴展,且更易於管理。對於正式環境上的應用時,建議進行詳細的規劃和測試,確保它符合應用需求與管理需求,因為它也是屬於基礎架構的一環,如果出現問題可能會直接影響服務,記得注意應未來的擴展和負載增長議題。

當然,相較於Cloud Loadbalancer,還是有一些缺點如下:

  1. MetalLB可能不如某些雲端提供的負載均衡服務功能強大,並且可能無法滿足某些高級需求,如全球負載均衡。
  2. 需要一定的網路知識:配置MetalLB可能需要一定的網路知識,尤其是在BGP模式下。
  3. 安全性:如果不正確配置,MetalLB可能會導致安全風險,因為它公開了一些Kubernetes服務,這需要謹慎的設定。

最後,以下網頁有列出一些類似的產品/工具供大家參考:

綜合上一篇的基本介紹,相信大家都已經可以建構出基本的MetalLB服務,對於沒有上公有雲環境的我,使用MetalLB讓我在地端也可以在這個部分使用到類似公有雲服務的功能,同時在提供服務時,也更為方便對外暴露位址。

好了,本篇就分享到這邊為止,如果對您有任何幫助,也請給我鼓勵,那我們就下期再見囉!!


References:





avatar-img
15會員
40內容數
記錄IT社畜的自我學習筆記,如同專題名稱,主要是怕自已忘記自已做過什麼、學到什麼。索性就分享我自已在學習Kubernetes這條路上的各種測試、學習心得。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
超健忘閒人的沙龍 的其他內容
今天跟大家分享在地端資料中心內建立Kubernetes叢集之後,如何針對網路進行更進一步的優化。除了CNI(容器網路接口)的設定,實務上我還會再另行建立Loadbalancer的機制。
在現今快速發展的數據應用環境之下,Kubernetes已經成為部署和管理容器化應用的首選平台。但是隨著應用服務愈來愈複雜、被攻擊的風險也愈來愈高。為了保護Kubernetes環境的安全性,跟大家介紹一個針對Kubernetes安全合規掃描的工具,幫助確保您的 Kubernetes 叢集設置和應用程序
接續上一篇文章,本文再深入一點關於ETCD基本操作以及在其他文章中關於ETCD節點資料不一致情況的除錯內容分享
建立Kubernetes cluster時,ETCD 是必不可少的元件,事實上Kubernetes所有資料都會存進ETCD store中,如果要讓Kubernetes的運行效能更好,其中一種方法是在部署之前對ETCD的性能進行優化設計。
今天來記錄版本升級的做法(z版號),Kubernetes的版本更新的很快,所以版本升級是每個管理者所必須要會的必備技能,建議版本升級之前要先去確認升級路徑,不是每個版本號都能一次升級到你需要的版本。
知道如何備份與還原ETCD才能確保當環境出現重大問題時,可以將你的環境回復回來,對於系統管理者來說,等於是救人一命。(認真來說其實也是救了你的主管一命)。
今天跟大家分享在地端資料中心內建立Kubernetes叢集之後,如何針對網路進行更進一步的優化。除了CNI(容器網路接口)的設定,實務上我還會再另行建立Loadbalancer的機制。
在現今快速發展的數據應用環境之下,Kubernetes已經成為部署和管理容器化應用的首選平台。但是隨著應用服務愈來愈複雜、被攻擊的風險也愈來愈高。為了保護Kubernetes環境的安全性,跟大家介紹一個針對Kubernetes安全合規掃描的工具,幫助確保您的 Kubernetes 叢集設置和應用程序
接續上一篇文章,本文再深入一點關於ETCD基本操作以及在其他文章中關於ETCD節點資料不一致情況的除錯內容分享
建立Kubernetes cluster時,ETCD 是必不可少的元件,事實上Kubernetes所有資料都會存進ETCD store中,如果要讓Kubernetes的運行效能更好,其中一種方法是在部署之前對ETCD的性能進行優化設計。
今天來記錄版本升級的做法(z版號),Kubernetes的版本更新的很快,所以版本升級是每個管理者所必須要會的必備技能,建議版本升級之前要先去確認升級路徑,不是每個版本號都能一次升級到你需要的版本。
知道如何備份與還原ETCD才能確保當環境出現重大問題時,可以將你的環境回復回來,對於系統管理者來說,等於是救人一命。(認真來說其實也是救了你的主管一命)。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
上嘉明湖裝備怎麼帶,大概要背幾公斤?什麼該帶什麼不該帶,如何減輕重量?負重、體能訓練怎麼做?即使是新手也能上嘉明湖,但前提還是要做好準備,為了自身的健康安全以及不造成麻煩,在深山昏倒失溫可是很可怕的。本篇為不專業說明,較偏向體驗心得分享的部分,所以僅提供大家參考...
市場の現状と将来展望に関する包括的な洞察を提供する、自動車照明市場2023年調査報告書がリリースされました。当レポートでは、業界の市場動向、成長促進要因、課題、機会などの詳細な分析に加え、競争環境と市場主要企業の市場シェア分析についても徹底検証しています。https://www.cienciared
購房是一個漫長且複雜的過程,但只要您遵循上述步驟,做好充分的準備與研究,定能在房地產市場上找到理想的房子,成功擁有第一間房。
Thumbnail
大家好~這裡是玫玫物語 要來分享Fire Emblem Engage的新手開荒攻略,遊戲中有許多應該要早點知道的事,像是解鎖飾品店的第一件事,就是應該把全部女角換裝成泳裝,這麼重要的資訊能不知道嗎??除此之外我還整理了八個實用的新手攻略,幫助大家節省大量遊戲時間,以及快速提升前期戰力
Thumbnail
前言 大家好~這裡是玫玫物語 今天要來分享一下寶可夢朱紫的新手開荒攻略,總共整理了八項,每一項都是遊戲中的重點,幫助大家在前期取得最好的遊戲體驗~本作一大特色就是開放世界,遊戲才剛開始,整個地圖就都可以探索,自由度超高,所以今天要來分享一些前期必須要注意,以及一些剛開始玩容易看不懂的地方,包括三條主
Thumbnail
《異度神劍3》 前言 大家好~這裡是AdaLee Gaming 異度神劍中,最核心的玩法就是他多樣化的戰鬥系統了,也是新手一開始比較難懂的地方,這個文章會介紹什麼是「取消攻擊」,以及延伸出來前期好用的連招,讓你可以輕鬆虐怪,把Boss壓在地上磨擦,那我們就立刻開始吧! 影片介紹: 遊戲攻略 結語
Thumbnail
常態的Kobo電子書優惠,是包含樂天超級點數、今日99、周末555贈點、精選85折以及周年慶。買了Kobo閱讀器之後,接下來買書才是重頭戲,因此這篇文章把我知道的所有優惠消息管道告訴你!
Thumbnail
越南電商銷售是一種趨勢。與實體通路相比,因為電商可以吸引大量客戶,具有許多優惠政策並具有許多突出的優勢。如果您打算在上述平台做交易並註冊販售產品,請遵循以下規則: 參加越南電商平台的條件: TIKI:您需要商業登記證(用於商業)或商業戶口登記證(用於個人,家庭)。 Shopee / Lazada:
Thumbnail
每年出的香水不下幾百、幾千種,但平均只有幾支能讓我用驚為天人來形容,Tom Ford的這支Metallique絕對是驚為天人第一名,不只是因為香味好聞,最大原因是它顛覆了一般習慣的前中後味的順序……
Thumbnail
陽光、海灘、浮潛、耍廢、不跟團 很多水上活動、美食跟Free Bar 如果這也是你想要的蜜月 馬爾地夫就是完美選擇!
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
上嘉明湖裝備怎麼帶,大概要背幾公斤?什麼該帶什麼不該帶,如何減輕重量?負重、體能訓練怎麼做?即使是新手也能上嘉明湖,但前提還是要做好準備,為了自身的健康安全以及不造成麻煩,在深山昏倒失溫可是很可怕的。本篇為不專業說明,較偏向體驗心得分享的部分,所以僅提供大家參考...
市場の現状と将来展望に関する包括的な洞察を提供する、自動車照明市場2023年調査報告書がリリースされました。当レポートでは、業界の市場動向、成長促進要因、課題、機会などの詳細な分析に加え、競争環境と市場主要企業の市場シェア分析についても徹底検証しています。https://www.cienciared
購房是一個漫長且複雜的過程,但只要您遵循上述步驟,做好充分的準備與研究,定能在房地產市場上找到理想的房子,成功擁有第一間房。
Thumbnail
大家好~這裡是玫玫物語 要來分享Fire Emblem Engage的新手開荒攻略,遊戲中有許多應該要早點知道的事,像是解鎖飾品店的第一件事,就是應該把全部女角換裝成泳裝,這麼重要的資訊能不知道嗎??除此之外我還整理了八個實用的新手攻略,幫助大家節省大量遊戲時間,以及快速提升前期戰力
Thumbnail
前言 大家好~這裡是玫玫物語 今天要來分享一下寶可夢朱紫的新手開荒攻略,總共整理了八項,每一項都是遊戲中的重點,幫助大家在前期取得最好的遊戲體驗~本作一大特色就是開放世界,遊戲才剛開始,整個地圖就都可以探索,自由度超高,所以今天要來分享一些前期必須要注意,以及一些剛開始玩容易看不懂的地方,包括三條主
Thumbnail
《異度神劍3》 前言 大家好~這裡是AdaLee Gaming 異度神劍中,最核心的玩法就是他多樣化的戰鬥系統了,也是新手一開始比較難懂的地方,這個文章會介紹什麼是「取消攻擊」,以及延伸出來前期好用的連招,讓你可以輕鬆虐怪,把Boss壓在地上磨擦,那我們就立刻開始吧! 影片介紹: 遊戲攻略 結語
Thumbnail
常態的Kobo電子書優惠,是包含樂天超級點數、今日99、周末555贈點、精選85折以及周年慶。買了Kobo閱讀器之後,接下來買書才是重頭戲,因此這篇文章把我知道的所有優惠消息管道告訴你!
Thumbnail
越南電商銷售是一種趨勢。與實體通路相比,因為電商可以吸引大量客戶,具有許多優惠政策並具有許多突出的優勢。如果您打算在上述平台做交易並註冊販售產品,請遵循以下規則: 參加越南電商平台的條件: TIKI:您需要商業登記證(用於商業)或商業戶口登記證(用於個人,家庭)。 Shopee / Lazada:
Thumbnail
每年出的香水不下幾百、幾千種,但平均只有幾支能讓我用驚為天人來形容,Tom Ford的這支Metallique絕對是驚為天人第一名,不只是因為香味好聞,最大原因是它顛覆了一般習慣的前中後味的順序……
Thumbnail
陽光、海灘、浮潛、耍廢、不跟團 很多水上活動、美食跟Free Bar 如果這也是你想要的蜜月 馬爾地夫就是完美選擇!