Kubernetes Platform Services
Kubernetes Platform Services provide preconfigured day two functionality and services, on top of Kubernetes, like monitoring, logging, and external DNS. The versions are tested against a pure upstream Kubernetes build having no specific D2iQ requirements.
New Minor or Major versions of Platform Services releases are based on user requirements. These can occur in any release but are less frequent. Platform Services have their own release numbers that follow a semantic version numbering scheme and includes the version of Kubernetes the were tested on. For example, release-<kubernetes version>-<major>.<minor>
.
The version is defined in Konvoy’s cluster.yaml
definition when creating or upgrading a Konvoy cluster. Platform Services are tested against more than one Kubernetes version.
kind: ClusterConfiguration
apiVersion: konvoy.mesosphere.io/v1beta2
spec:
addons:
- configRepository: https://github.com/mesosphere/kubernetes-base-addons
configVersion: testing-1.19-3.2.0
addonsList:
...
Configuring Konvoy Platform Services
Platform Servicess are configured via the addons
section under ClusterConfiguration
within Konvoy’s cluster.yaml
Platform Servicess are configured by referencing various Platform Servicess repositories. Konvoy comes pre-configured with Base Platform Services repository. This repository provides all the Platform Servicess that make Konvoy an enterprise grade distribution, ready for day two operations.
In general, a Platform Services can come in two categories:
ClusterAddon
- A Platform Services that is cluster-scoped.Addon
- A Platform Services that is namespace-scoped is commonly refered to as Workload Platform Services.
Konvoy partners and users can create their own Platform Services repositories. For example, a storage partner can create a Platform Services repository to provide their CSI storage provisioner. A user can create a Platform Services repository to meet the requirements that all clusters created, in their organization, run specific services. The Creating Platform Services section covers these details.
cluster.yaml
Configuring Platform Services in The following example shows how to configure an additional Platform Services repository in the Konvoy cluster.yaml
file.
In the configuration example below, we’ll disable the bundled awsebscsiprovisioner
in order to use an partner provided awsebscsiprovisioner2
. Both these Platform Servicess are of the cluster-scoped ClusterAddon
kind. Additionally the cockroachdb
namespace-scoped Platform Services is enabled.
The example partner repository referenced via configRepository
is https://github.com/mesosphere/docs-addon-repo
and configVersion
points to a tagged release within the repository.
...
kind: ClusterConfiguration
apiVersion: konvoy.mesosphere.io/v1beta2
metadata:
name: y-west
...
spec:
...
addons:
- configRepository: https://github.com/mesosphere/kubernetes-base-addons
configVersion: testing-1.19-3.2.0
addonsList:
- name: awsebscsiprovisioner
enabled: false
...
- configRepository: https://github.com/mesosphere/docs-addon-repo
configVersion: stable-0.1
addonsList:
- name: awsebscsiprovisioner2
enabled: true
- name: cockroachdb
enabled: true
...
The second repository configured, in the example above, is our [sample docs-Platform Services ][sample_repo].
It contains the awsebscsiprovisioner2
and cockroachdb
Platform Services.
Since awsebscsiprovisioner2
is a copy of the awsebscsiprovisioner
from the kubernetes-base-addons
repository. This example shows you can turn the storage provisioner in the kubernetes-base-addons
repository off and provide a storage provisioner with another Platform Services repository.
When you run konvoy up
with the above cluster.yaml
configuration you see the following output. All Platform Services requiring persistent storage get installed after awsebscsiprovisioner2
providing a default StorageClass
. For example, `cockroachdb, elasticsearch, and velero.
STAGE [Deploying Enabled Addons]
konvoyconfig [OK]
dashboard [OK]
reloader [OK]
fluentbit [OK]
external-dns [OK]
opsportal [OK]
cert-manager [OK]
defaultstorageclass-protection [OK]
gatekeeper [OK]
awsebscsiprovisioner2 <<< [OK]
traefik [OK]
prometheus [OK]
cockroachdb [OK]
dex [OK]
velero [OK]
prometheusadapter [OK]
kube-oidc-proxy [OK]
dex-k8s-authenticator [OK]
traefik-forward-auth [OK]
kommander [OK]
elasticsearch-curator [OK]
elasticsearch [OK]
elasticsearchexporter [OK]
kibana [OK]
Kubernetes cluster and addons deployed successfully!
Related information
For information on related topics or procedures, refer to the following: