跳过正文
Kubernetes【Metallb.io】
  1. 云原生/

Kubernetes【Metallb.io】

·427 字·1 分钟·
目录
metallb - 这篇文章属于一个选集。
§ 1: 本文

MetalLB 为内网裸机(Bare Metal)集群补齐了缺失的 云能力

metallb
#

核心概括:

  1. 自动化派发 IP(Address Allocation): 它就像集群内部的 DHCP 服务器。当你创建一个 type: LoadBalancer 的服务时,MetalLB 会从你预设的本地内网地址池中自动分配一个可用的 IP 给该服务。
  2. 对外宣告(External Announcement): 分配好 IP 后,MetalLB 需要让局域网内的其他设备(如交换机或其他服务器)知道:这个 IP 现在由我的某个 K8s 节点承载。它通常通过 ARP (Layer 2 模式) 或 BGP (三层路由模式) 协议来广播这一信息,从而实现流量的精准引导。

部署安装
#

  1. 安装
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.15.3/config/manifests/metallb-native.yaml
  1. 验证
root@kubernetes01:~/metallb# kubectl get pods -n metallb-system 
NAME                         READY   STATUS    RESTARTS   AGE
controller-9c6cff498-bg8fz   1/1     Running   0          14h
speaker-5v59w                1/1     Running   0          14h
speaker-92fdj                1/1     Running   0          14h
speaker-mw7jk                1/1     Running   0          14h
speaker-mzm6j                1/1     Running   0          14h
speaker-nbvwc                1/1     Running   0          14h
speaker-qtpgk                1/1     Running   0          14h

配置地址
#

  1. 创建 metallb-config.yaml
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: istio-pool
  namespace: metallb-system
spec:
  addresses:
  - 10.64.69.151-10.64.69.200
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: istio-advert
  namespace: metallb-system
spec:
  ipAddressPools:
  - istio-pool

运行: kubectl apply -f metallb-config.yaml

  1. 验证服务
#
root@kubernetes01:~/metallb# kubectl get ipaddresspools.metallb.io -n metallb-system 
NAME         AUTO ASSIGN   AVOID BUGGY IPS   ADDRESSES
istio-pool   true          false             ["10.64.69.151-10.64.69.200"]

#
root@kubernetes01:~/metallb# kubectl get l2advertisements.metallb.io -n metallb-system 
NAME           IPADDRESSPOOLS   IPADDRESSPOOL SELECTORS   INTERFACES
istio-advert   ["istio-pool"] 
  1. 检查 EXTERNAL-IP
root@kubernetes01:~/metallb# kubectl get svc -n istio-system 
NAME                    TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)                                      AGE
istio-ingressgateway    LoadBalancer   10.97.215.9    10.64.69.151   15021:31696/TCP,80:32060/TCP,443:31509/TCP   14h
istiod                  ClusterIP      10.101.77.37   <none>         15010/TCP,15012/TCP,443/TCP,15014/TCP        14h
knative-local-gateway   ClusterIP      10.98.2.124    <none>         80/TCP,443/TCP                               14h

结语
#


参考:

metallb - 这篇文章属于一个选集。
§ 1: 本文

相关文章


微信赞赏
微信赞赏
关注公众号
关注公众号
支付宝赞赏
支付宝赞赏