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

add "distribution name" notice on "installing kubeflow" + style improvements #3643

Closed
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions assets/scss/_styles_project.scss
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,18 @@ footer {
}
}

// --------------------------------------------------
// Installing Kubeflow page
// --------------------------------------------------
.distributions-table-active thead {
background-color: $primary;
color: $secondary;
}

.distributions-table-legacy thead {
background-color: $info;
}

// --------------------------------------------------
// 404 page
// --------------------------------------------------
Expand Down
59 changes: 40 additions & 19 deletions content/en/docs/started/installing-kubeflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,48 @@ weight = 20

+++

### What is Kubeflow?

Kubeflow is an end-to-end Machine Learning (ML) platform for Kubernetes, it provides components for each stage in the ML lifecycle, from exploration through to training and deployment.
Operators can choose what is best for their users, there is no requirement to deploy every component.
To read more about the components and architecture of Kubeflow, please see the <a href="/docs/started/architecture/">Kubeflow Architecture</a> page.

Learn more about Kubeflow on the [Introduction](/docs/started/introduction/) and [Architecture](/docs/started/architecture/) pages.

### How to install Kubeflow?

There are two pathways to get up and running with Kubeflow, you may either:
Anywhere you are running Kubernetes, you should be able to run Kubeflow.
There are two primary ways to install Kubeflow:

