Kubertnetes 与 metallb - 负载均衡器服务处于待处理状态

Kubertnetes 与 metallb - 负载均衡器服务处于待处理状态

我已按照 metallb 网站上的安装步骤进行操作。

并且 metallb 容器也正在运行。

之后,我部署了一个 nginx 服务进行测试,并将服务作为 LoadBalancer。LoadBalancer 没有从 metallb 获取 IP。

对于如何解决这个问题,有任何的建议吗?

答案1

由于我无法写评论,因此将在这里添加所有详细信息和路径。

我用了下一页用于设置 Metal 负载均衡器。

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.6/manifests/namespace.yaml
kubectl apply -f
https://raw.githubusercontent.com/metallb/metallb/v0.9.6/manifests/metallb.yaml
# On first install only
kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"

您可以通过运行以下命令来验证安装:

kubectl get all -n metallb-system

NAME                              READY   STATUS    RESTARTS   AGE
pod/controller-64f86798cc-cfb5t   1/1     Running   0          8m35s
pod/speaker-8vwhc                 1/1     Running   0          8m35s
pod/speaker-zs8zk                 1/1     Running   0          8m35s

NAME                     DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
daemonset.apps/speaker   2         2         2       2            2           kubernetes.io/os=linux   8m35s

NAME                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/controller   1/1     1            1           8m35s

NAME                                    DESIRED   CURRENT   READY   AGE
replicaset.apps/controller-64f86798cc   1         1         1       8m35s

文档说:

安装清单不包含配置文件。MetalLB 的组件仍将启动,但将保持空闲状态,直到您定义并部署配置映射

所以我们去与设置 configmap 相关的页面,我使用了简单的第 2 层配置,并创建了一个 metallb-configmap.yaml 文件:

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 192.168.1.240-192.168.1.250

完成后,您需要应用此配置图:

kubectl apply -f metallb-configmap.yaml

然后是使用 nginx 部署的简单示例:

kubectl create deploy nginx --image=nginx --replicas=1

服务:

kubectl expose deploy nginx --port=80 --type=LoadBalancer

并检查是否收到外部 IP 地址:

kubectl get svc

NAME                                 TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)                      AGE
nginx                                LoadBalancer   10.101.83.208   192.168.1.241   80:31836/TCP                 8m44s

检查这个是否有效:

curl -L 192.168.1.241

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>

如果您有不同的结果请告诉我。

相关内容