Skip to content

Commit 5a7b176

Browse files
sbernauerNickLarsenNZ
andauthoredJun 19, 2024··
Document tips for various Kubernetes providers (#621)
* Document tips for various Kubernetes providers * Add stuff to navbar * fix navbar * Apply suggestions from code review Co-authored-by: Nick <NickLarsenNZ@users.noreply.github.com> --------- Co-authored-by: Nick <NickLarsenNZ@users.noreply.github.com>
1 parent 7a15411 commit 5a7b176

22 files changed

+151
-52
lines changed
 
Loading
Loading
Loading
72.6 KB
Loading
Loading
19.4 KB
Loading
59.4 KB
Loading
27.6 KB
Loading

‎modules/ROOT/nav1.adoc

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
11
* xref:quickstart.adoc[]
2-
* xref:kubernetes.adoc[]
2+
* xref:kubernetes/index.adoc[]
3+
** xref:kubernetes/gke.adoc[]
4+
** xref:kubernetes/huawei-cloud.adoc[]
5+
** xref:kubernetes/ibm-cloud.adoc[]
6+
** xref:kubernetes/ionos-managed-k8s.adoc[]
7+
** xref:kubernetes/ionos-managed-stackable.adoc[]
8+
** xref:kubernetes/microk8s.adoc[]
9+
** xref:kubernetes/openshift.adoc[]
10+
** xref:kubernetes/ske.adoc[]
311
* xref:getting-started.adoc[]

‎modules/ROOT/pages/getting-started.adoc

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ Stackable is based on Kubernetes and uses this as the control plane to manage cl
1616

1717
== Installing Kubernetes and kubectl
1818

19-
Stackable's control plane is built around Kubernetes. Follow the xref:kubernetes.adoc#local-installation[instructions] on how to set up a local Kubernetes instance if you do not have access to a cluster and install kubectl.
19+
Stackable's control plane is built around Kubernetes.
20+
Follow the xref:kubernetes/index.adoc#local-installation[instructions] on how to set up a local Kubernetes instance if you do not have access to a cluster and install `kubectl`.
2021

2122
If you already have kubectl installed, and have access to a Kubernetes cluster, you can skip this step.
2223

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
= Google Kubernetes Engine (GKE)
2+
3+
Autopilot clusters are not suported, as the xref:secret-operator:index.adoc[secret-operator] requires special privileges that are not granted in Autopilot clusters.
4+
5+
Other than that no special steps are needed.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
= Huawei cloud
2+
3+
IMB cloud uses a non-standard Kubelet state directory. Therefore installing secret-operator on Huawei cloud requires special treatement. Please read on the xref:secret-operator:installation.adoc#_huawei_cloud[secret-operator installation guide] for details.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
= IBM cloud
2+
3+
IMB cloud uses a non-standard Kubelet state directory. Therefore installing secret-operator on IBM cloud requires a special treatement. Please read on the xref:secret-operator:installation.adoc#_ibm_cloud[secret-operator installation guide] for details.

‎modules/ROOT/pages/kubernetes.adoc ‎modules/ROOT/pages/kubernetes/index.adoc

+2-47
Original file line numberDiff line numberDiff line change
@@ -13,59 +13,14 @@ The following distributions are supported for a production setup of the Stackabl
1313

1414
include::partial$supported-kubernetes-distributions.adoc[]
1515

16+
In case a Kubernetes provider needs some special tuning or we have some tips for it, it has a subpage below this page.
17+
1618
In this version of the SDP, the following Kubernetes versions are supported:
1719

1820
include::partial$supported-kubernetes-versions.adoc[]
1921

2022
Consult the xref:release_notes.adoc[release notes] to find out which specific versions are supported for the Stackable Data Platform you are using.
2123

22-
[#openshift-notes]
23-
== Notes on OpenShift
24-
25-
SDP operators are certified for the OpenShift platform and can be installed from the OperatorHub.
26-
27-
IMPORTANT: OpenShift installations with FIPS mode enabled are not supported. This is because neither the SDP operators, nor the supported Apache products are FIPS-compliant.
28-
29-
=== Customizing operator installations
30-
Depending on the cluster size, you may need to customize the resources requested by the SDP operator Pods.
31-
This is possible when installing the operators from the command line.
32-
For example, to assign `256Mi` of memory to the Apache Kafka operator, you need to create a custom Subscription as follows:
33-
34-
[source,yaml]
35-
----
36-
---
37-
apiVersion: operators.coreos.com/v1alpha1
38-
kind: Subscription
39-
metadata:
40-
name: stackable-kafka-operator
41-
namespace: stackable-operators
42-
spec:
43-
channel: stable
44-
installPlanApproval: Automatic
45-
name: stackable-kafka-operator
46-
source: certified-operators
47-
sourceNamespace: openshift-marketplace
48-
startingCSV: kafka-operator.v23.11.0
49-
config:
50-
resources:
51-
limits:
52-
memory: 256Mi
53-
requests:
54-
memory: 256Mi
55-
----
56-
57-
In addition, You can restrict the operator to watch a specific namespace. By default, the operator watches all namespaces.
58-
For example, to restrict the Kafka operator to watching only a namespace called `kafka-namespace` you add the following properties to the Subscription manifest:
59-
60-
[source,yaml]
61-
----
62-
spec:
63-
config:
64-
env:
65-
- name: WATCH_NAMESPACE
66-
value: kafka-namespace
67-
----
68-
6924
[#local-installation]
7025
== Installing a testinging/development Kubernetes instance locally
7126
Stackable's control plane is built around Kubernetes, and we'll give some brief examples of how to install Kubernetes on your machine.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
= IONOS managed Kubernetes
2+
3+
https://cloud.ionos.com/managed/kubernetes
4+
5+
TIP: IONOS also offers a xref:kubernetes/ionos-managed-stackable.adoc[managed Stackable service], which simplifies the usage of Stackable.
6+
7+
There are no special setup steps needed.
8+
9+
. Create Kubernetes cluster
10+
+
11+
image::managed-k8s/ionos/1.png[]
12+
13+
. Create Nodepool
14+
+
15+
image::managed-k8s/ionos/2.png[]
16+
17+
. Download kubeconfig
18+
+
19+
image::managed-k8s/ionos/3.png[]
20+
21+
. Set kubectl context
22+
+
23+
[source,bash]
24+
----
25+
export KUBECONFIG=~/Downloads/kubeconfig.json
26+
----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
= IONOS managed Stackable
2+
3+
https://cloud.ionos.com/solutions/managed-stackable
4+
5+
> The Managed Stackable Data Platform from IONOS Cloud is designed to enable you to work with maximum efficiency: Simply select the appropriate data management tools for your respective purpose, build individual stacks for yourself or your customers and make all your data productively usable as quickly as possible
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
= Microk8s
2+
3+
Microk8s uses a non-standard Kubelet state directory. Therefore installing secret-operator on Microk8s requires a special treatement. Please read on the xref:secret-operator:installation.adoc#_microk8s[secret-operator installation guide] for details.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
= OpenShift
2+
3+
SDP operators are certified for the OpenShift platform and can be installed from the OperatorHub.
4+
5+
IMPORTANT: OpenShift installations with FIPS mode enabled are not supported. This is because neither the SDP operators, nor the supported Apache products are FIPS-compliant.
6+
7+
== Customizing operator installations
8+
Depending on the cluster size, you may need to customize the resources requested by the SDP operator Pods.
9+
This is possible when installing the operators from the command line.
10+
For example, to assign `256Mi` of memory to the Apache Kafka operator, you need to create a custom Subscription as follows:
11+
12+
[source,yaml]
13+
----
14+
---
15+
apiVersion: operators.coreos.com/v1alpha1
16+
kind: Subscription
17+
metadata:
18+
name: stackable-kafka-operator
19+
namespace: stackable-operators
20+
spec:
21+
channel: stable
22+
installPlanApproval: Automatic
23+
name: stackable-kafka-operator
24+
source: certified-operators
25+
sourceNamespace: openshift-marketplace
26+
startingCSV: kafka-operator.v23.11.0
27+
config:
28+
resources:
29+
limits:
30+
memory: 256Mi
31+
requests:
32+
memory: 256Mi
33+
----
34+
35+
In addition, You can restrict the operator to watch a specific namespace. By default, the operator watches all namespaces.
36+
For example, to restrict the Kafka operator to watching only a namespace called `kafka-namespace` you add the following properties to the Subscription manifest:
37+
38+
[source,yaml]
39+
----
40+
spec:
41+
config:
42+
env:
43+
- name: WATCH_NAMESPACE
44+
value: kafka-namespace
45+
----
+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
= STACKIT Kubernetes Engine (SKE)
2+
3+
https://www.stackit.de/de/produkt/stackit-kubernetes-engine/
4+
5+
SKE clusters by default have no public IPs assigned to the Kubernetes nodes.
6+
As of 2024-06-13 marking the nodes as public during the Kubernetes cluster creation is not supported.
7+
8+
As a workaround we create a normal Kubernetes and assign public IP adresses to the Kubernetes nodes.
9+
10+
WARNING: The Kubernetes nodes are ephemeral. When STACKIT decides to reboot your Kubernetes nodes (e.g. to do security updates) they will loose their IP addresses and your services will not be reachable anymore, you need to re-assign the IP addresses.
11+
To circumvent this problem you can use LoadBalancers instead of NodePorts (which might be more expensive due to additional IP addresses).
12+
13+
. Create Kubernetes cluster
14+
+
15+
We recommend using at least 50GB disk space for the docker images.
16+
+
17+
image::managed-k8s/ske/1.png[]
18+
19+
. Wait until Kubernetes is up and running
20+
+
21+
image::managed-k8s/ske/2.png[]
22+
23+
. List servers
24+
+
25+
image::managed-k8s/ske/3.png[]
26+
27+
. Assign public IP to *all* Kubernetes nodes
28+
+
29+
image::managed-k8s/ske/4.png[]
30+
31+
. Download kubeconfig
32+
+
33+
image::managed-k8s/ske/5.png[]
34+
35+
. Set kubectl context
36+
+
37+
[source,bash]
38+
----
39+
export KUBECONFIG=~/Downloads/my-cluister.yml
40+
----

‎modules/concepts/pages/container-images.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ All images are stored in the {stackable-image-registry}[Stackable image registry
1919
== Image structure and contents
2020

2121
All our images are built using the {ubi}[Red Hat Universal Base Image (UBI)] minimal as a base image.
22-
This is a requirement for the platform to achieve xref:ROOT:kubernetes.adoc[OpenShift] certification and be available in the RedHat Certified Operator catalog.
22+
This is a requirement for the platform to achieve xref:ROOT:kubernetes/openshift.adoc[OpenShift] certification and be available in the RedHat Certified Operator catalog.
2323
The base image also contains only minimal dependencies and is vetted by RedHat.
2424

2525
The file system structure is the same across all images, which makes the images easier to work with.

‎modules/concepts/pages/overview.adoc

+2-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ Learn more about roles: xref:roles-and-role-groups.adoc[]
4747
[#deployment]
4848
== Deployment
4949

50-
All operators and products run as containers in a xref:ROOT:kubernetes.adoc[Kubernetes cluster]. The operators are deployed with stackablectl (the Stackable CLI) or Helm.
50+
All operators and products run as containers in a xref:ROOT:kubernetes/index.adoc[Kubernetes cluster].
51+
The operators are deployed with stackablectl (the Stackable CLI) or Helm.
5152

5253
image::deployment.drawio.svg[]
5354

‎supplemental-ui/partials/navbar.hbs

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
<div class="navbar-item has-dropdown is-hoverable">
22
<a class="navbar-link" href="#">Platform</a>
33
<div class="navbar-dropdown">
4-
<a class="navbar-item" href="{{{ relativize (versioned "home" page "/getting_started.html") }}}">Getting Started</a>
4+
{{#if (not (or (eq page.version "23.1") (eq page.version "23.4") (eq page.version "23.7") (eq page.version "23.11") (eq page.version "24.3")))}}
5+
<a class="navbar-item" href="{{{ relativize (versioned "home" page "/quickstart.html") }}}">Quickstart</a>
6+
<a class="navbar-item" href="{{{ relativize (versioned "home" page "/kubernetes/index.html") }}}">Kubernetes</a>
7+
{{/if}}
8+
<a class="navbar-item" href="{{{ relativize (versioned "home" page "/getting-started.html") }}}">Getting Started</a>
59
<hr class="navbar-divider">
610
<a class="navbar-item" href="{{{ relativize (versioned "home" page "concepts/index.html") }}}">Concepts</a>
711
<a class="navbar-item" href="{{{ relativize (versioned "home" page "demos/index.html") }}}">Demos</a>

0 commit comments

Comments
 (0)
Please sign in to comment.