Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

쿠버네티스에서 HTTP(S)기반의 L7 로드밸런싱 기능을 제공하는 컴포넌트를 Ingress라고 한다.

Ingress Controller 설치

  • 아래와 같은 설치 명령어로 해당 파일을 배포하면 인그레스 컨트롤러의 새로운 namespace가 생성된다.

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

Metal LB 설치

온프레미스 환경에서는 로드밸런서 타입을 이용할 수 없기 때문에 로드밸런서 타입의 서비스를 배포할 수 있게 해주는 도구인 Metal Load-balancer를 설치한다.

  • 아래와 같은 설치 명령어로 해당 파일을 배포하면 Metal LB의 새로운 namespace가 생성된다.

kubectl apply -f https://raw.githubusercontent.com/google/metallb/v0.8.3/manifests/metallb.yaml

ConfigMap 배포

  • ConfigMap 배포 예제

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

11~12 라인 addresses 설정을 자신이 외부로 노출할 수 있는 IP 범위로 작성하면 된다.

  • 아래와 같은 명령어로 ConfigMap 배포

kubectl apply -f config.yaml

서비스 배포

  • 로드밸런서 타입의 Service 배포 예제

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1
        ports:
        - name: http
          containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  ports:
  - name: http
    port: 8080
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

다음과 같은 명령어로 ConfigMap 배포

kubectl apply -f service.yaml

  • No labels