Skip to content

Commit a5463f7

Browse files
committed
Merge remote-tracking branch 'origin/main' into document-k8s-requirements
2 parents c57fa16 + ff94bcc commit a5463f7

Some content is hidden

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

53 files changed

+592
-414
lines changed
Loading
Loading
34.4 KB
Loading
Loading
Loading
46.5 KB
Loading
Loading
32.5 KB
Loading
Loading
Loading
Loading
72.6 KB
Loading
Loading
19.4 KB
Loading
59.4 KB
Loading
27.6 KB
Loading

modules/ROOT/nav1.adoc

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
11
* xref:quickstart.adoc[]
2-
* xref:kubernetes.adoc[]
2+
* xref:kubernetes/index.adoc[]
3+
** xref:kubernetes/aks.adoc[]
4+
** xref:kubernetes/gke.adoc[]
5+
** xref:kubernetes/huawei-cloud.adoc[]
6+
** xref:kubernetes/ibm-cloud.adoc[]
7+
** xref:kubernetes/ionos-managed-k8s.adoc[]
8+
** xref:kubernetes/ionos-managed-stackable.adoc[]
9+
** xref:kubernetes/microk8s.adoc[]
10+
** xref:kubernetes/openshift.adoc[]
11+
** xref:kubernetes/ske.adoc[]
312
* 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

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
= Azure Kubernetes Service (AKS)
2+
3+
Automatic Kubernetes clusters are not supported, as the xref:secret-operator:index.adoc[secret-operator] requires special privileges that are not granted in automatic Kubernetes clusters.
4+
5+
https://azure.microsoft.com/en-us/products/kubernetes-service
6+
7+
. Create Kubernetes cluster
8+
+
9+
Choose an arbitrary name, the default configurations should be fine.
10+
+
11+
image::managed-k8s/aks/1.png[]
12+
13+
. Update NodePool settings
14+
+
15+
It is recommended to check `Enable public IP per node`, so that the Stackable demos work out of the box as they are using NodePorts for maximum portability.
16+
+
17+
image::managed-k8s/aks/2.png[]
18+
+
19+
In case you don't want to spend more money by having dedicated control-plane nodes, remove the `CriticalAddonsOnly` taint with the trash-button to the right, so that this nodes can also run workloads and not only the dataplane.
20+
+
21+
image::managed-k8s/aks/3.png[]
22+
23+
. Enable public access
24+
+
25+
You also need set `Network policy` to `None`, so that your deployed demos are reachable from the internet.
26+
+
27+
image::managed-k8s/aks/4.png[]
28+
29+
. Create Kubernetes cluster
30+
+
31+
Click on `Review + Create` to finish the creation
32+
33+
. Allow incoming traffic
34+
+
35+
Even though the Kubernetes nodes were configured to be public and have no traffic policy, incoming connections will still be blocked by default.
36+
+
37+
image::managed-k8s/aks/8.png[]
38+
You need to go to `Network security group`s and modify the one created for your Kubernetes cluster.
39+
+
40+
image::managed-k8s/aks/5.png[]
41+
Add a new inbound security rule, which allows all incoming connections.
42+
+
43+
image::managed-k8s/aks/6.png[]
44+
45+
. Access Kubernetes
46+
+
47+
Access your Kubernetes by clicking on the `Connect` button and following the instructions.
48+
+
49+
image::managed-k8s/aks/7.png[]
50+
+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+
Huawei cloud uses a non-standard Kubelet state directory. Therefore installing secret-operator on Huawei cloud requires special treatment. 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+
IBM cloud uses a non-standard Kubelet state directory. Therefore installing secret-operator on IBM cloud requires a special treatment. 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/ROOT/pages/release-notes.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ The following are selected product features provided by new versions available i
150150
Support for the ARM architecture::
151151
During the development of this release, we started introducing support for the arm64 architecture.
152152
Currently support is experimental, and we only provide arm64 images for the previous release (23.11).
153-
For more information on how to use the ARM images, refer to the xref:concepts:arm64-support.adoc[documentation].
153+
For more information on how to use the ARM images, refer to the xref:concepts:container-images.adoc#multi-platform-support[documentation].
154154
155155
=== Product versions
156156

modules/ROOT/partials/supported-kubernetes-distributions.adoc

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
* https://aws.amazon.com/eks/[Amazon Elastic Kubernetes Service]
2-
* https://azure.microsoft.com/en-gb/products/kubernetes-service[Microsoft Azure Kubernetes Service]
3-
* https://cloud.google.com/kubernetes-engine[Google Kubernetes Engine]
4-
* https://cloud.ionos.com/managed/kubernetes[IONOS Managed Kubernetes]
2+
* xref:kubernetes/aks.adoc[Azure Kubernetes Service]
3+
* xref:kubernetes/gke.adoc[Google Kubernetes Engine]
4+
* xref:kubernetes/ionos-managed-k8s.adoc[IONOS Managed Kubernetes]
5+
* xref:kubernetes/ionos-managed-stackable.adoc[IONOS Managed Stackable]
6+
* xref:kubernetes/openshift.adoc[Red Hat OpenShift]
7+
* xref:kubernetes/ske.adoc[STACKIT Kubernetes Engine] (with the exception of missing public NodePorts)
58
* https://www.rancher.com/products/rancher[SUSE Rancher]
69
* https://www.suse.com/products/k3s/[SUSE K3S]
7-
* https://www.redhat.com/en/technologies/cloud-computing/openshift[Red Hat OpenShift]

modules/concepts/nav.adoc

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
* xref:concepts:index.adoc[]
2-
** xref:overview.adoc[Overview]
2+
** xref:overview.adoc[Platform overview]
3+
** xref:stacklet.adoc[]
34
** Common configuration mechanisms
4-
*** xref:roles-and-role-groups.adoc[]
55
*** xref:product_image_selection.adoc[]
66
*** xref:overrides.adoc[Advanced: overrides]
7-
*** xref:arm64-support.adoc[]
87
** Resources
98
*** xref:resources.adoc[]
109
*** xref:s3.adoc[]

0 commit comments

Comments
 (0)