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

Version 1 Current »

Ingress Controller 설치

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

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

호스트 설정

  • localhost 포워딩

$ sudo vi /etc/hosts 

...
127.0.0.1 local.twoseed.co.kr

서비스 배포

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

vi service.yaml

apiVersion: v1
kind: Service
metadata:
  name: ch-world-service
spec:
  selector:
    app: ch-world
  type: NodePort
  ports:
    - name: http
      port: 85
      protocol: TCP
      targetPort: 5000

다음과 같은 명령어로 서비스 배포

$ kubectl apply -f service.yaml

Deployment 배포

  • ingress-nginx가 포워딩할 웹어플리케이션 pod 배포 예제

본 예제는 Local에 설치되어 있는 Harbor에 배포된 이미지를 활용하였다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ch-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ch-world
  template:
    metadata:
      labels: # labels to select/identify the deployment
        app: ch-world
    spec:          containers:
      - name: ch-world
        image: local.registry.co.kr/deploy/deploy:template_nodejs
        imagePullPolicy: Always
        ports:
        - containerPort: 5000
        livenessProbe:
          httpGet:
            port: 5000
            path: /
          initialDelaySeconds: 60
         readinessProbe:
          httpGet:
            port: 5000
            path: /
          initialDelaySeconds: 60

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

$ kubectl apply -f deployment.yaml

manifest 배포

Ingress-Nginx manifest 파일을 배포 예제

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx-ingress-sample
spec:
  rules:
  - host: local.twoseed.co.kr
    http:
      paths:
      - path: /
        backend:
          serviceName: ch-world-service
          servicePort: 85

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

$ kubectl apply -f mainfest.yaml

배포 확인

$ kubectl get service

NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
ch-world-service       NodePort       10.101.142.191   <none>        85:31989/TCP     102m
default-http-backend   ClusterIP      10.107.231.71    <none>        80/TCP           9d
kubernetes             ClusterIP      10.96.0.1        <none>        443/TCP          10d
nginx                  LoadBalancer   10.100.210.113   10.244.0.1    8080:31520/TCP   8d

  • No labels