Skip to content

Commit 70bda37

Browse files
johnugeorgek8s-ci-robot
authored andcommitted
Fixing doc for KF installation on existing clusters (#977)
* Fixing doc for existing clusters * Update authentication.md * Update getting-started-k8s.md * Update getting-started-k8s.md * Address review comments * Minor changes * Address review comments * Address review comments * Minor title change * Fix path
1 parent 63b34cb commit 70bda37

File tree

5 files changed

+160
-70
lines changed

5 files changed

+160
-70
lines changed

content/docs/started/getting-started.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ to suit your environment (cloud, on premises (on prem), or local):
4747
follow the [ICP deployment guide](/docs/started/getting-started-icp/).
4848
* If you have an existing Kubernetes cluster or want to use Kubeflow on prem,
4949
follow the [guide to deploying Kubeflow on
50-
Kubernetes](/docs/started/getting-started-k8s/).
50+
Kubernetes](/docs/started/k8s/overview/).
5151
* If you want to run Kubernetes locally in a virtual machine (VM), choose one of
5252
the following options:
5353

content/docs/started/k8s/_index.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
+++
2+
title = "Kubeflow on Existing Kubernetes Clusters"
3+
description = "Instructions for installing Kubeflow on your existing clusters"
4+
weight = 2
5+
+++

content/docs/started/getting-started-k8s.md content/docs/started/k8s/kfctl-existing-arrikto.md

+7-69
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,18 @@
11
+++
2-
title = "Kubeflow on Kubernetes"
3-
description = "Instructions for installing Kubeflow on your existing Kubernetes cluster"
2+
title = "Kubeflow Deployment with kfctl_existing_arrikto"
3+
description = "Instructions for installing Kubeflow with kfctl_existing_arrikto config"
44
weight = 4
55
+++
66

