Felhasználói eszközök

Eszközök a webhelyen


kubernetes:metallb

MetalLB használata

Lekérdezés

kubectl get configmap kube-proxy -n kube-system -o yaml | grep strictARP
      strictARP: false

Konfigurálás

# kubectl get configmap kube-proxy -n kube-system -o yaml | sed -e "s/strictARP: false/strictARP: true/" | kubectl diff -f - -n kube-system
diff -u -N /tmp/LIVE-3389654188/v1.ConfigMap.kube-system.kube-proxy /tmp/MERGED-321987316/v1.ConfigMap.kube-system.kube-proxy
--- /tmp/LIVE-3389654188/v1.ConfigMap.kube-system.kube-proxy	2026-03-31 03:54:29.780925664 +0200
+++ /tmp/MERGED-321987316/v1.ConfigMap.kube-system.kube-proxy	2026-03-31 03:54:29.780925664 +0200
@@ -37,7 +37,7 @@
       excludeCIDRs: null
       minSyncPeriod: 0s
       scheduler: ""
-      strictARP: false
+      strictARP: true
       syncPeriod: 0s
       tcpFinTimeout: 0s
       tcpTimeout: 0s

# kubectl get configmap kube-proxy -n kube-system -o yaml | sed -e "s/strictARP: false/strictARP: true/" | kubectl apply -f - -n kube-system
Warning: resource configmaps/kube-proxy is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
configmap/kube-proxy configured

Telepítés

# kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.15.3/config/manifests/metallb-native.yaml
namespace/metallb-system created
customresourcedefinition.apiextensions.k8s.io/bfdprofiles.metallb.io created
customresourcedefinition.apiextensions.k8s.io/bgpadvertisements.metallb.io created
customresourcedefinition.apiextensions.k8s.io/bgppeers.metallb.io created
customresourcedefinition.apiextensions.k8s.io/communities.metallb.io created
customresourcedefinition.apiextensions.k8s.io/configurationstates.metallb.io created
customresourcedefinition.apiextensions.k8s.io/ipaddresspools.metallb.io created
customresourcedefinition.apiextensions.k8s.io/l2advertisements.metallb.io created
customresourcedefinition.apiextensions.k8s.io/servicebgpstatuses.metallb.io created
customresourcedefinition.apiextensions.k8s.io/servicel2statuses.metallb.io created
serviceaccount/controller created
serviceaccount/speaker created
role.rbac.authorization.k8s.io/controller created
role.rbac.authorization.k8s.io/pod-lister created
clusterrole.rbac.authorization.k8s.io/metallb-system:controller created
clusterrole.rbac.authorization.k8s.io/metallb-system:speaker created
rolebinding.rbac.authorization.k8s.io/controller created
rolebinding.rbac.authorization.k8s.io/pod-lister created
clusterrolebinding.rbac.authorization.k8s.io/metallb-system:controller created
clusterrolebinding.rbac.authorization.k8s.io/metallb-system:speaker created
configmap/metallb-excludel2 created
secret/metallb-webhook-cert created
service/metallb-webhook-service created
deployment.apps/controller created
daemonset.apps/speaker created
validatingwebhookconfiguration.admissionregistration.k8s.io/metallb-webhook-configuration created

# kubectl get pods -n metallb-system
NAME                          READY   STATUS    RESTARTS   AGE
controller-57fdb754bc-ghj44   1/1     Running   0          2m41s
speaker-5tbwc                 1/1     Running   0          2m40s
speaker-5trkx                 1/1     Running   0          2m40s
speaker-8vtr9                 1/1     Running   0          2m40s
speaker-8ww75                 1/1     Running   0          2m40s
speaker-gdcrt                 1/1     Running   0          2m40s
speaker-htjm6                 1/1     Running   0          2m40s
speaker-jb2ql                 1/1     Running   0          2m40s
speaker-mhl62                 1/1     Running   0          2m40s
speaker-s288f                 1/1     Running   0          2m40s
speaker-t9nvg                 1/1     Running   0          2m40s
speaker-vx558                 1/1     Running   0          2m40s
speaker-w5lwt                 1/1     Running   0          2m40s

IP pool létrehozása

# cat > metallb-ip-pool.yaml <<'EOF' 
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: demo-pool
  namespace: metallb-system
spec:
  addresses:
    - 192.168.110.201-192.168.110.210
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: demo-l2
  namespace: metallb-system
spec: {}
EOF

# kubectl apply -f metallb-ip-pool.yaml 
ipaddresspool.metallb.io/demo-pool created
l2advertisement.metallb.io/demo-l2 created

Szolgáltatás létrehozása

# cat > service.yaml <<'EOF'
apiVersion: v1
kind: Service
metadata:
  name: demo-nginx-loadbalancer
spec:
  type: LoadBalancer
  selector:
    app: demo-nginx
  ports:
    - port: 80
      targetPort: 80
EOF

# kubectl apply -f service.yaml 
service/demo-nginx-loadbalancer created
kubernetes/metallb.txt · legutóbbi módosítás: – Szerkesztő: riba.zoltan