Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add cloudscale.ch architecture reference documentation #303

Merged
merged 1 commit into from
Jan 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
99 changes: 99 additions & 0 deletions docs/modules/ROOT/pages/references/cloudscale/architecture.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
:infra-type: cloudscale.ch
:infra-svg: ocp4-architecture-cloudscale.svg
= APPUiO Managed OpenShift 4 on {infra-type}

== Architecture overview

include::partial$architecture/overview.adoc[]

== {infra-type} requirements

APPUiO Managed OpenShift 4 on {infra-type} needs a https://docs.openshift.com/container-platform/4.14/installing/installing_bare_metal/installing-bare-metal.html#installation-load-balancing-user-infra_installing-bare-metal[Load Balancer setup] that must meet the following requirements:

1. API load balancer: Provides a common endpoint to interact with OpenShift and Kubernetes.

2. Ingress load balancer: Provides an endpoint for application traffic flowing in from outside the cluster.

See the https://docs.openshift.com/container-platform/latest/installing/installing_bare_metal/installing-bare-metal.html#installation-requirements-user-infra_installing-bare-metal[upstream documentation] for details on {infra-type} requirements.


== Networking

=== Machine network

include::partial$architecture/networking-cluster.adoc[]

=== Virtual IPs

To expose applications and the Kubernetes API outside the cluster, APPUiO Managed OpenShift 4 manages three floating IPs:

1. The "API VIP" for the Kubernetes and OpenShift API.
APPUiO Managed OpenShift 4 uses a public floating IP as the API VIP.
2. The "Ingress VIP" for the OpenShift Ingress Router.
APPUiO Managed OpenShift 4 uses a public floating IP as the Ingress VIP.
2. The "Egress VIP" for outgoing traffic of the nodes.
APPUiO Managed OpenShift 4 uses a public floating IP for outgoing traffic.

APPUiO Managed OpenShift 4 uses {infra-type} Load Balancer to manage the API and ingress VIPs and distributes traffic to the master / infrastructure nodes and {infra-type} vRouter for outgoing traffic.

=== Pod and service networks

include::partial$architecture/networking-pods.adoc[]

=== Exposing the cluster

We provide a CNAME target record to point additional DNS records to.

=== External services

include::partial$architecture/networking-external.adoc[]

== Storage

include::partial$architecture/storage.adoc[]

== Glossary

=== Components {infra-type}

[cols="1,3,1"]
|===
|Name|Description|provided by

|Load Balancer
a|cloudscale.ch Load Balancer provide fail-over ingress to your cluster.
This service is provided by {infra-type}.

The main load balancer represents the virtual network device and is assigned VIP addresses (virtual IP addresses) through which incoming traffic is received.
Traffic is distributed to the the individual endpoints, defined in a pool.

See https://www.cloudscale.ch/en/api/v1#load-balancers[Upstream Documentation].

|{infra-type}

|vRouter
a|A virtual router is a software function that replicates the functionality of a hardware-based router.
This service is provided by {infra-type}.

|{infra-type}

|S3 compatible storage
a|Various OpenShift components require S3 compatible storage.
This storage is provided by {infra-type}.

The main APPUiO Managed OpenShift 4 components that use object storage are

* OpenShift integrated image registry
* OpenShift logging stack
* APPUiO Managed cluster backups
|{infra-type}

|===

=== Components General

include::partial$architecture/glossary-general.adoc[]

=== Other terms

include::partial$architecture/glossary-others.adoc[]
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ To expose applications and the Kubernetes API outside the cluster, APPUiO Manage

1. The "API VIP" for the Kubernetes and OpenShift API.
APPUiO Managed OpenShift 4 uses a public floating IP as the API VIP.
2. The "Ingress VIP" for the OpenShift Ingress Router
2. The "Ingress VIP" for the OpenShift Ingress Router.
APPUiO Managed OpenShift 4 uses a public floating IP as the Ingress VIP.

APPUiO Managed OpenShift 4 uses two Load Balancer instances to manage the API and ingress VIPs and distributes traffic to the master / infrastructure nodes.
Expand Down
3 changes: 3 additions & 0 deletions docs/modules/ROOT/partials/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
** xref:oc4:ROOT:references/architecture/metering-data-flow-appuio-managed.adoc[Resource Usage Reporting]
** xref:oc4:ROOT:references/architecture/single_sign_on.adoc[]

** xref:oc4:ROOT:references/cloudscale/architecture.adoc[cloudscale.ch]

** xref:oc4:ROOT:references/exoscale/architecture.adoc[Exoscale]
*** xref:oc4:ROOT:explanations/exoscale/limitations.adoc[Limitations]

Expand All @@ -25,6 +27,7 @@
* Supported Infrastructures

** cloudscale.ch
*** xref:oc4:ROOT:references/cloudscale/architecture.adoc[Architecture]
*** xref:oc4:ROOT:references/cloudscale/config.adoc[Configuration]
*** xref:oc4:ROOT:how-tos/cloudscale/install.adoc[Install]
// Node management
Expand Down