Skip to content

Latest commit

 

History

History
142 lines (94 loc) · 5.48 KB

4.Deploy_OpenFx.md

File metadata and controls

142 lines (94 loc) · 5.48 KB

4. OpenFx 배포

OpenFx 컴파일을 완료하였다면, 이제 OpenFx를 배포해보자.

먼저, 쿠버네티스에서 개인 도커 레지스트리로부터 도커 이미지를 다운받으려면 **도커 인증(Docker credential)**이 필요하다. 먼저 이를 생성하고 배포하기 위한 yaml파일에 이를 설정한다.

Create a Secret based on Docker credentials

쿠버네티스 클러스터는 개인 도커 레지스트리에서 도커 이미지를 pull해야한다. 이를 위해서 도커 레지스트리 타입의 Secret을 사용하여 레지스트리에 인증을 받는다.

이는 다음의 절차를 통해 진행된다.

  • Secret을 생성한다.

  • 도커 인증파일을 base64로 변환한 .dockerconfigjson 내용을 확인한다.

  • keti-openfx/openfx/deploy/yaml폴더의 docker-registry-secret.yaml.dockerconfigjson내용을 이전에 확인한 .dockerconfigjson으로 변경한다.

#1 Create Secret

$ kubectl create secret docker-registry regcred --docker-server=<REGSTRY IP>:<PORT> --docker-username=<your-name> --docker-password=<your-password>
  • <REGSTRY IP>:<PORT> : 개인 레지스트리 주소와 포트

  • <your-name> : 도커 로그인을 위한 아이디

  • <your-password> : 도커 로그인을 위한 비밀번호

#2 Inspecting the Secret regcred

$ kubectl get secret regcred --output=yaml
>>
kind: Secret
metadata:
  ...
  name: regcred
  ...
data:
  .dockerconfigjson: eyJodHRwczovL2luZGV4L ... J0QUl6RTIifX0=
type: kubernetes.io/dockerconfigjson
  • .dockerconfigjson에 나오는 정보는 위와 상이할 수 있다.

#3 configure docker-registry-secret.yml

keti-openfx/openfx/deploy/yaml 폴더의 docker-registry-secret.yaml 파일의 .dockerconfigjson의 내용을 위에서 확인한 Secret regcred.dockerconfigjson 내용으로 변경한다.

Configure gateway-dep.yml

openfx/deploy/yaml 폴더의 gateway-dep.yml파일의 image란의 레지스트리 IP와 Port를 변경한다.

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: fxgateway
  namespace: openfx
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: fxgateway
    spec:
      serviceAccountName: fxgateway
      imagePullSecrets:
        - name: regcred
      containers:
      - name: fxgateway
        image: <REGISTRY IP>:<REGISTRY PORT>/fxgateway:0.1.0
        imagePullPolicy: Always

        env:
        - name: FUNCTION_NAMESPACE
          value: openfx-fn
        - name: IMAGE_PULL_POLICY
          value: "Always"

        ports:
        - containerPort: 10000
          protocol: TCP

        resources:
          requests:
            memory: 250Mi
          limits:
            memory: 250Mi

Deploy

아래 명령어를 이용하여 OpenFx를 배포한다.

$ cd $GOPATH/scr/github.com/keti-openfx/openfx/deploy
$ kubectl apply -f ./namespaces.yml
$ kubectl apply -f ./yaml
$ kubectl get pods --all-namespaces
>>
NAMESPACE     NAME                               READY   STATUS             RESTARTS   AGE
kube-system   coredns-fb8b8dccf-4bq7x            1/1     Running            0          113s
kube-system   coredns-fb8b8dccf-jw6j2            1/1     Running            0          113s
kube-system   etcd-minikube                      1/1     Running            0          4m19s
kube-system   kube-addon-manager-minikube        1/1     Running            0          4m22s
kube-system   kube-apiserver-minikube            1/1     Running            0          4m17s
kube-system   kube-controller-manager-minikube   1/1     Running            0          4m6s
kube-system   kube-proxy-h8q7p                   1/1     Running            0          5m11s
kube-system   kube-scheduler-minikube            1/1     Running            0          4m16s
kube-system   kubernetes-dashboard-7b8ddcb5d6..  1/1     Running            0
4m18s
kube-system   metrics-server-89cd44dc7-d8jvj     1/1     Running            0
4m18s
kube-system   storage-provisioner                1/1     Running            0          5m7s
openfx        fxgateway-755df6464f-6zrqw         1/1     Running            0          6m28s
openfx        prometheus-5c8f7f7c7d-zhpbb        1/1     Running            0          6m30s
openfx        grafana-core-7d6b476bb9-dj9bl      1/1     Running            0          6m30s
openfx        grafana-import-dashboards-tnskf    1/1     Running            0          6m30s
...
  • STATUSRunning이 아닌 경우에는 링크를 참조하여 포드의 로그를 확인한다.

  • kubectl apply를 통해 배포되는 pod 중 prometheus는 컴퓨팅 자원들의 metric 정보를 수집하는 모니터링 툴이며, grafana는 prometheus를 통해 수집된 metric 정보들을 시각화해주는 툴이다.

Verify Deploy

openfx-cli를 이용해 echo함수를 배포하여 openfx의 작동을 테스트한다. openfx-cli 설치 방법 및 작동 테스트는 다음의 링크를 통해 진행할 수 있다.

REFERENCE

  1. Create a Secret based on existing Docker credentials