7-
Follow these instructions if you want to install Kubeflow on an existing Kubernetes cluster.
7+
This deployment uses [Dex](https://github.com/dexidp/dex) and [Istio](https://istio.io/) for vendor-neutral authentication.
88

9-
If you are using a Kubernetes distribution or Cloud Provider which has specific instructions for installing Kubeflow we recommend following those instructions. Those instructions do additional Cloud specific setup to create a really great Kubeflow experience.
10-
11-
For installing Kubeflow on an existing Kubernetes Cluster, you can use one of the following options:
12-
13-
* [Kubeflow for Existing Clusters by Arrikto](#Kubeflow-for-Existing-Clusters---by-Arrikto)
14-
15-
## Kubeflow for Existing Clusters - by Arrikto
16-
17-
This installation of Kubeflow is maintained by [Arrikto](https://www.arrikto.com/), is geared towards existing Kubernetes clusters and does not depend on any cloud-specific feature.
18-
19-
In this reference architecture, we use [Dex](https://github.com/dexidp/dex) and [Istio](https://istio.io/) for vendor-neutral authentication.
9+
**Maintainer and supporter: Arrikto**
2010

2111
![platform existing architecture](https://i.imgur.com/OlaN73j.png)
2212

2313
### Prerequisites
24-
- Kubernetes Cluster with LoadBalancer support.
25-
26-
If you don't have a Kubernetes Cluster, you can create a compliant Kubernetes Engine (GKE) on Google Cloud Platform cluster with the following script:
27-
28-
<details>
29-
30-
<summary>GKE Cluster Creation Script</summary>
31-
32-
```bash
33-
#!/bin/bash
34-
35-
set -e
14+
- Kubernetes Cluster with LoadBalancer support. Refer [Load Balancer](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/) guide.
3615

37-
# This script uses the gcloud command.
38-
# For more info, visit: https://cloud.google.com/sdk/gcloud/reference/container/
39-
40-
# Edit according to your preference
41-
GCP_USER="$(gcloud config list account --format "value(core.account)")"
42-
GCP_PROJECT="$(gcloud config list project --format "value(core.project)")"
43-
GCP_ZONE="us-west1-b"
44-
45-
CLUSTER_VERSION="$(gcloud container get-server-config --format="value(validMasterVersions[0])")"
46-
CLUSTER_NAME="kubeflow"
47-
48-
############################
49-
# Create and setup cluster #
50-
############################
51-
52-
gcloud container clusters create ${CLUSTER_NAME} \
53-
--project ${GCP_PROJECT} \
54-
--zone ${GCP_ZONE} \
55-
--cluster-version ${CLUSTER_VERSION} \
56-
--machine-type "n1-standard-8" --num-nodes "1" \
57-
--image-type "UBUNTU" \
58-
--disk-type "pd-ssd" --disk-size "50" \
59-
--no-enable-cloud-logging --no-enable-cloud-monitoring \
60-
--no-enable-ip-alias \
61-
--enable-autoupgrade --enable-autorepair
62-
63-
echo "Getting credentials for newly created cluster..."
64-
gcloud container clusters get-credentials ${CLUSTER_NAME} --zone=${GCP_ZONE}
65-
66-
echo "Setting up GKE RBAC..."
67-
kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=${GCP_USER}
68-
```
69-
70-
</details>
7116

7217
### Deploy Kubeflow
7318

@@ -80,14 +25,7 @@ Follow these steps to deploy Kubeflow:
8025
```
8126
tar -xvf kfctl_<release tag>_<platform>.tar.gz
8227
```
83-
84-
Alternatively, you can build the `kfctl` binary yourself:
85-
86-
```
87-
git clone https://github.com/kubeflow/kubeflow.git
88-
cd kubeflow/bootstrap
89-
make build-kfctl-container
90-
```
28+
9129
9230
1. Run the following commands to set up and deploy Kubeflow. The code below includes an optional command to add the binary `kfctl` to your path. If you don't add the binary to your path, you must use the full path to the `kfctl` binary each time you run it.
9331
@@ -521,4 +459,4 @@ Your Kubeflow app directory contains the following files and directories:
521459
UIs](/docs/other-guides/accessing-uis/), where you can manage various
522460
aspects of your Kubeflow deployment.
523461
* Run a [sample machine learning workflow](/docs/examples/resources/).
524-
* Get started with [Kubeflow Pipelines](/docs/pipelines/pipelines-quickstart/)
462+
* Get started with [Kubeflow Pipelines](/docs/pipelines/pipelines-quickstart/)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
+++
2+
title = "Kubeflow Deployment with kfctl_k8s_istio"
3+
description = "Instructions for installing Kubeflow on your existing Kubernetes cluster using kfctl_k8s_istio config"
4+
weight = 2
5+
+++
6+
7+
This config creates a vanilla deployment of Kubeflow with all its core components without any external dependencies. The deployment can be customized based on your environment needs.
8+
9+
**Maintainer and supporter: Kubeflow community**
10+
11+
### Deploy Kubeflow
12+
13+
Follow these steps to deploy Kubeflow:
14+
15+
1. Download a `kfctl` release from the [Kubeflow releases page](https://github.com/kubeflow/kubeflow/releases/) and unpack it:
16+
17+
```
18+
tar -xvf kfctl_<release tag>_<platform>.tar.gz
19+
```
20+
21+
1. Run the following commands to set up and deploy Kubeflow. The code below includes an optional command to add the binary `kfctl` to your path. If you don't add the binary to your path, you must use the full path to the `kfctl` binary each time you run it.
22+
23+
```bash
24+
# Add kfctl to PATH, to make the kfctl binary easier to use.
25+
export PATH=$PATH:"<path to kfctl>"
26+
export KFAPP="<your choice of application directory name>"
27+
# Installs istio by default. Comment out istio components in the config file to skip istio installation. See https://github.com/kubeflow/kubeflow/pull/3663
28+
export CONFIG="https://raw.githubusercontent.com/kubeflow/kubeflow/master/bootstrap/config/kfctl_k8s_istio.yaml"
29+
30+
kfctl init ${KFAPP} --config=${CONFIG} -V
31+
cd ${KFAPP}
32+
kfctl generate all -V
33+
kfctl apply all -V
34+
```
35+
36+
* **${KFAPP}** - the _name_ of a directory where you want Kubeflow
37+
configurations to be stored. This directory is created when you run
38+
`kfctl init`. If you want a custom deployment name, specify that name here.
39+
The value of this variable becomes the name of your deployment.
40+
The value of this variable cannot be greater than 25 characters. It must
41+
contain just the directory name, not the full path to the directory.
42+
The content of this directory is described in the next section.
43+
44+
45+
Check the resources deployed in namespace `kubeflow`:
46+
47+
```
48+
kubectl -n kubeflow get all
49+
50+
```
51+
52+
### Access Kubeflow Dashboard
53+
54+
Once Kubeflow is deployed, the Kubeflow Dashboard can be accessed via `istio-ingressgateway` service. If loadbalancer is not available in your environment, NodePort or Port forwarding can be used to access the Kubeflow Dashboard.Refer [Ingress Gateway guide](https://istio.io/docs/tasks/traffic-management/ingress/ingress-control/).
55+
56+
### Delete Kubeflow
57+
58+
Run the following commands to delete your deployment and reclaim all resources:
59+
60+
```bash
61+
cd ${KFAPP}
62+
# If you want to delete all the resources, run:
63+
kfctl delete all -V
64+
```
65+
66+
### Understanding the deployment process
67+
68+
The deployment process is controlled by 4 different commands:
69+
70+
* **init** - one time set up.
71+
* **generate** - creates config files defining the various resources.
72+
* **apply** - creates or updates the resources.
73+
* **delete** - deletes the resources.
74+
75+
With the exception of `init`, all commands take an argument which describes the
76+
set of resources to apply the command to; this argument can be one of the
77+
following:
78+
79+
* **k8s** - all resources that run on Kubernetes.
80+
* **all** - platform and Kubernetes resources.
81+
82+
#### App layout
83+
84+
Your Kubeflow app directory contains the following files and directories:
85+
86+
* **${KFAPP}/app.yaml** defines configurations related to your Kubeflow deployment.
87+
* **${KFAPP}/kustomize**: contains the YAML manifests that will be deployed.
88+
89+
### Next steps
90+
91+
* Run a [sample machine learning workflow](/docs/examples/resources/).
92+
* Get started with [Kubeflow Pipelines](/docs/pipelines/pipelines-quickstart/)

content/docs/started/k8s/overview.md

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
+++
2+
title = "Deploying Kubeflow on Existing Clusters"
3+
description = "Instructions for installing Kubeflow on your existing Kubernetes cluster with list of supported options"
4+
weight = 1
5+
+++
6+
7+
Follow these instructions if you want to install Kubeflow on an existing Kubernetes cluster.
8+
9+
If you are using a Kubernetes distribution or Cloud Provider which has specific instructions for installing Kubeflow we recommend following those instructions. Those instructions do additional Cloud specific setup to create a really great Kubeflow experience.
10+
11+
The following table lists the options for installing Kubeflow on an existing Kubernetes Cluster and links to detailed instructions.
12+
13+
### Community maintained
14+
15+
This section includes vendor-neutral solutions governed by community consensus. Below deployment configs are maintained and supported by the community.
16+
17+
<div class="table-responsive">
18+
<table class="table table-bordered">
19+
<thead class="thead-light">
20+
<tr>
21+
<th>Deployment config</th>
22+
<th>Description</th>
23+
</tr>
24+
</thead>
25+
<tbody>
26+
<tr>
27+
<td>kfctl_k8s_istio.yaml</td>
28+
<td> This config creates a vanilla deployment of Kubeflow with all its core components without any external dependencies. The deployment can be customized based on your environment needs. <br />Follow instructions: <a href="/docs/started/k8s/kfctl-k8s-istio/">Kubeflow Deployment with kfctl_k8s_istio</a></td>
29+
</tr>
30+
</tbody>
31+
</table>
32+
</div>
33+
34+
### Vendor maintained
35+
36+
This section includes the deployment solutions that are supported by specific vendors/providers.
37+
38+
<div class="table-responsive">
39+
<table class="table table-bordered">
40+
<thead class="thead-light">
41+
<tr>
42+
<th>Deployment config</th>
43+
<th>Description</th>
44+
<th>Maintainer/Supporter</th>
45+
</tr>
46+
</thead>
47+
<tbody>
48+
<tr>
49+
<td>existing_arrikto.yaml</td>
50+
<td> This deployment uses Dex and Istio for vendor-neutral authentication. <br />Follow instructions: <a href="/docs/started/k8s/kfctl-existing-arrikto/">Kubeflow Deployment with existing_arrikto</a></td>
51+
<td><a href="https://www.arrikto.com/">Arrikto</a></td>
52+
</tr>
53+
</tbody>
54+
</table>
55+
</div>

0 commit comments

Comments
 (0)