Skip to content

Commit

Permalink
add deploy concerns, fix in examples
Browse files Browse the repository at this point in the history
  • Loading branch information
pwright committed Feb 6, 2024
1 parent 4a5bf43 commit 34e0ced
Show file tree
Hide file tree
Showing 8 changed files with 303 additions and 7 deletions.
4 changes: 2 additions & 2 deletions config/examples.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ categories:
title: Bare metal or VM
- title: Database examples
description: |
With Skupper you can locate your data whereever you need it to
be, while accessing it from whereever your services are running.
With Skupper you can locate your data wherever you need it to
be, while accessing it from wherever your services are running.
examples:
- name: skupper-example-mongodb-replica-set
title: MongoDB
Expand Down
18 changes: 17 additions & 1 deletion convert-all.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,20 @@
./convert-adoc.sh cli/index.adoc cli/tokens.adoc cli/podman.adoc cli/native-security-options.adoc yaml/index.adoc operator/index.adoc console/index.adoc policy/index.adoc troubleshooting/index.adoc overview/connectivity.adoc overview/glossary.adoc overview/index.adoc overview/resources.adoc overview/routing.adoc overview/security.adoc
./convert-adoc.sh \
cli/index.adoc \
cli/tokens.adoc \
cli/podman.adoc \
cli/native-security-options.adoc \
yaml/index.adoc \
operator/index.adoc \
console/index.adoc \
policy/index.adoc \
troubleshooting/index.adoc \
overview/connectivity.adoc \
overview/glossary.adoc \
overview/index.adoc \
overview/resources.adoc \
overview/routing.adoc \
overview/security.adoc \
kubernetes/deployment-concerns.adoc

cp -r subrepos/skupper-docs/images/ input/docs/

Expand Down
15 changes: 15 additions & 0 deletions docs/docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,19 @@ <h2>Troubleshooting</h2>

</div>

<div class="columns">

<div>
<h2>Advanced deployments</h2>

<p>Allocate CPU resources for optimal network performance.</p>

<nav>
<a href="kubernetes/deployment-concerns.html">Deployment options on Kubernetes</a>
</nav>
</div>


<div>
<h2>Blog posts, articles, and videos</h2>

Expand All @@ -174,6 +187,8 @@ <h2>Blog posts, articles, and videos</h2>
</div>


</div>

</div>
</section>

Expand Down
176 changes: 176 additions & 0 deletions docs/docs/kubernetes/deployment-concerns.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Skupper - Deployment options on Kubernetes</title>
<meta name="description" content="Multicluster communication for Kubernetes. Skupper is a layer 7 service interconnect. It enables secure communication across Kubernetes clusters with no VPNs or special firewall rules."/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic|Roboto+Mono:400,400italic|Alegreya+Sans:300,300italic,400,400italic,500,500italic,700,700italic;display=optional"/>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" defer="defer"/>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/all.css" defer="defer"/>
<link rel="stylesheet" href="/main.css"/>
<link rel="icon" type="image/png" sizes="32x32" href="/images/skupper-icon-32.png"/>
<link rel="icon" type="image/png" sizes="256x256" href="/images/skupper-icon-256.png"/>
<script type="text/javascript" src="/main.js" defer="defer"></script>



<script async="async" src="https://www.googletagmanager.com/gtag/js?id=UA-147980770-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'UA-147980770-1');
</script>
</head>
<body>

<header>
<nav id="-site-nav">
<a id="-site-menu-button" style="display: none;">
<span class="material-icons">menu</span>
</a>
<div>
<div id="-left-site-nav">
<a href="/index.html" id="-logotype">
<img src="/images/skupper-logo.svg"/>
<div>Skupper</div>
</a>
<a href="/start/index.html">
<div>Getting started</div>
</a>
<a href="/examples/index.html">
<div>Examples</div>
</a>
<a href="/docs/index.html">
<div>Documentation</div>
</a>
<a href="/releases/index.html">
<div>Releases</div>
</a>
<a href="/community/index.html">
<div>Community</div>
</a>
</div>
<div id="-right-site-nav">
<a href="https://github.com/skupperproject">
<div><span class="fab fa-github fa-lg"></span> GitHub</div>
</a>
</div>
</div>
</nav>
<nav id="-path-nav"><div><a href="/docs/index.html">Documentation</a> <span class="path-separator">&#8250;</span> <a href="/docs/kubernetes/deployment-concerns.html">Deployment options on Kubernetes</a></div></nav>
<nav id="-site-menu-layer" style="display: none;">
<div>
<a href="/index.html">Home</a>
<a href="/start/index.html">Getting started</a>
<a href="/examples/index.html">Examples</a>
<a href="/docs/index.html">Documentation</a>
<a href="/community/index.html">Community</a>
</div>
</nav>
</header>


