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

feat(install): add separate install guide for each env #2054

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 5 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
2 changes: 2 additions & 0 deletions .github/styles/config/vocabularies/Base/accept.txt
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ Mockbin
Moesif
MongoDB
m?TLS
[mM]ulti-zone
[sS]ingle-zone
Multus
NAD
namespace[sd]?
Expand Down
4 changes: 4 additions & 0 deletions .github/styles/config/vocabularies/Base/reject.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,8 @@ control-plane
controlplane
data-plane
dataplane
multizone
multi\s+zone
singlezone
single\s+zone
tls
23 changes: 21 additions & 2 deletions app/_data/docs_nav_kuma_dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,27 @@ items:
url: "/introduction/how-kuma-works/#kuma-vs-xyz"
- text: Architecture
url: /introduction/architecture/
- text: Install Kuma
url: /introduction/install-kuma/
- title: Install Kuma
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Maybe this could be a separate top level entry in sidebar?

group: true
items:
- text: Overview
url: "/introduction/install/overview"
- title: Single-zone
group: true
items:
- text: Kubernetes with Helm
url: "/introduction/install/single-zone/helm"
- text: Kubernetes with kumactl
url: "/introduction/install/single-zone/kubernetes-kumactl"
- text: Universal
url: "/introduction/install/single-zone/universal"
- title: Multi-zone
group: true
items:
- text: Kubernetes with Helm
url: "/introduction/install/multi-zone/helm"
- text: Kubernetes with kumactl
url: "/introduction/install/multi-zone/kubernetes-kumactl"
- text: Concepts
url: /introduction/concepts/
- text: Kuma requirements
Expand Down
35 changes: 35 additions & 0 deletions app/_src/introduction/install/multi-zone/helm.md
Copy link
Contributor Author

Choose a reason for hiding this comment

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

this should replace: https://kuma.io/docs/2.9.x/production/cp-deployment/multi-zone/ do we need to move anything from old guide somewhere before we remove it?

Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
title: Install multi-zone on Kubernetes with kumactl
content_type: how-to
---