1. [Use a packaged distribution](#packaged-distributions-of-kubeflow)
2. [Use the raw manifests](#raw-kubeflow-manifests) <sup>(for advanced users)</sup>
1. [__Packaged Distributions__](#packaged-distributions-of-kubeflow) <sup>(recommended)</sup>
2. [__Raw Manifests__](#raw-kubeflow-manifests) <sup>(advanced users)</sup>
Copy link
Member

@andreyvelich andreyvelich Feb 20, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TBH, I would avoid to say that Package distribution is recommended way of installing Kubeflow. I think, users should chose what they want without explicit notice.
Also, in the following PRs I would like to have 3rd option: Kubeflow Component Standalone, which will explain that Kubeflow is composable and will link to independent components installation guides.
That will help users to understand that they can use individual Kubeflow component separately.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree we should not technically "recommend" anything, I have updated the PR.


Regarding adding a third "option" of installing standalone components, I am not sure that it's quite the right way to present it. We really want to present Kubeflow as a unified platform, rather than a collection of tools.

I am not sure if it's a good idea to link people to guides that show how to install specific components, not as part of the larger platform.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We really want to present Kubeflow as a unified platform, rather than a collection of tools.

I think, this is debatable. One of the big advantages of Kubeflow is that it could be easily integrated into existing ML platforms without any changes.
For example, if users just need engine for Training, they can use Training Operator or engine for Serving they can use KServe.
I know many large enterprises who are using individual Kubeflow components since they already have some ML capabilities in their platforms.

If we explain Kubeflow microservice architecture and composability properly we will get more attraction from the ML community and other companies.

cc @bigsur0

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andreyvelich either way, we can discuss that in a future PR. I think this PR is probably ready to merge now, unless you have any other concerns?

It's critical we get this merged, to help users understand that "Kubeflow on XXXX" does not mean that it's the only way to install Kubeflow on that platform.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you need to remove for advance users as well ?
Since we removed warning from raw manifests installation section.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We still kind of have a warning, it's just less forceful.

But either way, installing from the manifests is really for advanced users only, we don't want people new to Kubeflow/Kubernetes thinking that its a good place to start.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From my point of view, we should even remove these warnings.
I think, users already understood this by reading the following:
"""
Packaged distributions are maintained by various organizations and typically aim to provide a simplified installation and management experience for Kubeflow.
"""

Would do others think @kubeflow/wg-manifests-leads @kubeflow/kubeflow-steering-committee ?

Copy link
Member Author

@thesuperzapper thesuperzapper Feb 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I strongly think we need to keep a warning of some kind (for the raw manifests).

The new warning from this PR is more specific that users need to understand Kubernetes, Istio and Kubeflow itself, but is overall less forceful (because if someone really is experienced, they shouldn't be afraid of it, but they should know what they're getting themselves into).

Kubeflow and it's dependencies are really one of the most complicated things people regularly deploy on Kubernetes.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with Andrew here. Let's rather work with the smallest denominator and refine later on if needed. Then we can merge this PR without the warning and bring any controversial ideas to the KSC agenda.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just so we are clear, the existing website says (for advanced users), and this PR just removes the word "for" so it becomes (advanced users), so its not really a significant change.

I can re-add the "for" if you like, lol.

If we want to change how we present the "raw manifests" to be a non-advanced option, we should do that in a separate PR, after a lot of community discussion.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That makes sense @thesuperzapper. Let's discuss these changes in separate PR, if @juliusvonkohout are ok with it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes of course, if is really just removing "for"


<a id="packaged-distributions"></a>
<a id="install-a-packaged-kubeflow-distribution"></a>
## Packaged Distributions of Kubeflow

{{% alert title="Note" color="warning" %}}
Packaged distributions are developed and supported by their respective maintainers, <b>the Kubeflow community does not endorse or certify any specific distribution</b>.
Packaged distributions are maintained by various organizations and typically aim to provide a simplified installation and management experience for Kubeflow.

{{% alert title="Conformance and Certification" color="warning" %}}
Packaged distributions are developed and supported by their respective maintainers.
The Kubeflow community <strong>does not endorse or certify</strong> any specific distribution.

In the near future, there are plans to introduce <a href="https://github.com/kubeflow/community/blob/master/proposals/kubeflow-conformance-program-proposal.md">conformance testing for distributions</a>, you may track progress on this initiative by following <a href="https://github.com/kubeflow/kubeflow/issues/6485">kubeflow/kubeflow#6485</a>.
{{% /alert %}}

{{% alert title="Distribution Names" color="info" %}}
Some packaged distributions have names like `Kubeflow on <PLATFORM>`.
Please note, they are __not__ the only way to use Kubeflow on that platform, it is simply the name of a distribution.

There are discussions about renaming these distributions to avoid confusion with others that may be available on the same platform.
{{% /alert %}}

### Active Distributions

The following table lists <b>active distributions</b> that have <b>had a recent release</b> (within the last 6 months).
The following table lists <strong>active distributions</strong> which are <em>currently maintained</em> by their respective maintainers.

<div class="table-responsive">
<div class="table-responsive distributions-table-active">
<table class="table table-bordered">
<thead class="thead-light">
<thead>
<tr>
<th>Name</th>
<th>Maintainer</th>
Expand Down Expand Up @@ -68,7 +82,6 @@ The following table lists <b>active distributions</b> that have <b>had a recent
1.7.0 <sup>[<a href="https://github.com/Azure/kubeflow-aks/releases/tag/v1.7.0">Release Notes</a>]</sup>
</td>
</tr>
<tr>
<tr>
<td>Kubeflow on Google Cloud</td>
<td>Google Cloud</td>
Expand Down Expand Up @@ -164,11 +177,11 @@ The following table lists <b>active distributions</b> that have <b>had a recent

### Legacy Distributions

The following table lists <b>legacy distributions</b> which have <b>not had a recent release</b> (within the last 6 months).
The following table lists <strong>legacy distributions</strong> which have <em>not had a recent release</em> (within the last 6 months), or whose maintainers have indicated that they are <em>no longer actively maintaining the distribution</em>.

<div class="table-responsive">
<div class="table-responsive distributions-table-legacy">
<table class="table table-bordered">
<thead class="thead-light">
<thead>
<tr>
<th>Name</th>
<th>Maintainer</th>
Expand Down Expand Up @@ -229,17 +242,25 @@ The following table lists <b>legacy distributions</b> which have <b>not had a re
<a id="install-the-kubeflow-manifests-manually"></a>
## Raw Kubeflow Manifests

The raw Kubeflow Manifests are aggregated by the [Manifests Working Group](https://github.com/kubeflow/community/tree/master/wg-manifests)
and are intended to be used as the __base of packaged distributions__.

Very advanced users may choose to install the manifests for a specific Kubeflow version by following the instructions in the `README` of the [`kubeflow/manifests`](https://github.com/kubeflow/manifests) repository.

- [__Kubeflow 1.8:__](/docs/releases/kubeflow-1.8/)
- [`v1.8-branch`](https://github.com/kubeflow/manifests/tree/v1.8-branch#installation) <sup>(development branch)</sup>
- [`v1.8.0`](https://github.com/kubeflow/manifests/tree/v1.8.0#installation)
- [__Kubeflow 1.7:__](/docs/releases/kubeflow-1.7/)
- [`v1.7-branch`](https://github.com/kubeflow/manifests/tree/v1.7-branch#installation) <sup>(development branch)</sup>
- [`v1.7.0`](https://github.com/kubeflow/manifests/tree/v1.7.0#installation)

{{% alert title="Warning" color="warning" %}}
This method is for advanced users.
Kubeflow is a complex system with many components and dependencies, using the raw manifests requires a deep understanding of Kubernetes, Istio, and Kubeflow itself.

The Kubeflow community is not able to provide support for environment-specific issues when using the raw manifests.
When using the raw manifests, the Kubeflow community is not able to provide support for environment-specific issues or custom configurations.
Copy link
Member

@juliusvonkohout juliusvonkohout Mar 1, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about

"When using the raw manifests, the Kubeflow maintainers will not provide unpaid support for environment-specific issues or custom configurations. Nevertheless we welcome contributions and bug reports very much. If you need individual support, please consider using a packaged distribution or paid consulting."

instead of

"When using the raw manifests, the Kubeflow community is not able to provide support for environment-specific issues or custom configurations. If you need support, please consider using a packaged distribution."

Disclaimer: I do Kubeflow Consulting, probably @thesuperzapper as well. But i think it is fair to mention that in general next to packaged commercial distributions.

Copy link
Member

@andreyvelich andreyvelich Mar 1, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@juliusvonkohout Can you submit followup PR to make this change ? I think, this PR is opened for so long and we should move forward.

If you need support, please consider using a [packaged distribution](#packaged-distributions-of-kubeflow).
{{% /alert %}}

The raw <a href="https://github.com/kubeflow/manifests">Kubeflow manifests</a> are aggregated by the <a href="https://github.com/kubeflow/community/tree/master/wg-manifests">Manifests Working Group</a>
and are intended to be used as the base of packaged distributions,
<b>advanced users may choose to install the manifests directly</b> by following <a href="https://github.com/kubeflow/manifests#installation">these instructions</a>.

<a id="next-steps"></a>
## Next steps

Expand Down