<section id="-main-and-toc">
<div>
<main>

<h1 id="deployment-options-on-kubernetes">Deployment options on Kubernetes</h1>
<p>When you create a site on Kubernetes, there are many options you can use, for example, the number of pods for each component and the resource allocations for the associated pods.
This guide focusses on the following goals:</p>
<ul>
<li><a href="#scaling-for-increased-traffic">Scaling for increased traffic</a></li>
<li><a href="#creating-a-high-availability-site">Creating a high availability site</a></li>
</ul>
<h2 id="scaling-for-increased-traffic">Scaling for increased traffic</h2>
<p>For optimal network latency and throughput, you can adjust the CPU allocation for the router using the <code>router-cpu</code> option.
Adjusting other allocations does not affect network performance.</p>
<p><strong>📌 NOTE</strong><br />
Increasing the number of routers does not improve network performance.</p>
<ol>
<li><p>Determine the router CPU allocation you require.</p>
<p>By default, the router CPU allocation is <code>BestEffort</code> as described in <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#besteffort">Pod Quality of Service Classes</a>.</p>
<p>Consider the following CPU allocation options:</p>
<p>| | |
| --- | --- |
| Router CPU | Description |
| 1 | Helps avoid issues with <code>BestEffort</code> on low resource clusters. |
| 2 | Suitable for production environments. |
| 5 | Maximum performance. |</p>
</li>
<li><p>If you are using the <code>skupper</code> CLI, set the CPU allocation for the router using the <code>--router-cpu</code> option, for example:</p>
<pre><code class="language-bash">$ skupper init --router-cpu 2
</code></pre>
</li>
<li><p>If you are using YAML, set the CPU allocation for the router by setting a value for <code>router-cpu</code>, for example:</p>
<pre><code class="language-YAML">apiVersion: v1
kind: ConfigMap
metadata:
name: &quot;skupper-site&quot;
data:
name: &quot;my-site&quot;
router-cpu: 2
</code></pre>
</li>
</ol>
<h2 id="creating-a-high-availability-site">Creating a high availability site</h2>
<p>By default, Kubernetes restarts any router that become unresponsive.
If you encounter router pod issues, consider <a href="#scaling-for-increased-traffic">Scaling for increased traffic</a> before increasing the number of routers.</p>
<p>To address high availability concerns, increase the number of routers to 2 as follows:</p>
<ol>
<li><p>If you are using the <code>skupper</code> CLI, set the number of routers to <code>2</code> using the <code>--routers</code> option:</p>
<pre><code class="language-bash">$ skupper init --routers 2
</code></pre>
</li>
<li><p>If you are using YAML, set the number of routers to <code>2</code> by setting the <code>routers</code> value:</p>
<pre><code class="language-YAML">apiVersion: v1
kind: ConfigMap
metadata:
name: &quot;skupper-site&quot;
data:
name: &quot;my-site&quot;
routers: 2
</code></pre>
<p>Setting the number of routers to more than 2 adversely affects performance.</p>
</li>
</ol>


</main>
<nav id="-toc">
<h4>Contents</h4>
<div></div>
</nav>
</div>
</section>

<footer>
<div>
<div>
<p><a href="https://twitter.com/SkupperIO"><span class="fab fa-twitter fa-lg"></span> Twitter</a></p>
<p><a href="https://www.youtube.com/channel/UCQxHN2Qq8koCatcmKCJ4OEA"><span class="fab fa-youtube fa-lg"></span> YouTube</a></p>
<!-- <p><a href="https://stackoverflow.com/questions/tagged/skupper"><span class="fab fa-stack-overflow fa-lg"></span> Stack Overflow</a></p> -->
<p><a href="https://groups.google.com/forum/#!forum/skupper"><span class="fas fa-envelope fa-lg"></span> Mailing list</a></p>
<p><a href="https://github.com/skupperproject"><span class="fab fa-github fa-lg"></span> GitHub</a></p>
</div>
<div>
<h4>Skupper - Multicloud communication for Kubernetes</h4>
<p>Skupper enables secure communication across Kubernetes
clusters with no VPNs or special firewall rules</p>
<p>Copyright &#169; 2023 the Skupper authors</p>
</div>
<div>
<p>All code and documentation is licensed under
the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache
License version 2.0</a></p>
<p>Marks may be trademarks or registered trademarks of their
respective owners</p>
<p><a href="/site.html">About this site</a></p>
</div>
</div>
</footer>



