prem 上的 kubernates 502 网关错误

prem 上的 kubernates 502 网关错误

你好,我已经安装并配置了 kubernates,我已经尝试了 minikube 和 kubeadm,我已经安装了:flannel、nginx-ingress-controller、metalLB,然后将 ngix-ingress-controller 服务设置为 loadBalancer

当我尝试公开一个简单的 wordpress 应用程序(使用 clusterIp 甚至 nodePort)时,我总是得到 502 bad gateway

操作系统:ubuntu 20.04 LTS 安装了 docker-ce、kubeadm 和 kubelt(kubernates 官方站点教程)

安装程序我已经关注:Kube init:

kubeadm init --pod-network-cidr=10.244.0.0/16

kubectl taint nodes --all node-role.kubernetes.io/master-

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

绒布:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

nginx

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/deploy.yaml

metallb:遵循现场教程

我尝试将 ingress-nginx-controller 服务更改为 LoadBalancer 并添加 externalIP,但没有任何变化

这是我的 yaml: 服务

apiVersion: v1
kind: Service
metadata:
  labels:
    appcluster: kubernetes
    app: wordpress
  name: wordpress-service
spec:
  ports:
  - port: 80
    targetPort: 80
    name: http-port
  selector:
    app: wordpress
  type: ClusterIP

入口

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: wordpress-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
    - host: ethernial.com
      http:
        paths:
          - path: /?(.*)
            backend:
              serviceName: wordpress-service
              servicePort: 80

答案1

感谢@Jakub,我错过了配置 metalLB(创建配置图),然后我已将 ingress-nginx-controller 设置为 loadBalancer 完美运行

答案2

只是为了澄清这里出了什么问题。

正如 MetalLB 中提到的文档

MetalLB 保持空闲状态直至配置完成。这是通过创建配置映射并将其部署到与部署相同的命名空间 (metallb-system) 中来实现的。

有一个例子第 2 层配置

第 2 层模式是配置最简单的:在许多情况下,您不需要任何特定于协议的配置,只需要 IP 地址。

第 2 层模式不需要将 IP 绑定到工作节点的网络接口。它通过直接响应本地网络上的 ARP 请求来工作,从而将机器的 MAC 地址提供给客户端。

例如以下配置让 MetalLB 控制从 192.168.1.240 到 192.168.1.250 的 IP,并配置第 2 层模式:

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

此外还有很棒的教程中等的它解释了如何在 minikube 上从头开始进行设置。

MetalLB 包含两条信息:协议和 IP 地址范围。在此配置中,MetalLB 被指示从 192.168.99.95/105 分发地址,这是我们针对节点 IP 的预定义范围。在我们的例子中,为了获取 minikube 的 IP,我们使用 minikube ip 命令并在配置文件中相应地设置范围。

在此处输入图片描述 在此处输入图片描述

相关内容