diff --git a/config/_default/menus/menus.en.toml b/config/_default/menus/menus.en.toml
index 1ebac2e3..99afeb54 100644
--- a/config/_default/menus/menus.en.toml
+++ b/config/_default/menus/menus.en.toml
@@ -27,11 +27,17 @@
weight = 10
[[docs]]
- name = "Setup"
- url = "/docs/setup/"
- identifier = "setup"
+ name = "Setup Kubernetes"
+ url = "/docs/setup-kubernetes/"
+ identifier = "setup-kubernetes"
weight = 20
+[[docs]]
+ name = "Setup Components"
+ url = "/docs/setup-conmponens/"
+ identifier = "setup-components"
+ weight = 25
+
[[docs]]
name = "Kubeflow"
url = "/docs/kubeflow/"
diff --git a/content/en/docs/setup-components/_index.md b/content/en/docs/setup-components/_index.md
new file mode 100644
index 00000000..1479f272
--- /dev/null
+++ b/content/en/docs/setup-components/_index.md
@@ -0,0 +1,10 @@
+---
+title : "Setup Kubernetes Components"
+description: ""
+lead: ""
+date: 2021-12-13
+lastmod: 2021-12-13
+draft: false
+weight: 250
+images: []
+---
diff --git a/content/en/docs/setup-components/install-components-kf.md b/content/en/docs/setup-components/install-components-kf.md
new file mode 100644
index 00000000..0f4995a7
--- /dev/null
+++ b/content/en/docs/setup-components/install-components-kf.md
@@ -0,0 +1,560 @@
+---
+title : "Kubeflow"
+description: "구성요소 설치 - Kubeflow"
+date: 2021-12-13
+lastmod: 2021-12-13
+draft: false
+weight: 252
+contributors: ["Jaeyeon Kim"]
+menu:
+ docs:
+ parent: "setup-components"
+images: []
+---
+
+## 설치 파일 준비
+
+Kubeflow **v1.4.0** 버전을 설치하기 위해서, 설치에 필요한 manifests 파일들을 준비합니다.
+
+[kubeflow/manifests Repository](https://github.com/kubeflow/manifests) 를 **v1.4.0** 태그로 깃 클론한 뒤, 해당 폴더로 이동합니다.
+
+```text
+git clone -b v1.4.0 git@github.com:kubeflow/manifests.git
+cd manifests
+```
+
+## 각 구성요소별 설치
+
+kubeflow/manifests Repository 에 각 구성요소별 설치 커맨드가 적혀져 있지만, 설치하며 발생할 수 있는 이슈 혹은 정상적으로 설치되었는지 확인할 수 있는 방법 등이 적혀져있지 않아 처음 설치하는 경우 어려움을 겪는 경우가 많습니다.
+따라서, 각 구성요소별로 정상적으로 설치되었는지 확인하는 방법을 함께 작성합니다.
+
+또한, 본 문서에서는 **모두의 MLOps** 에서 다루지 않는 구성요소인 Knative, KFServing, MPI Operator 의 설치는 리소스의 효율적 사용을 위해 따로 설치하지 않습니다.
+
+### cert-manager
+
+cert-manager 를 설치합니다.
+
+```text
+kustomize build common/cert-manager/cert-manager/base | kubectl apply -f -
+```
+
+cert-manager namespace 의 3 개의 pod 가 모두 Running 이 될 때까지 기다립니다.
+
+```text
+kubectl get pod -n cert-manager
+```
+
+모두 Running 이 되면 다음과 비슷한 결과가 출력됩니다.
+
+```text
+NAME READY STATUS RESTARTS AGE
+cert-manager-7dd5854bb4-7nmpd 1/1 Running 0 2m10s
+cert-manager-cainjector-64c949654c-2scxr 1/1 Running 0 2m10s
+cert-manager-webhook-6b57b9b886-7q6g2 1/1 Running 0 2m10s
+```
+
+kubeflow-issuer 를 설치합니다.
+
+```text
+kustomize build common/cert-manager/kubeflow-issuer/base | kubectl apply -f -
+```
+
+- cert-manager-webhook 이슈
+
+ cert-manager-webhook deployment 가 Running 이 아닌 경우, 다음과 비슷한 에러가 발생하며 kubeflow-issuer가 설치되지 않을 수 있음에 주의하기시 바랍니다.
+ 해당 에러가 발생한 경우, cert-manager 의 3 개의 pod 가 모두 Running 이 되는 것을 확인한 이후 다시 명령어를 수행하시기 바랍니다.
+
+ ```text
+ Error from server: error when retrieving current configuration of:
+ Resource: "cert-manager.io/v1alpha2, Resource=clusterissuers", GroupVersionKind: "cert-manager.io/v1alpha2, Kind=ClusterIssuer"
+ Name: "kubeflow-self-signing-issuer", Namespace: ""
+ from server for: "STDIN": conversion webhook for cert-manager.io/v1, Kind=ClusterIssuer failed: Post "https://cert-manager-webhook.cert-manager.svc:443/convert?timeout=30s": dial tcp 10.101.177.157:443: connect: connection refused
+ ```
+
+### Istio
+
+istio 관련 Custom Resource Definition(CRD) 를 설치합니다.
+
+```text
+kustomize build common/istio-1-9/istio-crds/base | kubectl apply -f -
+```
+
+istio namespace 를 설치합니다.
+
+```text
+kustomize build common/istio-1-9/istio-namespace/base | kubectl apply -f -
+```
+
+istio 를 설치합니다.
+
+```text
+kustomize build common/istio-1-9/istio-install/base | kubectl apply -f -
+```
+
+istio-system namespace 의 2 개의 pod 가 모두 Running 이 될 때까지 기다립니다.
+
+```text
+kubectl get po -n istio-system
+```
+
+모두 Running 이 되면 다음과 비슷한 결과가 출력됩니다.
+
+```text
+NAME READY STATUS RESTARTS AGE
+istio-ingressgateway-79b665c95-xm22l 1/1 Running 0 16s
+istiod-86457659bb-5h58w 1/1 Running 0 16s
+```
+
+### Dex
+
+dex 를 설치합니다.
+
+```text
+kustomize build common/dex/overlays/istio | kubectl apply -f -
+```
+
+auth namespace 의 1 개의 pod 가 모두 Running 이 될 때까지 기다립니다.
+
+```text
+kubectl get po -n auth
+```
+
+모두 Running 이 되면 다음과 비슷한 결과가 출력됩니다.
+
+```text
+NAME READY STATUS RESTARTS AGE
+dex-5ddf47d88d-458cs 1/1 Running 1 12s
+```
+
+### OIDC AuthService
+
+OIDC AuthService 를 설치합니다.
+
+```text
+kustomize build common/oidc-authservice/base | kubectl apply -f -
+```
+
+istio-system namespace 에 authservice-0 pod 가 Running 이 될 때까지 기다립니다.
+
+```text
+kubectl get po -n istio-system -w
+```
+
+모두 Running 이 되면 다음과 비슷한 결과가 출력됩니다.
+
+```text
+NAME READY STATUS RESTARTS AGE
+authservice-0 1/1 Running 0 14s
+istio-ingressgateway-79b665c95-xm22l 1/1 Running 0 2m37s
+istiod-86457659bb-5h58w 1/1 Running 0 2m37s
+```
+
+### Kubeflow Namespace
+
+kubeflow namespace 를 생성합니다.
+
+```text
+kustomize build common/kubeflow-namespace/base | kubectl apply -f -
+```
+
+kubeflow namespace 를 조회합니다.
+
+```text
+kubectl get ns kubeflow
+```
+
+정상적으로 생성되면 다음과 비슷한 결과가 출력됩니다.
+
+```text
+NAME STATUS AGE
+kubeflow Active 8s
+```
+
+### Kubeflow Roles
+
+kubeflow-roles 를 설치합니다.
+
+```text
+kustomize build common/kubeflow-roles/base | kubectl apply -f -
+```
+
+방금 생성한 kubeflow roles 를 조회합니다.
+
+```text
+kubectl get clusterrole | grep kubeflow
+```
+
+다음과 같이 총 6 개의 clusterrole 이 출력됩니다.
+
+```text
+kubeflow-admin 2021-12-03T08:51:36Z
+kubeflow-edit 2021-12-03T08:51:36Z
+kubeflow-kubernetes-admin 2021-12-03T08:51:36Z
+kubeflow-kubernetes-edit 2021-12-03T08:51:36Z
+kubeflow-kubernetes-view 2021-12-03T08:51:36Z
+kubeflow-view 2021-12-03T08:51:36Z
+```
+
+### Kubeflow Istio Resources
+
+kubeflow-istio-resources 를 설치합니다.
+
+```text
+kustomize build common/istio-1-9/kubeflow-istio-resources/base | kubectl apply -f -
+```
+
+방금 생성한 kubeflow roles 를 조회합니다.
+
+```text
+kubectl get clusterrole | grep kubeflow-istio
+```
+
+다음과 같이 총 3 개의 clusterrole 이 출력됩니다.
+
+```text
+kubeflow-istio-admin 2021-12-03T08:53:17Z
+kubeflow-istio-edit 2021-12-03T08:53:17Z
+kubeflow-istio-view 2021-12-03T08:53:17Z
+```
+
+kubeflow namespace 에 gateway 가 정상적으로 설치되었는지 확인합니다.
+
+```text
+kubectl get gateway -n kubeflow
+```
+
+정상적으로 생성되면 다음과 비슷한 결과가 출력됩니다.
+
+```text
+NAME AGE
+kubeflow-gateway 31s
+```
+
+### Kubeflow Pipelines
+
+kubeflow pipelines 를 설치합니다.
+
+```text
+kustomize build apps/pipeline/upstream/env/platform-agnostic-multi-user | kubectl apply -f -
+```
+
+위 명령어는 여러 resources 를 한 번에 설치하고 있지만, 설치 순서의 의존성이 있는 리소스가 존재합니다.
+따라서 경우에 따라 다음과 비슷한 에러가 발생할 수 있습니다.
+
+```text
+"error: unable to recognize "STDIN": no matches for kind "CompositeController" in version "metacontroller.k8s.io/v1alpha1""
+```
+
+위와 비슷한 에러가 발생한다면, 10 초 정도 기다린 뒤 다시 위의 명령을 수행합니다.
+
+```text
+kustomize build apps/pipeline/upstream/env/platform-agnostic-multi-user | kubectl apply -f -
+```
+
+정상적으로 설치되었는지 확인합니다.
+
+```text
+kubectl get po -n kubeflow
+```
+
+다음과 같이 총 16 개의 pod 가 모두 Running 이 될 때까지 기다립니다.
+
+```text
+NAME READY STATUS RESTARTS AGE
+cache-deployer-deployment-79fdf9c5c9-bjnbg 2/2 Running 1 5m3s
+cache-server-5bdf4f4457-48gbp 2/2 Running 0 5m3s
+kubeflow-pipelines-profile-controller-7b947f4748-8d26b 1/1 Running 0 5m3s
+metacontroller-0 1/1 Running 0 5m3s
+metadata-envoy-deployment-5b4856dd5-xtlkd 1/1 Running 0 5m3s
+metadata-grpc-deployment-6b5685488-kwvv7 2/2 Running 3 5m3s
+metadata-writer-548bd879bb-zjkcn 2/2 Running 1 5m3s
+minio-5b65df66c9-k5gzg 2/2 Running 0 5m3s
+ml-pipeline-8c4b99589-85jw6 2/2 Running 1 5m3s
+ml-pipeline-persistenceagent-d6bdc77bd-ssxrv 2/2 Running 0 5m3s
+ml-pipeline-scheduledworkflow-5db54d75c5-zk2cw 2/2 Running 0 5m2s
+ml-pipeline-ui-5bd8d6dc84-j7wqr 2/2 Running 0 5m2s
+ml-pipeline-viewer-crd-68fb5f4d58-mbcbg 2/2 Running 1 5m2s
+ml-pipeline-visualizationserver-8476b5c645-wljfm 2/2 Running 0 5m2s
+mysql-f7b9b7dd4-xfnw4 2/2 Running 0 5m2s
+workflow-controller-5cbbb49bd8-5zrwx 2/2 Running 1 5m2s
+```
+
+추가적으로 ml-pipeline UI 가 정상적으로 접속되는지 확인합니다.
+
+```text
+kubectl port-forward svc/ml-pipeline-ui -n kubeflow 8888:80
+```
+
+웹 브라우저를 열어 [http://localhost:8888/pipelines/](http://localhost:8888/pipelines/) 경로에 접속합니다.
+
+다음과 같은 화면이 출력되는 것을 확인합니다.
+
+
+
+
+
+### Katib
+
+Katib 를 설치합니다.
+
+```text
+kustomize build apps/katib/upstream/installs/katib-with-kubeflow | kubectl apply -f -
+```
+
+정상적으로 설치되었는지 확인합니다.
+
+```text
+kubectl get po -n kubeflow | grep katib
+```
+
+다음과 같이 총 4 개의 pod 가 Running 이 될 때까지 기다립니다.
+
+```text
+katib-controller-68c47fbf8b-b985z 1/1 Running 0 82s
+katib-db-manager-6c948b6b76-2d9gr 1/1 Running 0 82s
+katib-mysql-7894994f88-scs62 1/1 Running 0 82s
+katib-ui-64bb96d5bf-d89kp 1/1 Running 0 82s
+```
+
+추가적으로 katib UI 가 정상적으로 접속되는지 확인합니다.
+
+```text
+kubectl port-forward svc/katib-ui -n kubeflow 8081:80
+```
+
+웹 브라우저를 열어 [http://localhost:8081/katib/](http://localhost:8081/katib/) 경로에 접속합니다.
+
+다음과 같은 화면이 출력되는 것을 확인합니다.
+
+
+
+
+
+### Central Dashboard
+
+Dashboard 를 설치합니다.
+
+```text
+kustomize build apps/centraldashboard/upstream/overlays/istio | kubectl apply -f -
+```
+
+정상적으로 설치되었는지 확인합니다.
+
+```text
+kubectl get po -n kubeflow | grep centraldashboard
+```
+
+kubeflow namespace 에 centraldashboard 관련 1 개의 pod 가 Running 이 될 때까지 기다립니다.
+
+```text
+centraldashboard-8fc7d8cc-xl7ts 1/1 Running 0 52s
+```
+
+추가적으로 Central Dashboard UI 가 정상적으로 접속되는지 확인합니다.
+
+```text
+kubectl port-forward svc/centraldashboard -n kubeflow 8082:80
+```
+
+웹 브라우저를 열어 [http://localhost:8082/](http://localhost:8082/) 경로에 접속합니다.
+
+다음과 같은 화면이 출력되는 것을 확인합니다.
+
+
+
+
+
+### Admission Webhook
+
+```text
+kustomize build apps/admission-webhook/upstream/overlays/cert-manager | kubectl apply -f -
+```
+
+정상적으로 설치되었는지 확인합니다.
+
+```text
+kubectl get po -n kubeflow | grep admission-webhook
+```
+
+1 개의 pod 가 Running 이 될 때까지 기다립니다.
+
+```text
+admission-webhook-deployment-667bd68d94-2hhrx 1/1 Running 0 11s
+```
+
+### Notebooks & Jupyter Web App
+
+Notebook controller 를 설치합니다.
+
+```text
+kustomize build apps/jupyter/notebook-controller/upstream/overlays/kubeflow | kubectl apply -f -
+```
+
+정상적으로 설치되었는지 확인합니다.
+
+```text
+kubectl get po -n kubeflow | grep notebook-controller
+```
+
+1 개의 pod 가 Running 이 될 때까지 기다립니다.
+
+```text
+notebook-controller-deployment-75b4f7b578-w4d4l 1/1 Running 0 105s
+```
+
+Jupyter Web App 을 설치합니다.
+
+```text
+kustomize build apps/jupyter/jupyter-web-app/upstream/overlays/istio | kubectl apply -f -
+```
+
+정상적으로 설치되었는지 확인합니다.
+
+```text
+kubectl get po -n kubeflow | grep jupyter-web-app
+```
+
+1 개의 pod 가 Running 이 될 때까지 기다립니다.
+
+```text
+jupyter-web-app-deployment-6f744fbc54-p27ts 1/1 Running 0 2m
+```
+
+### Profiles + KFAM
+
+Profile Controller 를 설치합니다.
+
+```text
+kustomize build apps/profiles/upstream/overlays/kubeflow | kubectl apply -f -
+```
+
+정상적으로 설치되었는지 확인합니다.
+
+```text
+kubectl get po -n kubeflow | grep profiles-deployment
+```
+
+1 개의 pod 가 Running 이 될 때까지 기다립니다.
+
+```text
+profiles-deployment-89f7d88b-qsnrd 2/2 Running 0 42s
+```
+
+### Volumes Web App
+
+Volumes Web App 을 설치합니다.
+
+```text
+kustomize build apps/volumes-web-app/upstream/overlays/istio | kubectl apply -f -
+```
+
+정상적으로 설치되었는지 확인합니다.
+
+```text
+kubectl get po -n kubeflow | grep volumes-web-app
+```
+
+1 개의 pod 가 Running 이 될 때까지 기다립니다.
+
+```text
+volumes-web-app-deployment-8589d664cc-62svl 1/1 Running 0 27s
+```
+
+### Tensorboard & Tensorboard Web App
+
+Tensorboard Web App 를 설치합니다.
+
+```text
+kustomize build apps/tensorboard/tensorboards-web-app/upstream/overlays/istio | kubectl apply -f -
+```
+
+정상적으로 설치되었는지 확인합니다.
+
+```text
+kubectl get po -n kubeflow | grep tensorboards-web-app
+```
+
+1 개의 pod 가 Running 이 될 때까지 기다립니다.
+
+```text
+tensorboards-web-app-deployment-6ff79b7f44-qbzmw 1/1 Running 0 22s
+```
+
+Tensorboard Controller 를 설치합니다.
+
+```text
+kustomize build apps/tensorboard/tensorboard-controller/upstream/overlays/kubeflow | kubectl apply -f -
+```
+
+정상적으로 설치되었는지 확인합니다.
+
+```text
+kubectl get po -n kubeflow | grep tensorboard-controller
+```
+
+1 개의 pod 가 Running 이 될 때까지 기다립니다.
+
+```text
+tensorboard-controller-controller-manager-954b7c544-vjpzj 3/3 Running 1 73s
+```
+
+### Training Operator
+
+Training Operator 를 설치합니다.
+
+```text
+kustomize build apps/training-operator/upstream/overlays/kubeflow | kubectl apply -f -
+```
+
+정상적으로 설치되었는지 확인합니다.
+
+```text
+kubectl get po -n kubeflow | grep training-operator
+```
+
+1 개의 pod 가 Running 이 될 때까지 기다립니다.
+
+```text
+training-operator-7d98f9dd88-6887f 1/1 Running 0 28s
+```
+
+### User Namespace
+
+Kubeflow 사용을 위해, 사용할 User 의 Kubeflow Profile 을 생성합니다.
+
+```text
+kustomize build common/user-namespace/base | kubectl apply -f -
+```
+
+kubeflow-user-example-com profile 이 생성된 것을 확인합니다.
+
+```text
+kubectl get profile
+```
+
+```text
+kubeflow-user-example-com 37s
+```
+
+## 정상 설치 확인
+
+kubeflow central dashboard 에 web browser 로 접속하기 위해 port-forward 합니다.
+
+```text
+kubectl port-forward svc/istio-ingressgateway -n istio-system 8080:80
+```
+
+Web Browser 를 열어 [http://localhost:8080](http://localhost:8080) 으로 접속하여, 다음과 같은 화면이 출력되는 것을 확인합니다.
+
+
+
+
+
+다음 접속 정보를 입력하여 접속합니다.
+
+- Email Address: `user@example.com`
+- Password: `12341234`
+
+
+
+
diff --git a/content/en/docs/setup-components/install-components-mlflow.md b/content/en/docs/setup-components/install-components-mlflow.md
new file mode 100644
index 00000000..3a08bbfe
--- /dev/null
+++ b/content/en/docs/setup-components/install-components-mlflow.md
@@ -0,0 +1,17 @@
+---
+title : "MLFlow"
+description: "구성요소 설치 - MLFlow"
+date: 2021-12-13
+lastmod: 2021-12-13
+draft: false
+weight: 253
+contributors: ["Jaeyeon Kim"]
+menu:
+ docs:
+ parent: "setup-components"
+images: []
+---
+
+## Install MLFlow
+
+---
diff --git a/content/en/docs/setup-components/install-components-pg.md b/content/en/docs/setup-components/install-components-pg.md
new file mode 100644
index 00000000..2f51c571
--- /dev/null
+++ b/content/en/docs/setup-components/install-components-pg.md
@@ -0,0 +1,99 @@
+---
+title : "Prometheus & Grafana"
+description: "구성요소 설치 - Prometheus & Grafana"
+date: 2021-12-13
+lastmod: 2021-12-13
+draft: false
+weight: 254
+contributors: ["Jaeyeon Kim"]
+menu:
+ docs:
+ parent: "setup-components"
+images: []
+---
+
+## Prometheus & Grafana
+
+프로메테우스(Prometheus) 와 그라파나(Grafana) 는 모니터링을 위한 도구입니다.
+안정적인 서비스 운영을 위해서는 서비스와 서비스가 운영되고 있는 인프라의 상태를 지속적으로 관찰하고, 관찰한 메트릭을 바탕으로 문제가 생길 경우 빠르게 대응해야 합니다.
+이러한 모니터링을 효율적으로 수행하기 위한 많은 도구 중 *모두의 MLOps*에서는 오픈소스인 프로메테우스와 그라파나를 사용할 예정입니다.
+
+보다 자세한 내용은 [Prometheus 공식 문서](https://prometheus.io/docs/introduction/overview/), [Grafana 공식 문서](https://grafana.com/docs/)를 확인해주시기 바랍니다.
+
+프로메테우스는 다양한 대상으로부터 Metric 을 수집하는 도구이며, 그라파나는 모인 데이터를 시각화하는 것을 도와주는 도구입니다. 서로 간의 종속성은 없지만 상호 보완적으로 사용할 수 있어 함께 사용되는 경우가 많습니다.
+
+본 글에서는 kube-prometheus-stack Helm Chart 21.0.0 버전을 활용해 쿠버네티스 크러스터에 프로메테우스와 그라파나를 함께 설치하겠습니다.
+
+### Helm Repository 추가
+
+```text
+helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
+```
+
+다음과 같은 메시지가 출력되면 정상적으로 추가된 것을 의미합니다.
+
+```text
+"prometheus-community" has been added to your repositories
+```
+
+### Helm Repository 업데이트
+
+```text
+helm repo update
+```
+
+다음과 같은 메시지가 출력되면 정상적으로 업데이트된 것을 의미합니다.
+
+```text
+Hang tight while we grab the latest from your chart repositories...
+...Successfully got an update from the "prometheus-community" chart repository
+...Successfully got an update from the "datawire" chart repository
+Update Complete. ⎈Happy Helming!⎈
+```
+
+### Helm Install
+
+kube-prometheus-stack Chart 21.0.0 버전을 설치합니다.
+
+```text
+helm install prom-stack prometheus-community/kube-prometheus-stack \
+ --namespace monitoring-system \
+ --create-namespace
+ --version 21.0.0
+```
+
+다음과 같은 메시지가 출력되어야 합니다.
+
+```text
+생략...
+W1206 17:17:04.153330 30670 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+
+NAME: prom-stack
+LAST DEPLOYED: Mon Dec 6 17:16:45 2021
+NAMESPACE: monitoring-system
+STATUS: deployed
+REVISION: 1
+NOTES:
+kube-prometheus-stack has been installed. Check its status by running:
+ kubectl --namespace monitoring-system get pods -l "release=prom-stack"
+
+Visit https://github.com/prometheus-operator/kube-prometheus for instructions on how to create & configure Alertmanager and Prometheus instances using the Operator.
+```
+
+정상적으로 설치되었는지 확인합니다.
+
+```text
+kubectl get pod -n monitoring-system | grep prom-stack
+```
+
+monitoring-system namespace 에 6 개의 prom-stack 관련 pod 가 Running 이 될 때까지 기다립니다.
+
+```text
+alertmanager-prom-stack-kube-prometheus-alertmanager-0 2/2 Running 0 62s
+prom-stack-grafana-c8bb58f98-hfrz2 2/2 Running 0 84s
+prom-stack-kube-prometheus-operator-68f7d9cd9f-gkbb7 1/1 Running 0 84s
+prom-stack-kube-state-metrics-596d7cdf8c-pndsk 1/1 Running 0 84s
+prom-stack-prometheus-node-exporter-zkwq9 1/1 Running 0 84s
+prometheus-prom-stack-kube-prometheus-prometheus-0 2/2 Running 0 61s
+```
+
+#### TODO(jaeyeon.kim) 정상 설치 확인 UI 스크린샷 추가
diff --git a/content/en/docs/setup-components/install-components-seldon.md b/content/en/docs/setup-components/install-components-seldon.md
new file mode 100644
index 00000000..ad5273e4
--- /dev/null
+++ b/content/en/docs/setup-components/install-components-seldon.md
@@ -0,0 +1,147 @@
+---
+title : "Seldon-Core"
+description: "구성요소 설치 - Seldon-Core"
+date: 2021-12-13
+lastmod: 2021-12-13
+draft: false
+weight: 255
+contributors: ["Jaeyeon Kim"]
+menu:
+ docs:
+ parent: "setup-components"
+images: []
+---
+
+## Seldon-Core
+
+Seldon-Core는 쿠버네티스 환경에 수많은 머신러닝 모델을 배포하고 관리할 수 있는 오픈소스 프레임워크 중 하나입니다.
+보다 자세한 내용은 Seldon-Core 의 공식 [제품 설명 페이지](https://www.seldon.io/tech/products/core/) 와 [깃헙](https://github.com/SeldonIO/seldon-core) 그리고 API Deployment 파트를 참고해주시기 바랍니다.
+
+## Selon-Core 설치
+
+Seldon-Core를 사용하기 위해서는 쿠버네티스의 인그레스(Ingress)를 담당하는 Ambassador 와 Istio 와 같은 [모듈이 필요합니다](https://docs.seldon.io/projects/seldon-core/en/latest/workflow/install.html).
+Seldon-Core 에서는 Ambassador 와 Istio 만을 공식적으로 지원하며, *모두의 MLOps*에서는 Ambassador를 사용해 Seldon-core를 사용하므로 Ambassador를 설치하겠습니다.
+
+### Ambassador - Helm Repository 추가
+
+```text
+helm repo add datawire https://www.getambassador.io
+```
+
+다음과 같은 메시지가 출력되면 정상적으로 추가된 것을 의미합니다.
+
+```text
+"datawire" has been added to your repositories
+```
+
+### Ambassador - Helm Repository 업데이트
+
+```text
+helm repo update
+```
+
+다음과 같은 메시지가 출력되면 정상적으로 업데이트된 것을 의미합니다.
+
+```text
+Hang tight while we grab the latest from your chart repositories...
+...Successfully got an update from the "datawire" chart repository
+Update Complete. ⎈Happy Helming!⎈
+```
+
+### Ambassador - Helm Install
+
+ambassador Chart 6.9.3 버전을 설치합니다.
+
+```text
+helm install ambassador datawire/ambassador \
+ --namespace seldon-system \
+ --create-namespace \
+ --set image.repository=quay.io/datawire/ambassador \
+ --set enableAES=false \
+ --set crds.keep=false \
+ --version 6.9.3
+```
+
+다음과 같은 메시지가 출력되어야 합니다.
+
+```text
+생략...
+
+W1206 17:01:36.026326 26635 warnings.go:70] rbac.authorization.k8s.io/v1beta1 Role is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 Role
+W1206 17:01:36.029764 26635 warnings.go:70] rbac.authorization.k8s.io/v1beta1 RoleBinding is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 RoleBinding
+NAME: ambassador
+LAST DEPLOYED: Mon Dec 6 17:01:34 2021
+NAMESPACE: seldon-system
+STATUS: deployed
+REVISION: 1
+NOTES:
+-------------------------------------------------------------------------------
+ Congratulations! You've successfully installed Ambassador!
+
+-------------------------------------------------------------------------------
+To get the IP address of Ambassador, run the following commands:
+NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+ You can watch the status of by running 'kubectl get svc -w --namespace seldon-system ambassador'
+
+ On GKE/Azure:
+ export SERVICE_IP=$(kubectl get svc --namespace seldon-system ambassador -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+
+ On AWS:
+ export SERVICE_IP=$(kubectl get svc --namespace seldon-system ambassador -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
+
+ echo http://$SERVICE_IP:
+
+For help, visit our Slack at http://a8r.io/Slack or view the documentation online at https://www.getambassador.io.
+```
+
+seldon-system 에 4 개의 pod 가 Running 이 될 때까지 기다립니다.
+
+```text
+kubectl get pod -n seldon-system
+```
+
+```text
+ambassador-7f596c8b57-4s9xh 1/1 Running 0 7m15s
+ambassador-7f596c8b57-dt6lr 1/1 Running 0 7m15s
+ambassador-7f596c8b57-h5l6f 1/1 Running 0 7m15s
+ambassador-agent-77bccdfcd5-d5jxj 1/1 Running 0 7m15s
+```
+
+### Seldon-Core - Helm Install
+
+seldon-core-operator Chart 1.11.2 버전을 설치합니다.
+
+```text
+helm install seldon-core seldon-core-operator \
+ --repo https://storage.googleapis.com/seldon-charts \
+ --namespace seldon-system \
+ --set usageMetrics.enabled=true \
+ --set ambassador.enabled=true \
+ --version 1.11.2
+```
+
+다음과 같은 메시지가 출력되어야 합니다.
+
+```text
+생략...
+
+W1206 17:05:38.336391 28181 warnings.go:70] admissionregistration.k8s.io/v1beta1 ValidatingWebhookConfiguration is deprecated in v1.16+, unavailable in v1.22+; use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration
+NAME: seldon-core
+LAST DEPLOYED: Mon Dec 6 17:05:34 2021
+NAMESPACE: seldon-system
+STATUS: deployed
+REVISION: 1
+TEST SUITE: None
+```
+
+seldon-system namespace 에 1 개의 seldon-controller-manager pod 가 Running 이 될 때까지 기다립니다.
+
+```text
+kubectl get pod -n seldon-system | grep seldon-controller
+```
+
+```text
+seldon-controller-manager-8457b8b5c7-r2frm 1/1 Running 0 2m22s
+```
+
+#### TODO (jaeyeon.kim) Seldon Deployment 생성 후, prometheus, grafana 연동 스크린샷
diff --git a/content/en/docs/setup/_index.md b/content/en/docs/setup-kubernetes/_index.md
similarity index 82%
rename from content/en/docs/setup/_index.md
rename to content/en/docs/setup-kubernetes/_index.md
index 119f43aa..f166952b 100644
--- a/content/en/docs/setup/_index.md
+++ b/content/en/docs/setup-kubernetes/_index.md
@@ -1,5 +1,5 @@
---
-title : "Setup"
+title : "Setup Kubernetes"
description: "Setup kubernetes."
lead: ""
date: 2021-12-13
diff --git a/content/en/docs/setup/intro.md b/content/en/docs/setup-kubernetes/intro.md
similarity index 99%
rename from content/en/docs/setup/intro.md
rename to content/en/docs/setup-kubernetes/intro.md
index db5bc723..afd23587 100644
--- a/content/en/docs/setup/intro.md
+++ b/content/en/docs/setup-kubernetes/intro.md
@@ -9,7 +9,7 @@ weight: 201
contributors: ["Jaeyeon Kim"]
menu:
docs:
- parent: "setup"
+ parent: "setup-kubernetes"
images: []
---
diff --git a/content/en/docs/setup/kubernetes-with-k3s.md b/content/en/docs/setup-kubernetes/kubernetes-with-k3s.md
similarity index 91%
rename from content/en/docs/setup/kubernetes-with-k3s.md
rename to content/en/docs/setup-kubernetes/kubernetes-with-k3s.md
index 94cfcc23..7f7cd0bc 100644
--- a/content/en/docs/setup/kubernetes-with-k3s.md
+++ b/content/en/docs/setup-kubernetes/kubernetes-with-k3s.md
@@ -8,7 +8,7 @@ weight: 223
contributors: ["Jongseob Jeon"]
menu:
docs:
- parent: "setup"
+ parent: "setup-kubernetes"
images: []
---
@@ -48,7 +48,7 @@ sudo chown mrx:mrx .kube/config
## 4. 쿠버네티스 기본 모듈 설치
-[Setup Kubernetes Modules]({{< relref "docs/setup/setup-kubernetes-module.md" >}})을 참고하여 다음 컴포넌트들을 설치해 주시기 바랍니다.
+[Setup Kubernetes Modules]({{< relref "docs/setup-kubernetes/setup-kubernetes-module.md" >}})을 참고하여 다음 컴포넌트들을 설치해 주시기 바랍니다.
- helm
- kustomize
diff --git a/content/en/docs/setup/kubernetes-with-kubeadm.md b/content/en/docs/setup-kubernetes/kubernetes-with-kubeadm.md
similarity index 93%
rename from content/en/docs/setup/kubernetes-with-kubeadm.md
rename to content/en/docs/setup-kubernetes/kubernetes-with-kubeadm.md
index 85ab399c..575cdf55 100644
--- a/content/en/docs/setup/kubernetes-with-kubeadm.md
+++ b/content/en/docs/setup-kubernetes/kubernetes-with-kubeadm.md
@@ -8,7 +8,7 @@ weight: 221
contributors: ["Youngcheol Jang"]
menu:
docs:
- parent: "setup"
+ parent: "setup-kubernetes"
images: []
---
@@ -16,7 +16,7 @@ images: []
쿠버네티스 클러스터를 구축하기에 앞서, 필요한 구성요소들을 **클러스터에** 설치합니다.
-[Setup Prerequisite]({{< relref "docs/setup/setup-pre-requisite.md" >}})을 참고하여 Kubernetes를 설치하기 전에 필요한 요소들을 **클러스터에** 설치해 주시기 바랍니다.
+[Setup Prerequisite]({{< relref "docs/setup-kubernetes/setup-pre-requisite.md" >}})을 참고하여 Kubernetes를 설치하기 전에 필요한 요소들을 **클러스터에** 설치해 주시기 바랍니다.
쿠버네티스를 위한 네트워크의 설정을 변경합니다.
@@ -137,7 +137,7 @@ scp -p {CLUSTER_USER_ID}@{CLUSTER_IP}:~/.kube/config ~/.kube/config
## 4. 쿠버네티스 기본 모듈 설치
-[Setup Kubernetes Modules]({{< relref "docs/setup/setup-kubernetes-module.md" >}})을 참고하여 다음 컴포넌트들을 설치해 주시기 바랍니다.
+[Setup Kubernetes Modules]({{< relref "docs/setup-kubernetes/setup-kubernetes-module.md" >}})을 참고하여 다음 컴포넌트들을 설치해 주시기 바랍니다.
- helm
- kustomize
diff --git a/content/en/docs/setup/kubernetes-with-minikube.md b/content/en/docs/setup-kubernetes/kubernetes-with-minikube.md
similarity index 94%
rename from content/en/docs/setup/kubernetes-with-minikube.md
rename to content/en/docs/setup-kubernetes/kubernetes-with-minikube.md
index 5b4cacab..8e6e36d9 100644
--- a/content/en/docs/setup/kubernetes-with-minikube.md
+++ b/content/en/docs/setup-kubernetes/kubernetes-with-minikube.md
@@ -8,7 +8,7 @@ weight: 222
contributors: ["Jaeyeon Kim"]
menu:
docs:
- parent: "setup"
+ parent: "setup-kubernetes"
images: []
---
@@ -16,7 +16,7 @@ images: []
쿠버네티스 클러스터를 구축하기에 앞서, 필요한 구성요소들을 **클러스터에** 설치합니다.
-[Setup Prerequisite]({{< relref "docs/setup/setup-pre-requisite.md" >}})을 참고하여 Kubernetes를 설치하기 전에 필요한 요소들을 **클러스터에** 설치해 주시기 바랍니다.
+[Setup Prerequisite]({{< relref "docs/setup-kubernetes/setup-pre-requisite.md" >}})을 참고하여 Kubernetes를 설치하기 전에 필요한 요소들을 **클러스터에** 설치해 주시기 바랍니다.
### Minikube binary
@@ -181,7 +181,7 @@ root@ubuntu:/home/mlops# minikube addons list
## 4. 쿠버네티스 기본 모듈 설치
-[Setup Kubernetes Modules]({{< relref "docs/setup/setup-kubernetes-module.md" >}})을 참고하여 다음 컴포넌트들을 설치해 주시기 바랍니다.
+[Setup Kubernetes Modules]({{< relref "docs/setup-kubernetes/setup-kubernetes-module.md" >}})을 참고하여 다음 컴포넌트들을 설치해 주시기 바랍니다.
- helm
- kustomize
diff --git a/content/en/docs/setup/kubernetes.md b/content/en/docs/setup-kubernetes/kubernetes.md
similarity index 98%
rename from content/en/docs/setup/kubernetes.md
rename to content/en/docs/setup-kubernetes/kubernetes.md
index 3bca0e8b..ffa5aabe 100644
--- a/content/en/docs/setup/kubernetes.md
+++ b/content/en/docs/setup-kubernetes/kubernetes.md
@@ -8,7 +8,7 @@ weight: 202
contributors: ["Jaeyeon Kim"]
menu:
docs:
- parent: "setup"
+ parent: "setup-kubernetes"
images: []
---
diff --git a/content/en/docs/setup/setup-kubernetes-module.md b/content/en/docs/setup-kubernetes/setup-kubernetes-module.md
similarity index 99%
rename from content/en/docs/setup/setup-kubernetes-module.md
rename to content/en/docs/setup-kubernetes/setup-kubernetes-module.md
index 4992d9e5..7289dddc 100644
--- a/content/en/docs/setup/setup-kubernetes-module.md
+++ b/content/en/docs/setup-kubernetes/setup-kubernetes-module.md
@@ -8,7 +8,7 @@ weight: 230
contributors: ["Jaeyeon Kim"]
menu:
docs:
- parent: "setup"
+ parent: "setup-kubernetes"
images: []
---
diff --git a/content/en/docs/setup/setup-nvidia-gpu.md b/content/en/docs/setup-kubernetes/setup-nvidia-gpu.md
similarity index 99%
rename from content/en/docs/setup/setup-nvidia-gpu.md
rename to content/en/docs/setup-kubernetes/setup-nvidia-gpu.md
index b945e55e..614f2108 100644
--- a/content/en/docs/setup/setup-nvidia-gpu.md
+++ b/content/en/docs/setup-kubernetes/setup-nvidia-gpu.md
@@ -8,7 +8,7 @@ weight: 231
contributors: ["Jaeyeon Kim"]
menu:
docs:
- parent: "setup"
+ parent: "setup-kubernetes"
images: []
---
diff --git a/content/en/docs/setup/setup-pre-requisite.md b/content/en/docs/setup-kubernetes/setup-pre-requisite.md
similarity index 99%
rename from content/en/docs/setup/setup-pre-requisite.md
rename to content/en/docs/setup-kubernetes/setup-pre-requisite.md
index 0751947d..fd32f7ba 100644
--- a/content/en/docs/setup/setup-pre-requisite.md
+++ b/content/en/docs/setup-kubernetes/setup-pre-requisite.md
@@ -8,7 +8,7 @@ weight: 210
contributors: ["Jaeyeon Kim"]
menu:
docs:
- parent: "setup"
+ parent: "setup-kubernetes"
images: []
---
diff --git a/static/images/docs/setup/after-login.png b/static/images/docs/setup/after-login.png
new file mode 100644
index 00000000..4613525e
Binary files /dev/null and b/static/images/docs/setup/after-login.png differ