</body>
</html>
4 changes: 2 additions & 2 deletions docs/examples/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -221,8 +221,8 @@ <h3><a href="https://github.com/skupperproject/skupper-example-gateway">Bare met

<h2 id="database-examples">Database examples</h2>

<p>With Skupper you can locate your data whereever you need it to
be, while accessing it from whereever your services are running.
<p>With Skupper you can locate your data wherever you need it to
be, while accessing it from wherever your services are running.
</p>

<div class="examples">
Expand Down
16 changes: 16 additions & 0 deletions input/docs/index.html.in
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,19 @@ extra_headers: <link rel="stylesheet" href="index.css" type="text/css" async="as

</div>

<div class="columns">

<div>
<h2>Advanced deployments</h2>

<p>Allocate CPU resources for optimal network performance.</p>

<nav>
<a href="kubernetes/deployment-concerns.html">Deployment options on Kubernetes</a>
</nav>
</div>


<div>
<h2>Blog posts, articles, and videos</h2>

Expand All @@ -101,3 +114,6 @@ extra_headers: <link rel="stylesheet" href="index.css" type="text/css" async="as
<a href="https://www.youtube.com/watch?v=FPsUgxmj25s">HTTP load-balancing with Skupper across OpenShift clusters</a>
</nav>
</div>


</div>
73 changes: 73 additions & 0 deletions input/docs/kubernetes/deployment-concerns.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
title: Deployment options on Kubernetes
---
# Deployment options on Kubernetes

When you create a site on Kubernetes, there are many options you can use, for example, the number of pods for each component and the resource allocations for the associated pods.
This guide focusses on the following goals:

* [Scaling for increased traffic](#scaling-for-increased-traffic)
* [Creating a high availability site](#creating-a-high-availability-site)

## Scaling for increased traffic

For optimal network latency and throughput, you can adjust the CPU allocation for the router using the `router-cpu` option.
Adjusting other allocations does not affect network performance.

**📌 NOTE**\
Increasing the number of routers does not improve network performance.

1. Determine the router CPU allocation you require.

By default, the router CPU allocation is `BestEffort` as described in [Pod Quality of Service Classes](https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#besteffort).

Consider the following CPU allocation options:

| | |
| --- | --- |
| Router CPU | Description |
| 1 | Helps avoid issues with `BestEffort` on low resource clusters. |
| 2 | Suitable for production environments. |
| 5 | Maximum performance. |
2. If you are using the `skupper` CLI, set the CPU allocation for the router using the `--router-cpu` option, for example:

```bash
$ skupper init --router-cpu 2
```
3. If you are using YAML, set the CPU allocation for the router by setting a value for `router-cpu`, for example:

```YAML
apiVersion: v1
kind: ConfigMap
metadata:
name: "skupper-site"
data:
name: "my-site"
router-cpu: 2
```

## Creating a high availability site

By default, Kubernetes restarts any router that become unresponsive.
If you encounter router pod issues, consider [Scaling for increased traffic](#scaling-for-increased-traffic) before increasing the number of routers.

To address high availability concerns, increase the number of routers to 2 as follows:

1. If you are using the `skupper` CLI, set the number of routers to `2` using the `--routers` option:

```bash
$ skupper init --routers 2
```
2. If you are using YAML, set the number of routers to `2` by setting the `routers` value:

```YAML
apiVersion: v1
kind: ConfigMap
metadata:
name: "skupper-site"
data:
name: "my-site"
routers: 2
```

Setting the number of routers to more than 2 adversely affects performance.
4 changes: 2 additions & 2 deletions input/examples/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,8 @@ containers, or as ordinary processes on bare metal hosts or VMs.

<h2 id="database-examples">Database examples</h2>

<p>With Skupper you can locate your data whereever you need it to
be, while accessing it from whereever your services are running.
<p>With Skupper you can locate your data wherever you need it to
be, while accessing it from wherever your services are running.
</p>

<div class="examples">
Expand Down

0 comments on commit 34e0ced

Please sign in to comment.