diff --git a/.github/styles/config/vocabularies/Base/accept.txt b/.github/styles/config/vocabularies/Base/accept.txt index eaa9ba9d2..051113add 100644 --- a/.github/styles/config/vocabularies/Base/accept.txt +++ b/.github/styles/config/vocabularies/Base/accept.txt @@ -105,6 +105,8 @@ Mockbin Moesif MongoDB m?TLS +[mM]ulti-zone +[sS]ingle-zone Multus NAD namespace[sd]? diff --git a/.github/styles/config/vocabularies/Base/reject.txt b/.github/styles/config/vocabularies/Base/reject.txt index 379e590fd..d0f39b723 100644 --- a/.github/styles/config/vocabularies/Base/reject.txt +++ b/.github/styles/config/vocabularies/Base/reject.txt @@ -3,4 +3,8 @@ controlplane data-plane dataplane tcp +multizone +multi\s+zone +singlezone +single\s+zone tls diff --git a/app/_data/docs_nav_kuma_2.9.x.yml b/app/_data/docs_nav_kuma_2.9.x.yml index af52e5d40..51ef56ab5 100644 --- a/app/_data/docs_nav_kuma_2.9.x.yml +++ b/app/_data/docs_nav_kuma_2.9.x.yml @@ -5,7 +5,7 @@ items: group: true items: - text: About service meshes - url: /introduction/about-service-meshes + url: /introduction/about-service-meshes/ - text: Overview of Kuma url: /introduction/overview-of-kuma/ - text: How Kuma works @@ -33,7 +33,7 @@ items: group: true items: - text: Deploy Kuma on Kubernetes - url: /quickstart/kubernetes-demo + url: /quickstart/kubernetes-demo/ items: - text: Prerequisites url: "/quickstart/kubernetes-demo/#prerequisites" @@ -50,7 +50,22 @@ items: - text: Next steps url: "/quickstart/kubernetes-demo/#next-steps" - text: Deploy Kuma on Universal - url: /quickstart/universal-demo + url: /quickstart/universal-demo/ + items: + - text: Prerequisites + url: "/quickstart/universal-demo/#prerequisites" + - text: Start Kubernetes cluster + url: "/quickstart/universal-demo/#start-kubernetes-cluster" + - text: Install Kuma + url: "/quickstart/universal-demo/#install-kuma" + - text: Deploy demo application + url: "/quickstart/universal-demo/#deploy-demo-application" + - text: Explore GUI + url: "/quickstart/universal-demo/#explore-the-gui" + - text: Introduce zero-trust security + url: "/quickstart/universal-demo/#introduce-zero-trust-security" + - text: Next steps + url: "/quickstart/universal-demo/#next-steps" - title: Kuma in Production group: true items: @@ -81,14 +96,14 @@ items: - text: Configure zone proxy authentication url: /production/cp-deployment/zoneproxy-auth/ - text: Control plane configuration reference - url: /reference/kuma-cp + url: /reference/kuma-cp/ generate: false - text: Systemd url: /production/cp-deployment/systemd/ - text: Kubernetes url: /production/cp-deployment/kubernetes/ - text: kumactl - url: /explore/cli + url: /explore/cli/ - text: Configuring your Mesh and multi-tenancy url: /production/mesh/ - title: Data plane configuration @@ -500,7 +515,7 @@ items: - text: Progressively rolling in strict MTLS url: /guides/progressively-rolling-in-strict-mtls/ - text: Producer and consumer policies - url: /guides/consumer-producer-policies + url: /guides/consumer-producer-policies/ - title: Reference group: true items: diff --git a/app/_data/docs_nav_kuma_dev.yml b/app/_data/docs_nav_kuma_dev.yml index af52e5d40..05629d0f8 100644 --- a/app/_data/docs_nav_kuma_dev.yml +++ b/app/_data/docs_nav_kuma_dev.yml @@ -5,7 +5,7 @@ items: group: true items: - text: About service meshes - url: /introduction/about-service-meshes + url: /introduction/about-service-meshes/ - text: Overview of Kuma url: /introduction/overview-of-kuma/ - text: How Kuma works @@ -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 + 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 @@ -33,7 +52,7 @@ items: group: true items: - text: Deploy Kuma on Kubernetes - url: /quickstart/kubernetes-demo + url: /quickstart/kubernetes-demo/ items: - text: Prerequisites url: "/quickstart/kubernetes-demo/#prerequisites" @@ -50,7 +69,22 @@ items: - text: Next steps url: "/quickstart/kubernetes-demo/#next-steps" - text: Deploy Kuma on Universal - url: /quickstart/universal-demo + url: /quickstart/universal-demo/ + items: + - text: Prerequisites + url: "/quickstart/universal-demo/#prerequisites" + - text: Start Kubernetes cluster + url: "/quickstart/universal-demo/#start-kubernetes-cluster" + - text: Install Kuma + url: "/quickstart/universal-demo/#install-kuma" + - text: Deploy demo application + url: "/quickstart/universal-demo/#deploy-demo-application" + - text: Explore GUI + url: "/quickstart/universal-demo/#explore-the-gui" + - text: Introduce zero-trust security + url: "/quickstart/universal-demo/#introduce-zero-trust-security" + - text: Next steps + url: "/quickstart/universal-demo/#next-steps" - title: Kuma in Production group: true items: @@ -81,14 +115,14 @@ items: - text: Configure zone proxy authentication url: /production/cp-deployment/zoneproxy-auth/ - text: Control plane configuration reference - url: /reference/kuma-cp + url: /reference/kuma-cp/ generate: false - text: Systemd url: /production/cp-deployment/systemd/ - text: Kubernetes url: /production/cp-deployment/kubernetes/ - text: kumactl - url: /explore/cli + url: /explore/cli/ - text: Configuring your Mesh and multi-tenancy url: /production/mesh/ - title: Data plane configuration @@ -243,11 +277,11 @@ items: - text: Service Discovery url: /networking/service-discovery/ - text: MeshService - url: "/networking/meshservice/" + url: /networking/meshservice/ - text: MeshMultiZoneService - url: "/networking/meshmultizoneservice/" + url: /networking/meshmultizoneservice/ - text: HostnameGenerator - url: "/networking/hostnamegenerator/" + url: /networking/hostnamegenerator/ - text: DNS url: /networking/dns/ items: @@ -500,7 +534,7 @@ items: - text: Progressively rolling in strict MTLS url: /guides/progressively-rolling-in-strict-mtls/ - text: Producer and consumer policies - url: /guides/consumer-producer-policies + url: /guides/consumer-producer-policies/ - title: Reference group: true items: @@ -511,7 +545,7 @@ items: - text: Kuma data collection url: /reference/data-collection/ - text: Control plane configuration reference - url: /reference/kuma-cp + url: /reference/kuma-cp/ - text: Envoy proxy template url: /reference/proxy-template/ - title: Community diff --git a/app/_src/introduction/install/multi-zone/helm.md b/app/_src/introduction/install/multi-zone/helm.md new file mode 100644 index 000000000..fbc606419 --- /dev/null +++ b/app/_src/introduction/install/multi-zone/helm.md @@ -0,0 +1,41 @@ +--- +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}' +``` +4. Install zone control plane on zone cluster (you need to substitute your `` and `` extracted in the previous step): +```shell +helm install --create-namespace --namespace {{site.mesh_namespace}} \ + --set "controlPlane.mode=zone" \ + --set "controlPlane.zone=" \ + --set "ingress.enabled=true" \ + --set "controlPlane.kdsGlobalAddress=grpcs://:5685" \ + --set "controlPlane.tls.kdsZoneClient.skipVerify=true" \ + {{ site.mesh_helm_install_name }} {{ site.mesh_helm_repo }} --version {{ page.version_data.version }} +``` +5. To verify installation on global Kubernetes cluster run: +```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). +You should see zone connected and healthy. + +## Next steps +* Read more about [multi-zone setup](/docs/{{ page.version }}/production/deployment/multi-zone/) \ No newline at end of file diff --git a/app/_src/introduction/install/multi-zone/kubernetes-kumactl.md b/app/_src/introduction/install/multi-zone/kubernetes-kumactl.md new file mode 100644 index 000000000..03a020eaa --- /dev/null +++ b/app/_src/introduction/install/multi-zone/kubernetes-kumactl.md @@ -0,0 +1,46 @@ +--- +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 `` and `` extracted in the previous step): +```shell +kumactl install control-plane \ + --set "controlPlane.mode=zone" \ + --set "controlPlane.zone=" \ + --set "ingress.enabled=true" \ + --set "controlPlane.kdsGlobalAddress=grpcs://:5685" \ + --set "controlPlane.tls.kdsZoneClient.skipVerify=true" \ + | kubectl apply -f - +``` +6. To verify installation on global Kubernetes cluster run: +```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). +You should see zone connected and healthy. + +## Next steps +* Read more about [multi-zone setup](/docs/{{ page.version }}/production/deployment/multi-zone/) \ No newline at end of file diff --git a/app/_src/introduction/install/overview.md b/app/_src/introduction/install/overview.md new file mode 100644 index 000000000..91d451912 --- /dev/null +++ b/app/_src/introduction/install/overview.md @@ -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/) + + diff --git a/app/_src/introduction/install/single-zone/helm.md b/app/_src/introduction/install/single-zone/helm.md new file mode 100644 index 000000000..6583f60d1 --- /dev/null +++ b/app/_src/introduction/install/single-zone/helm.md @@ -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 \ No newline at end of file diff --git a/app/_src/introduction/install/single-zone/kubernetes-kumactl.md b/app/_src/introduction/install/single-zone/kubernetes-kumactl.md new file mode 100644 index 000000000..cb9911f36 --- /dev/null +++ b/app/_src/introduction/install/single-zone/kubernetes-kumactl.md @@ -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 \ No newline at end of file diff --git a/app/_src/introduction/install/single-zone/universal.md b/app/_src/introduction/install/single-zone/universal.md new file mode 100644 index 000000000..9c5847003 --- /dev/null +++ b/app/_src/introduction/install/single-zone/universal.md @@ -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/)