You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Amend the kfctl_existing_arrikto doc (kubeflow#1056)
Add instructions for installing MetalLB
Add `Troubleshooting` section
Add architecture figure
Change the kfctl_existing_arrikto description in the Overview page
Signed-off-by: Christos S. Pavlou <[email protected]>
Copy file name to clipboardExpand all lines: content/docs/started/k8s/kfctl-existing-arrikto.md
+223-13
Original file line number
Diff line number
Diff line change
@@ -1,22 +1,157 @@
1
1
+++
2
-
title = "Kubeflow Deployment with kfctl_existing_arrikto"
3
-
description = "Instructions for installing Kubeflow with kfctl_existing_arrikto config"
2
+
title = "Multi-user, auth-enabled Kubeflow with kfctl_existing_arrikto"
3
+
description = "Instructions for installing Kubeflow with kfctl_existing_arrikto.yaml config"
4
4
weight = 4
5
5
+++
6
6
7
-
This deployment uses [Dex](https://github.com/dexidp/dex) and [Istio](https://istio.io/) for vendor-neutral authentication.
7
+
Follow these instructions if you want to install Kubeflow on an existing Kubernetes cluster.
8
8
9
-
**Maintainer and supporter: Arrikto**
9
+
This installation of Kubeflow is maintained by
10
+
[Arrikto](https://www.arrikto.com/), it is geared towards existing Kubernetes
11
+
clusters and does not depend on any cloud-specific feature.
12
+
13
+
In this reference architecture, we use [Dex](https://github.com/dexidp/dex) and
14
+
[Istio](https://istio.io/) for vendor-neutral authentication.
15
+
16
+
This deployment works well for on-prem installations, where companies/organizations need LDAP/AD integration for multi-user authentication, and they don't want to depend on any cloud-specific feature.
- Kubernetes Cluster with LoadBalancer support. Refer [Load Balancer](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/) guide.
15
24
25
+
You need a Kubernetes Cluster with LoadBalancer support.
16
26
17
-
### Deploy Kubeflow
27
+
If you don't have support for LoadBalancer on your cluster, please follow the instructions below to deploy MetalLB in Layer 2 mode. (You can read more about Layer 2 mode in the [MetalLB docs](https://metallb.universe.tf/configuration/#layer-2-configuration).)
{"caller":"service.go:98","event":"ipAllocated","ip":"10.0.0.101","msg":"IP address assigned by controller","service":"default/nginx","ts":"2019-08-09T15:12:09.376779263Z"}
90
+
```
91
+
92
+
1. Create a pod that will be exposed with the service:
93
+
94
+
```
95
+
kubectl run nginx --image nginx --restart=Never -l app=nginx
96
+
pod/nginx created
97
+
```
98
+
99
+
1. Ensure that MetalLB has assigned a node to announce the allocated IP address:
100
+
101
+
```
102
+
kubectl describe service nginx
103
+
...
104
+
Events:
105
+
Type Reason Age From Message
106
+
---- ------ ---- ---- -------
107
+
Normal nodeAssigned 4s metallb-speaker announcing from node "node-2"
{"caller":"main.go:246","event":"serviceAnnounced","ip":"10.0.0.101","msg":"service has IP, announcing","pool":"default","protocol":"layer2","service":"default/nginx","ts":"2019-08-09T15:14:02.433876894Z"}
116
+
```
117
+
118
+
1. Check that MetalLB responds to ARP requests for the allocated IP address:
119
+
120
+
```
121
+
arping -I eth0 10.0.0.101
122
+
...
123
+
ARPING 10.0.0.101 from 10.0.0.204 eth0
124
+
Unicast reply from 10.0.0.101 [6A:13:5A:D2:65:CB] 2.619ms
{"caller":"arp.go:102","interface":"eth0,"ip":"10.0.0.101","msg":"got ARP request for service IP, sending response","responseMAC":"6a:13:5a:d2:65:cb","senderIP":"10.0.0.204","senderMAC":"9a:1f:7c:95:ca:dc","ts":"2019-08-09T15:14:52.912056021Z"}
133
+
```
134
+
135
+
1. Verify that everything works as expected:
136
+
137
+
```
138
+
curl http://10.0.0.101
139
+
...
140
+
<p><em>Thank you for using nginx.</em></p>
141
+
...
142
+
```
143
+
144
+
1. Clean up:
145
+
146
+
```
147
+
kubectl delete service nginx
148
+
kubectl delete pod nginx
149
+
```
150
+
151
+
</details>
18
152
19
-
If you are deploying Kubeflow on a multi-node cluster, you can follow this [guide](/docs/use-cases/kubeflow-on-multinode-cluster) to set up your system to use a remote NFS filesystem in cluster nodes.
153
+
154
+
### Deploy Kubeflow
20
155
21
156
Follow these steps to deploy Kubeflow:
22
157
@@ -33,7 +168,7 @@ Follow these steps to deploy Kubeflow:
33
168
# Add kfctl to PATH, to make the kfctl binary easier to use.
34
169
export PATH=$PATH:"<path to kfctl>"
35
170
export KFAPP="<your choice of application directory name>"
Please join the [Kubeflow Slack](https://kubeflow.slack.com/join/shared_invite/enQtNDg5MTM4NTQyNjczLWUyZGI1ZmExZWExYWY4YzlkOWI4NjljNjJhZjhjMjEwNGFjNmVkNjg2NTg4M2I0ZTM5NDExZWI5YTIyMzVmNzM) to report any issues, request help, and give us feedback on this config.
{"caller":"arp.go:102","interface":"br100","ip":"10.0.0.100","msg":"got ARP request for service IP, sending response","responseMAC":"62:41:bd:5f:cc:0d","senderIP":"10.0.0.204","senderMAC":"9a:1f:7c:95:ca:dc","ts":"2019-07-31T13:19:19.7082836Z"}
{"caller":"service.go:98","event":"ipAllocated","ip":"10.0.0.100","msg":"IP address assigned by controller","service":"istio-system/istio-ingressgateway","ts":"2019-07-31T12:17:46.234638607Z"}
631
+
```
632
+
423
633
### Delete Kubeflow
424
634
425
635
Run the following commands to delete your deployment and reclaim all resources:
@@ -446,7 +656,7 @@ following:
446
656
* **k8s** - all resources that run on Kubernetes.
447
657
* **all** - platform and Kubernetes resources.
448
658
449
-
#### App layout
659
+
### App layout
450
660
451
661
Your Kubeflow app directory contains the following files and directories:
Copy file name to clipboardExpand all lines: content/docs/started/k8s/overview.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -60,8 +60,8 @@ This section includes the deployment solutions that are supported by specific ve
60
60
</thead>
61
61
<tbody>
62
62
<tr>
63
-
<td>existing_arrikto.yaml</td>
64
-
<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>
63
+
<td>kfctl_existing_arrikto.yaml</td>
64
+
<td> This config creates a Kubeflow deployment with all its core components, and uses Dex and Istio for vendor-neutral authentication. <br />Follow instructions: <a href="/docs/started/k8s/kfctl-existing-arrikto/">Multi-user, auth-enabled Kubeflow with kfctl_existing_arrikto</a></td>
0 commit comments