Skip to content

Commit 1f9fc25

Browse files
KubeLB v1.2 and KubeLB CLI documentation (kubermatic#1970)
* KubeLB v1.2 and KubeLB CLI documentation Signed-off-by: Waleed Malik <ahmedwaleedmalik@gmail.com> * Ignore autogenerated references for KubeLB CLI Signed-off-by: Waleed Malik <ahmedwaleedmalik@gmail.com> * Fix typo Signed-off-by: Waleed Malik <ahmedwaleedmalik@gmail.com> * BGP documentation Signed-off-by: Waleed Malik <ahmedwaleedmalik@gmail.com> * Fix title in release notes for KubeLB v1.2 Signed-off-by: Waleed Malik <ahmedwaleedmalik@gmail.com> * Update media for kubelb v1.2 Signed-off-by: Waleed Malik <ahmedwaleedmalik@gmail.com> * Refactored code Signed-off-by: Waleed Malik <ahmedwaleedmalik@gmail.com> * Document gateway to make it easier to configure wildcard domain Signed-off-by: Waleed Malik <ahmedwaleedmalik@gmail.com> --------- Signed-off-by: Waleed Malik <ahmedwaleedmalik@gmail.com>
1 parent 0225749 commit 1f9fc25

File tree

99 files changed

+7859
-122
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+7859
-122
lines changed

content/kubelb/main/_index.en.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ KubeLB solves this problem by providing a centralized management solution that c
3535

3636
- [Introducing KubeLB](https://www.kubermatic.com/products/kubelb/)
3737
- [KubeLB Whitepaper](https://www.kubermatic.com/static/KubeLB-Cloud-Native-Multi-Tenant-Load-Balancer.pdf)
38-
- [KubeLB CE](https://github.com/kubermatic/kubelb)
38+
- [KubeLB - GitHub Repository](https://github.com/kubermatic/kubelb)
3939

4040
Visit [kubermatic.com](https://www.kubermatic.com/) for further information.
4141

content/kubelb/main/ce-ee-matrix/_index.en.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,20 @@ KubeLB is available in two versions: Community and Enterprise.
2020
| Ingress | ✔️ | ✔️ |
2121
| Gateway API v1 | ✔️ | ✔️ |
2222
| Bring your own secrets(certificates) | ✔️ | ✔️ |
23+
| Tunneling support through CLI | ✔️ ||
2324
| Gateway API beta/alpha(TLS/TCP/UDP routes) | ✔️ ||
2425
| Multiple Gateways | ✔️ ||
2526
| DNS automation | ✔️ ||
2627
| Certificate Management | ✔️ ||
2728
| Limits for LoadBalancers, Gateways | ✔️ ||
2829

2930
{{% notice note %}}
30-
KubeLB support [ingress-nginx](https://kubernetes.github.io/ingress-nginx/) for **Ingress** resources. [Envoy Gateway](https://gateway.envoyproxy.io/) is supported for **Gateway API** resources. While other products might work for Ingress and Gateway API resources, we are not testing them and can't guarantee the compatibility.
31+
KubeLB supports the following products for Ingress and Gateway API resources:
32+
33+
- [Ingress-nginx](https://kubernetes.github.io/ingress-nginx/) for **Ingress** resources.
34+
- [Envoy Gateway](https://gateway.envoyproxy.io/) is supported for **Gateway API** resources.
35+
36+
While other products might work for Ingress and Gateway API resources, we are not testing them and can't guarantee the compatibility.
3137
{{% /notice %}}
3238

3339
## Support Policy
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
+++
2+
title = "KubeLB CLI"
3+
date = 2025-08-27T10:07:15+02:00
4+
weight = 30
5+
description = "Learn how you can use KubeLB CLI to provision Load Balancers and tunnels to expose local workloads"
6+
+++
7+
8+
![KubeLB CLI](/img/kubelb/common/logo.png?classes=logo-height)
9+
10+
## KubeLB CLI
11+
12+
KubeLB CLI is a command line tool that has been introduced to complement KubeLB and make it easier to manage load balancing configurations for multiple tenants in Kube and non-Kube based environments.
13+
14+
The source code is open source and available at [kubermatic/kubelb-cli](https://github.com/kubermatic/kubelb-cli).
15+
16+
{{% notice note %}}
17+
KubeLB CLI is currently in beta feature stage and is not yet ready for production use. We are actively working on the feature set and taking feedback from the community and our customers to improve the CLI.
18+
{{% /notice %}}
19+
20+
## Installation
21+
22+
### Manual Installation
23+
24+
Users can download the pre-compiled binaries from the [releases page](https://github.com/kubermatic/kubelb-cli/releases) for their system and copy them to the desired location.
25+
26+
{{% notice note %}}
27+
KubeLB CLI is currently available for Linux, macOS, and Windows.
28+
{{% /notice %}}
29+
30+
### Install using `go install`
31+
32+
If you have Go installed, you can also build the binary from the source code using the following command:
33+
34+
```bash
35+
go install github.com/kubermatic/kubelb-cli@v0.1.0
36+
```
37+
38+
### Configuration
39+
40+
KubeLB CLI needs the tenant scoped kubeconfig and the tenant name to be configured either via environment variables or through the CLI flags. Environment variables are preferred as you don't have to specify them for each command.
41+
42+
```bash
43+
export KUBECONFIG=/path/to/kubeconfig
44+
export TENANT_NAME=my-tenant
45+
```
46+
47+
## Table of Content
48+
49+
{{% children depth=5 %}}
50+
{{% /children %}}
51+
52+
## Further Information
53+
54+
- [Introducing KubeLB](https://www.kubermatic.com/products/kubelb/)
55+
- [KubeLB Whitepaper](https://www.kubermatic.com/static/KubeLB-Cloud-Native-Multi-Tenant-Load-Balancer.pdf)
56+
- [KubeLB - GitHub Repository](https://github.com/kubermatic/kubelb)
57+
58+
Visit [kubermatic.com](https://www.kubermatic.com/) for further information.
59+
60+
{{% notice tip %}}
61+
For latest updates follow us on Twitter [@Kubermatic](https://twitter.com/Kubermatic)
62+
{{% /notice %}}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
+++
2+
title = "Compatibility Matrix"
3+
date = 2025-08-27T00:00:00+01:00
4+
weight = 30
5+
+++
6+
7+
KubeLB CLI uses Kubernetes management cluster that has KubeLB installed as it's source of truth for the load balancing configurations.
8+
9+
Since it has been introduced alongside KubeLB v1.2, it has a hard dependency for the KubeLB management cluster to be at least v1.2.
10+
11+
{{% notice note %}}
12+
KubeLB CLI is currently in beta feature stage and is not yet ready for production use. We are actively working on the feature set and taking feedback from the community and our customers to improve the CLI.
13+
{{% /notice %}}
14+
15+
| KubeLB CLI | KubeLB Management Cluster |
16+
|------------|---------------------------|
17+
| v0.1.0 | v1.2+ |
18+
19+
## Support Policy
20+
21+
For support policy, please refer to the [KubeLB Support Policy](../../support-policy/)
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
+++
2+
title = "Load Balancing"
3+
date = 2025-08-27T00:00:00+01:00
4+
weight = 20
5+
+++
6+
7+
KubeLB CLI can be used to quickly provision Load Balancers that can be public/private based on your load balancing configurations and needs. KubeLB then takes care of securing your endpoint with TLS certificates, automatically creating DNS records, and managing the load balancing configurations.
8+
9+
## Pre-requisites
10+
11+
Please refer to the [DNS](../../tutorials/security/dns/#enable-dns-automation) documentation to configure the Gateway or Ingress to manage DNS for the load balancer.
12+
13+
## Create a Load Balancer
14+
15+
To create a load balancer, you can use the `kubelb loadbalancer create` command.
16+
17+
For example
18+
19+
```bash
20+
kubelb loadbalancer create my-app --endpoints 10.0.1.1:8080,10.0.1.2:8080 --hostname my-app.example.com
21+
```
22+
23+
This will create a Load Balancer resource that will forward traffic to the endpoints `10.0.1.1:8080` and `10.0.1.2:8080` and will be accessible at `https://my-app.example.com`.
24+
25+
Specifying hostname is optional and if not provided, KubeLB will generate a random hostname for you if the wildcard domain is enabled for the tenant or globally.
26+
27+
![Demo animation](/img/kubelb/v1.2/loadbalancer.gif?classes=shadow,border "Load Balancer Demo")
28+
29+
## Further actions
30+
31+
Further actions include:
32+
33+
- Updating the load balancer configuration
34+
- Deleting the load balancer
35+
- Getting the load balancer details
36+
- Listing all the load balancers
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
+++
2+
title = "References"
3+
date = 2024-03-06T12:00:00+02:00
4+
weight = 50
5+
+++
6+
7+
This section contains a reference of the Kubermatic KubeLB CLI commands and flags.
8+
9+
## kubelb
10+
11+
KubeLB CLI - Manage load balancers and create secure tunnels
12+
13+
### Synopsis
14+
15+
KubeLB CLI provides tools to manage KubeLB load balancers and create secure tunnels
16+
to expose local services through the KubeLB infrastructure.
17+
18+
### Options
19+
20+
```
21+
-h, --help help for kubelb
22+
--kubeconfig string Path to the kubeconfig for the tenant
23+
--log-file string Log to file instead of stderr
24+
--log-format string Log format (cli, json, text) - defaults to cli
25+
--log-level string Log level (error, warn, info, debug, trace) - overrides verbosity
26+
-q, --quiet Suppress non-essential output (equivalent to --v=0)
27+
-t, --tenant string Name of the tenant
28+
--timeout duration Timeout for the command (e.g., 30s, 5m) (default 4m0s)
29+
-v, --v int Verbosity level (0-4): 0=errors only, 1=basic info, 2=detailed status, 3=debug info, 4=trace (default 1)
30+
```
31+
32+
### SEE ALSO
33+
34+
* [kubelb completion](commands/kubelb_completion) - Generate the autocompletion script for the specified shell
35+
* [kubelb docs](commands/kubelb_docs) - Generate markdown documentation for all commands
36+
* [kubelb expose](commands/kubelb_expose) - Expose a local port via tunnel
37+
* [kubelb loadbalancer](commands/kubelb_loadbalancer) - Manage KubeLB load balancers
38+
* [kubelb status](commands/kubelb_status) - Display current status of KubeLB
39+
* [kubelb tunnel](commands/kubelb_tunnel) - Manage secure tunnels to expose local services
40+
* [kubelb version](commands/kubelb_version) - Print the version information
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
+++
2+
title = "kubelb completion"
3+
date = 2025-08-27T00:00:00+01:00
4+
weight = 200
5+
+++
6+
7+
## kubelb completion
8+
9+
Generate the autocompletion script for the specified shell
10+
11+
### Synopsis
12+
13+
Generate the autocompletion script for kubelb for the specified shell.
14+
See each sub-command's help for details on how to use the generated script.
15+
16+
### Options
17+
18+
```
19+
-h, --help help for completion
20+
```
21+
22+
### Options inherited from parent commands
23+
24+
```
25+
--kubeconfig string Path to the kubeconfig for the tenant
26+
--log-file string Log to file instead of stderr
27+
--log-format string Log format (cli, json, text) - defaults to cli
28+
--log-level string Log level (error, warn, info, debug, trace) - overrides verbosity
29+
-q, --quiet Suppress non-essential output (equivalent to --v=0)
30+
-t, --tenant string Name of the tenant
31+
--timeout duration Timeout for the command (e.g., 30s, 5m) (default 4m0s)
32+
-v, --v int Verbosity level (0-4): 0=errors only, 1=basic info, 2=detailed status, 3=debug info, 4=trace (default 1)
33+
```
34+
35+
### SEE ALSO
36+
37+
* [kubelb](../kubelb) - KubeLB CLI - Manage load balancers and create secure tunnels
38+
* [kubelb completion bash](../kubelb_completion_bash) - Generate the autocompletion script for bash
39+
* [kubelb completion fish](../kubelb_completion_fish) - Generate the autocompletion script for fish
40+
* [kubelb completion powershell](../kubelb_completion_powershell) - Generate the autocompletion script for powershell
41+
* [kubelb completion zsh](../kubelb_completion_zsh) - Generate the autocompletion script for zsh
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
+++
2+
title = "kubelb completion bash"
3+
date = 2025-08-27T00:00:00+01:00
4+
weight = 210
5+
+++
6+
7+
## kubelb completion bash
8+
9+
Generate the autocompletion script for bash
10+
11+
### Synopsis
12+
13+
Generate the autocompletion script for the bash shell.
14+
15+
This script depends on the 'bash-completion' package.
16+
If it is not installed already, you can install it via your OS's package manager.
17+
18+
To load completions in your current shell session:
19+
20+
source <(kubelb completion bash)
21+
22+
To load completions for every new session, execute once:
23+
24+
#### Linux
25+
26+
kubelb completion bash > /etc/bash_completion.d/kubelb
27+
28+
#### macOS
29+
30+
kubelb completion bash > $(brew --prefix)/etc/bash_completion.d/kubelb
31+
32+
You will need to start a new shell for this setup to take effect.
33+
34+
```
35+
kubelb completion bash
36+
```
37+
38+
### Options
39+
40+
```
41+
-h, --help help for bash
42+
--no-descriptions disable completion descriptions
43+
```
44+
45+
### Options inherited from parent commands
46+
47+
```
48+
--kubeconfig string Path to the kubeconfig for the tenant
49+
--log-file string Log to file instead of stderr
50+
--log-format string Log format (cli, json, text) - defaults to cli
51+
--log-level string Log level (error, warn, info, debug, trace) - overrides verbosity
52+
-q, --quiet Suppress non-essential output (equivalent to --v=0)
53+
-t, --tenant string Name of the tenant
54+
--timeout duration Timeout for the command (e.g., 30s, 5m) (default 4m0s)
55+
-v, --v int Verbosity level (0-4): 0=errors only, 1=basic info, 2=detailed status, 3=debug info, 4=trace (default 1)
56+
```
57+
58+
### SEE ALSO
59+
60+
* [kubelb completion](../kubelb_completion) - Generate the autocompletion script for the specified shell
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
+++
2+
title = "kubelb completion fish"
3+
date = 2025-08-27T00:00:00+01:00
4+
weight = 220
5+
+++
6+
7+
## kubelb completion fish
8+
9+
Generate the autocompletion script for fish
10+
11+
### Synopsis
12+
13+
Generate the autocompletion script for the fish shell.
14+
15+
To load completions in your current shell session:
16+
17+
kubelb completion fish | source
18+
19+
To load completions for every new session, execute once:
20+
21+
kubelb completion fish > ~/.config/fish/completions/kubelb.fish
22+
23+
You will need to start a new shell for this setup to take effect.
24+
25+
```
26+
kubelb completion fish [flags]
27+
```
28+
29+
### Options
30+
31+
```
32+
-h, --help help for fish
33+
--no-descriptions disable completion descriptions
34+
```
35+
36+
### Options inherited from parent commands
37+
38+
```
39+
--kubeconfig string Path to the kubeconfig for the tenant
40+
--log-file string Log to file instead of stderr
41+
--log-format string Log format (cli, json, text) - defaults to cli
42+
--log-level string Log level (error, warn, info, debug, trace) - overrides verbosity
43+
-q, --quiet Suppress non-essential output (equivalent to --v=0)
44+
-t, --tenant string Name of the tenant
45+
--timeout duration Timeout for the command (e.g., 30s, 5m) (default 4m0s)
46+
-v, --v int Verbosity level (0-4): 0=errors only, 1=basic info, 2=detailed status, 3=debug info, 4=trace (default 1)
47+
```
48+
49+
### SEE ALSO
50+
51+
* [kubelb completion](../kubelb_completion) - Generate the autocompletion script for the specified shell
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
+++
2+
title = "kubelb completion powershell"
3+
date = 2025-08-27T00:00:00+01:00
4+
weight = 230
5+
+++
6+
7+
## kubelb completion powershell
8+
9+
Generate the autocompletion script for powershell
10+
11+
### Synopsis
12+
13+
Generate the autocompletion script for powershell.
14+
15+
To load completions in your current shell session:
16+
17+
kubelb completion powershell | Out-String | Invoke-Expression
18+
19+
To load completions for every new session, add the output of the above command
20+
to your powershell profile.
21+
22+
```
23+
kubelb completion powershell [flags]
24+
```
25+
26+
### Options
27+
28+
```
29+
-h, --help help for powershell
30+
--no-descriptions disable completion descriptions
31+
```
32+
33+
### Options inherited from parent commands
34+
35+
```
36+
--kubeconfig string Path to the kubeconfig for the tenant
37+
--log-file string Log to file instead of stderr
38+
--log-format string Log format (cli, json, text) - defaults to cli
39+
--log-level string Log level (error, warn, info, debug, trace) - overrides verbosity
40+
-q, --quiet Suppress non-essential output (equivalent to --v=0)
41+
-t, --tenant string Name of the tenant
42+
--timeout duration Timeout for the command (e.g., 30s, 5m) (default 4m0s)
43+
-v, --v int Verbosity level (0-4): 0=errors only, 1=basic info, 2=detailed status, 3=debug info, 4=trace (default 1)
44+
```
45+
46+
### SEE ALSO
47+
48+
* [kubelb completion](../kubelb_completion) - Generate the autocompletion script for the specified shell

0 commit comments

Comments
 (0)