Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support install kubeflow by Deployment Manager #757

Closed
kunmingg opened this issue May 4, 2018 · 7 comments
Closed

Support install kubeflow by Deployment Manager #757

kunmingg opened this issue May 4, 2018 · 7 comments

Comments

@kunmingg
Copy link
Contributor

kunmingg commented May 4, 2018

To provide better user experience on GCP,
we should provide installing kubeflow through Deployment Manager.
Installation should be as simple as:

  1. Insert into templates info like email...
  2. gcloud deployment-manager deployments create XXX (preprare all resources, including a dev pod)
  3. (should we automate this step?) Enter dev pod and "apply kubeflow components".
@inc0
Copy link

inc0 commented May 4, 2018

Can you leverage our statefulset for that? bootstrap/examples/kubeflow-toolbox.yaml

@jlewi
Copy link
Contributor

jlewi commented May 9, 2018

We want to use deployment manager to setup non K8s resources; e.g. GKE, static ips, buckets, service accounts etc...

The goal is to provide declarative configs that make it easy to get started with Kubeflow on GCP.

We'd like this infrastructure to connect with the bootstrapper e.g. by launching the stateful set to run the bootstrapper to initialize the app.

@jlewi
Copy link
Contributor

jlewi commented May 10, 2018

Here's an example of using Deployment Manager to create a daemonset. I suspect a similar approach could be used to

  • Create the namespace
  • Create the clusterrolebinding
  • Create the statefulset for the bootstrapper

@kkasravi
Copy link
Contributor

@jlewi this has similarities with the bootstrapper modifications proposal (i'm addressing your comments under there separately).

Would using the deployment manager couple kubeflow to GCP or would there be other deployment managers for other cloud-providers?

Having an initial infrastructure to create resources required for the bootstrapper to run is what I was suggesting in the proposal but using a CRD and 2 controllers with different RBACs. The idea was to enable self-serve for data scientists so they are able deploy kubeflow w/o requiring cluster level RBACs, rather they could have rolebindings specific to the namespace.

I think this does the same thing by using the deployment manager API rather than a CRD.

@jlewi
Copy link
Contributor

jlewi commented May 10, 2018

No this would not couple Kubeflow to GCP. We will never do that.

The goal here is to provide recommendations about how to setup Kubeflow on GCP (#240 and #241). As part of that, we want to recommend using deployment manager mostly to setup non GCP resources (e.g. DNS, buckets, IAM roles, secrets etc...). The reason I'm advocating for using deployment manager (as opposed to say a shell script for running gcloud), is because I want to follow the K8s pattern of managing infrastructure declaratively.

The intent here is that each Cloud Provider or K8s distribution should provide best practices/recommendations for their platform (issue #240).

@jlewi
Copy link
Contributor

jlewi commented May 10, 2018

For comparison, at Kubecon @sfabel of Canonical demo'd using Juju to provision resources and then deploy Kubeflow.

jlewi added a commit to jlewi/kubeflow that referenced this issue May 10, 2018
…to run Kubeflow.

* The config just creates the GKE cluster we still have a lot of work to do
  to get a complete solution for deploying Kubeflow.

* The goal is to provide a complete declarative solution that makes it easy to
get started with Kubeflow. The idea is the configs should provide sensible
defaults (e.g. n1-standard-8) so people can just copy it to create a good
initial setup.

* For more advanced setup users can customize the config. For example, they
  might configure VPC networks as part of their deployment.

* The current thinking is that deployment manager should create the K8s cluster
  and other resources (service accounts, namespaces, etc...) to run the
  bootstrapper.

* Deployment manager could then kick off the bootstrapper which would create
  a ksonnet app to deploy Kubeflow and then deploy Kubeflow.

* Create an E2E test to provide a smoke test of the configs.

Related to:
  kubeflow#757 Use Deployment manager
  kubeflow#241 Recommended setup for GKE - The idea is to encode the recommended setup as a deployment manager config.
k8s-ci-robot pushed a commit that referenced this issue May 14, 2018
…to run Kubeflow (#787)

* Initial set of deployment manager configs for creating a GKE cluster to run Kubeflow.

* The config just creates the GKE cluster we still have a lot of work to do
  to get a complete solution for deploying Kubeflow.

* The goal is to provide a complete declarative solution that makes it easy to
get started with Kubeflow. The idea is the configs should provide sensible
defaults (e.g. n1-standard-8) so people can just copy it to create a good
initial setup.

* For more advanced setup users can customize the config. For example, they
  might configure VPC networks as part of their deployment.

* The current thinking is that deployment manager should create the K8s cluster
  and other resources (service accounts, namespaces, etc...) to run the
  bootstrapper.

* Deployment manager could then kick off the bootstrapper which would create
  a ksonnet app to deploy Kubeflow and then deploy Kubeflow.

* Create an E2E test to provide a smoke test of the configs.

Related to:
  #757 Use Deployment manager
  #241 Recommended setup for GKE - The idea is to encode the recommended setup as a deployment manager config.

* Autoformat jsonnet.

* Fix the parameters.

* Fix lint.
@jlewi
Copy link
Contributor

jlewi commented May 29, 2018

We can close this once #875 is committed.

saffaalvi pushed a commit to StatCan/kubeflow that referenced this issue Feb 11, 2021
…to run Kubeflow (kubeflow#787)

* Initial set of deployment manager configs for creating a GKE cluster to run Kubeflow.

* The config just creates the GKE cluster we still have a lot of work to do
  to get a complete solution for deploying Kubeflow.

* The goal is to provide a complete declarative solution that makes it easy to
get started with Kubeflow. The idea is the configs should provide sensible
defaults (e.g. n1-standard-8) so people can just copy it to create a good
initial setup.

* For more advanced setup users can customize the config. For example, they
  might configure VPC networks as part of their deployment.

* The current thinking is that deployment manager should create the K8s cluster
  and other resources (service accounts, namespaces, etc...) to run the
  bootstrapper.

* Deployment manager could then kick off the bootstrapper which would create
  a ksonnet app to deploy Kubeflow and then deploy Kubeflow.

* Create an E2E test to provide a smoke test of the configs.

Related to:
  kubeflow#757 Use Deployment manager
  kubeflow#241 Recommended setup for GKE - The idea is to encode the recommended setup as a deployment manager config.

* Autoformat jsonnet.

* Fix the parameters.

* Fix lint.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants