Prem 502 불량 게이트웨이의 kubernate

Prem 502 불량 게이트웨이의 kubernate

안녕하세요 저는 kubernate를 설치하고 구성했습니다. minikube와 kubeadm을 모두 사용해 보았습니다. 제가 설치한 것: flannel, nginx-ingress-controller, metalLB 그런 다음 ngix-ingress-controller 서비스를 loadBalancer로 설정했습니다.

간단한 WordPress 앱을 노출하려고 할 때(clusterIp 또는 nodePort 사용) 항상 502 잘못된 게이트웨이가 발생합니다.

OS: 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)에 configmap을 생성하고 배포하여 수행됩니다.

예가 있습니다레이어 2 구성.

레이어 2 모드는 구성이 가장 간단합니다. 대부분의 경우 프로토콜별 구성은 필요하지 않고 IP 주소만 필요합니다.

레이어 2 모드에서는 IP가 작업자 노드의 네트워크 인터페이스에 바인딩될 필요가 없습니다. 로컬 네트워크의 ARP 요청에 직접 응답하여 시스템의 MAC 주소를 클라이언트에 제공하는 방식으로 작동합니다.

예를 들어 다음 구성은 192.168.1.240에서 192.168.1.250까지 IP에 대한 MetalLB 제어를 제공하고 레이어 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는 노드 IP와 관련하여 사전 정의된 범위인 192.168.99.95/105에서 주소를 전달하도록 지시받습니다. 우리의 경우 minikube의 IP를 얻기 위해 minikube ip 명령을 사용하고 구성 파일에 그에 따라 범위를 설정합니다.

여기에 이미지 설명을 입력하세요 여기에 이미지 설명을 입력하세요

관련 정보