Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

Table of Contents

Ingress Controller 설치

...

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

GitLab Admin Area > Kubernetes cluster > Applications tab > Ingress 설치 시 자동으로 설치가 된다.

Metal LB 설치

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

...

  • ConfigMap 배포 예제

Code Block
languageyaml
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

...

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

Code Block
languageyaml
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 서비스 배포

Code Block
kubectl apply -f service.yaml

...