This is a simple guide on how to install {{site.mesh_product_name}} on your Kubernetes clusters using [Helm](https://helm.sh/).

1. Add helm repo:
```shell
helm repo add {{site.mesh_helm_repo_name}} {{site.mesh_helm_repo_url}} && helm repo update
```
2. Install {{site.mesh_product_name}} on global cluster:
```shell
helm install --create-namespace \
--namespace {{site.mesh_namespace}} \
--set "controlPlane.mode=global" \
{{ site.mesh_helm_install_name }} {{ site.mesh_helm_repo }} --version {{ page.version_data.version }}
```
3. Find the external IP and port of the `{{site.mesh_product_name}}-global-zone-sync` service in the {{site.mesh_namespace}} namespace:
```shell
kubectl get service {{site.mesh_product_name}}-global-zone-sync -n {{site.mesh_namespace}} -ojson -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
Copy link
Contributor

Choose a reason for hiding this comment

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

Would it make sense to add this to an env var and use it just after?

```
4. Install zone control plane on zone cluster (you need to substitute your `<zone-name>` and `<global-kds-address>` extracted in the previous step):
```shell
helm install --create-namespace --namespace {{site.mesh_namespace}} \
--set "controlPlane.mode=zone" \
--set "controlPlane.zone=<zone-name>" \
--set "ingress.enabled=true" \
--set "controlPlane.kdsGlobalAddress=grpcs://<global-kds-address>:5685" \
--set "controlPlane.tls.kdsZoneClient.skipVerify=true" \
{{ site.mesh_helm_install_name }} {{ site.mesh_helm_repo }} --version {{ page.version_data.version }}
Automaat marked this conversation as resolved.
Show resolved Hide resolved
```

## Next steps
* Read more about [multi-zone setup](/docs/{{ page.version }}/production/deployment/multi-zone/)
40 changes: 40 additions & 0 deletions app/_src/introduction/install/multi-zone/kubernetes-kumactl.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
title: Install multi-zone on Kubernetes with kumactl
content_type: how-to
---

This is a simple guide on how to install {{site.mesh_product_name}} on your Kubernetes clusters using `kumactl`.

1. Go to the [{{site.mesh_product_name}} packages](https://cloudsmith.io/~kong/repos/{{site.mesh_product_name_path}}-binaries-release/packages/?q=version%3A{{ page.version_data.version }})
page to download and extract the installation archive for your OS, or download and extract the latest release automatically (Linux or macOS):
```shell
curl -L {{site.links.web}}{% if page.edition %}/{{page.edition}}{% endif %}/installer.sh | VERSION={{ page.version_data.version }} sh -
```
2. To finish installation, add {{site.mesh_product_name}} binaries to path:
```shell
export PATH=$(pwd)/{{site.mesh_product_name_path}}-{{ page.version_data.version }}/bin:$PATH
```
This directory contains binaries for `kuma-dp`, `kuma-cp`, `kumactl`, `envoy` and `coredns`
3. Install {{site.mesh_product_name}} on global cluster:
```shell
kumactl install control-plane \
--set "controlPlane.mode=global" \
| kubectl apply -f -
```
4. Find the external IP and port of the `{{site.mesh_product_name}}-global-zone-sync` service in the {{site.mesh_namespace}} namespace:
```shell
kubectl get service {{site.mesh_product_name}}-global-zone-sync -n {{site.mesh_namespace}} -ojson -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
```
5. Install zone control plane on zone cluster (you need to substitute your `<zone-name>` and `<global-kds-address>` extracted in the previous step):
```shell
kumactl install control-plane \
--set "controlPlane.mode=zone" \
--set "controlPlane.zone=<zone-name>" \
--set "ingress.enabled=true" \
--set "controlPlane.kdsGlobalAddress=grpcs://<global-kds-address>:5685" \
--set "controlPlane.tls.kdsZoneClient.skipVerify=true" \
| kubectl apply -f -
```

## Next steps
* Read more about [multi-zone setup](/docs/{{ page.version }}/production/deployment/multi-zone/)
32 changes: 32 additions & 0 deletions app/_src/introduction/install/overview.md
Copy link
Contributor Author

Choose a reason for hiding this comment

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

this page looks poor, can we do something to improve it?

Copy link
Contributor

Choose a reason for hiding this comment

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

Do we need it?

Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
title: Installation methods overview
---


## Single-zone

{{site.mesh_product_name}}’s default deployment model with one control plane (that can be scaled horizontally) and many
data planes connecting directly to it.

### Kubernetes

[Install {{site.mesh_product_name}} with helm instruction](/docs/{{ page.version }}/introduction/install/single-zone/helm/)

[Install {{site.mesh_product_name}} with kumactl instruction](/docs/{{ page.version }}/introduction/install/single-zone/kubernetes-kumactl/)

### Universal

[Install single zone {{site.mesh_product_name}} instruction](/docs/{{ page.version }}/introduction/install/single-zone/universal/)

## Multi-zone

{{site.mesh_product_name}}’s advanced deployment model to support multiple Kubernetes or VM-based zones, or hybrid Service Meshes
running on both Kubernetes and VMs combined.

### Kubernetes

[Install {{site.mesh_product_name}} with helm instruction](/docs/{{ page.version }}/introduction/install/multi-zone/helm/)

[Install {{site.mesh_product_name}} with kumactl instruction](/docs/{{ page.version }}/introduction/install/multi-zone/kubernetes-kumactl/)


27 changes: 27 additions & 0 deletions app/_src/introduction/install/single-zone/helm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
title: Install single-zone on Kubernetes with Helm
content_type: how-to
---

This is a simple guide on how to install {{site.mesh_product_name}} on your Kubernetes cluster using [Helm](https://helm.sh/).

1. Add helm repo:
```shell
helm repo add {{site.mesh_helm_repo_name}} {{site.mesh_helm_repo_url}} && helm repo update
```
2. Install {{site.mesh_product_name}} on your cluster:
```shell
helm install --create-namespace \
--namespace {{site.mesh_namespace}} \
{{ site.mesh_helm_install_name }} {{ site.mesh_helm_repo }} --version {{ page.version_data.version }}
```
3. Verify installation:
```shell
kubectl -n {{site.mesh_namespace}} port-forward svc/{{ site.mesh_helm_install_name }}-control-plane 5681:5681
```
Open [GUI](/docs/{{ page.version }}/production/gui) in your browser by navigating to [127.0.0.1:5681/gui](http://127.0.0.1:5681/gui)

## Next steps
* [Complete quickstart](/docs/{{ page.version }}/quickstart/kubernetes-demo/) to install demo application and secure traffic
* Read more about [single-zone setup](/docs/{{ page.version }}/production/deployment/single-zone/)
* [Federate](/docs/{{ page.version }}/guides/federate) zone into a multi-zone deployment
31 changes: 31 additions & 0 deletions app/_src/introduction/install/single-zone/kubernetes-kumactl.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
title: Install single-zone on Kubernetes with kumactl
content_type: how-to
---

This is a simple guide on how to install {{site.mesh_product_name}} on your Kubernetes cluster using `kumactl`.

1. Go to the [{{site.mesh_product_name}} packages](https://cloudsmith.io/~kong/repos/{{site.mesh_product_name_path}}-binaries-release/packages/?q=version%3A{{ page.version_data.version }})
page to download and extract the installation archive for your OS, or download and extract the latest release automatically (Linux or macOS):
```shell
curl -L {{site.links.web}}{% if page.edition %}/{{page.edition}}{% endif %}/installer.sh | VERSION={{ page.version_data.version }} sh -
```
2. To finish installation, add {{site.mesh_product_name}} binaries to path:
```shell
export PATH=$(pwd)/{{site.mesh_product_name_path}}-{{ page.version_data.version }}/bin:$PATH
```
This directory contains binaries for `kuma-dp`, `kuma-cp`, `kumactl`, `envoy` and `coredns`
3. Install {{site.mesh_product_name}} on your cluster:
```shell
kumactl install control-plane | kubectl apply -f -
```
4. Verify installation:
```shell
kubectl -n {{site.mesh_namespace}} port-forward svc/{{ site.mesh_helm_install_name }}-control-plane 5681:5681
```
Open [GUI](/docs/{{ page.version }}/production/gui) in your browser by navigating to [127.0.0.1:5681/gui](http://127.0.0.1:5681/gui)

## Next steps
* [Complete quickstart](/docs/{{ page.version }}/quickstart/kubernetes-demo/) to install demo application and secure traffic
* Read more about [single-zone setup](/docs/{{ page.version }}/production/deployment/single-zone/)
* [Federate](/docs/{{ page.version }}/guides/federate) zone into a multi-zone deployment
31 changes: 31 additions & 0 deletions app/_src/introduction/install/single-zone/universal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
title: Install single-zone on Universal
content_type: how-to
---

This is a simple guide on how to install {{site.mesh_product_name}} on your machine.

1. Go to the [{{site.mesh_product_name}} packages](https://cloudsmith.io/~kong/repos/{{site.mesh_product_name_path}}-binaries-release/packages/?q=version%3A{{ page.version_data.version }})
page to download and extract the installation archive for your OS, or download and extract the latest release automatically (Linux or macOS):
```shell
curl -L {{site.links.web}}{% if page.edition %}/{{page.edition}}{% endif %}/installer.sh | VERSION={{ page.version_data.version }} sh -
```
2. To finish installation, add {{site.mesh_product_name}} binaries to path:
```shell
export PATH=$(pwd)/{{site.mesh_product_name_path}}-{{ page.version_data.version }}/bin:$PATH
```
This directory contains binaries for `kuma-dp`, `kuma-cp`, `kumactl`, `envoy` and `coredns`
3. Run {{site.mesh_product_name}} control plane
```shell
kuma-cp run
```
4. To verify installation open [GUI](/docs/{{ page.version }}/production/gui) in your browser by navigating to [127.0.0.1:5681/gui](http://127.0.0.1:5681/gui)

{% tip %}
If you only need `kumactl` on macOS you can install it via `brew install kumactl`.
{% endtip %}


## Next steps
* [Complete quickstart](/docs/{{ page.version }}/quickstart/universal-demo/) to install demo application and secure traffic
* Read more about [single-zone setup](/docs/{{ page.version }}/production/deployment/single-zone/)
Loading