Palette eXtended Kubernetes
The Palette eXtended Kubernetes (PXK) pack supports several cloud and data center infrastructure providers. This pack defines the default properties we use to deploy Kubernetes clusters and enables most of the Kubernetes hardening standards that the Center for Internet Security (CIS) recommends.
We also support managed Kubernetes distributions for Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), and Tencent Kubernetes Engine (TKE).
We offer PXK as a core pack in Palette.
Once you upgrade your cluster to a new Kubernetes version, you will not be able to downgrade. We recommend that, before upgrading, you review the information provided in the Kubernetes Upgrades section.
Review our Maintenance Policy to learn about pack update and deprecation schedules.
What is PXK?
Palette eXtended Kubernetes (PXK) is a customized version of the open-source Cloud Native Computing Foundation (CNCF) distribution of Kubernetes. This Kubernetes version can be deployed through Palette to all major infrastructure providers, public cloud providers, and private data center providers. This is the default distribution when deploying a Kubernetes cluster through Palette. You have the option to choose other Kubernetes distributions, such as MicroK8s, Konvoy, and more, should you want to consume a different Kubernetes distribution.
PXK is different from the upstream open-source Kubernetes version primarily because of the carefully reviewed and applied hardening of the operating system (OS) and Kubernetes. The hardening ranges from removing unused kernel modules to using an OS configuration that follows industry best practices. Our custom Kubernetes configuration addresses common Kubernetes deployment security pitfalls and implements industry best practices.
A benefit of Palette when used with PXK is the ability to apply different flavors of container storage interface (CSI) plugins and container network interface (CNI) plugins. Other open-source Kubernetes distributions, such as MicroK8s, RKE2, and K3s, come with a default CSI and CNI. Additional complexity and overhead are required from you to enable different interfaces. PXK supports the ability to select other interface plugins out of the box without any additional overhead or complexity needed from your side.
There are no changes to the Kubernetes source code and we also follow the same versioning schema as the upstream open-source Kubernetes distribution.
We also offer Palette eXtended Kubernetes Edge (PXK-E) for Edge deployments. Refer to the PXK-E glossary definition to learn more about PXK-E.
PXK and Palette VerteX
The PXK used in Palette VerteX is compiled and linked with our NIST-certified FIPS crypto module PXK is by default enabled with Ubuntu Pro with FIPS mode enabled. Additionally, the Operating System (OS) is hardened based on the NIST-800 standard. However, if you use a different OS through the BYOOS pack, then you are responsible for ensuring FIPS compliance and hardening of the OS.
The combined usage of PXK and Palette VerteX provides a secure and FIPS-compliant experience as the Kubernetes distribution, OS, and management platform VerteX is FIPS-compliant.
Support Lifecycle
We support PXK for N-3 Kubernetes minor versions for a duration of 14 months. The duration exceeds the official EOL by four months. Once we stop supporting the minor version, we initiate the deprecation process. Refer to the Kubernetes Support Lifecycle guide to learn more.
Versions Supported
- 1.29.x
- 1.28.x
- 1.27.x
- Deprecated
Prerequisites
-
A minimum of 4 CPU and 4 GB Memory.
-
Operating System (OS) dependencies as listed in the table.
OS Distribution OS Version Supports Kubernetes 1.29.x CentOS 7.7 ✅ Ubuntu 22.04 ✅ Ubuntu 20.04 ❌ Ubuntu 18.04 ❌
Parameters
Parameter | Description |
---|---|
pack.podCIDR | The CIDR range for Pods in the cluster. This should match the networking layer property. Default: 192.168.0.0/16 |
pack.serviceClusterIpRange | The CIDR range for services in the cluster. This should not overlap with any IP ranges assigned to nodes or pods. Default: 10.96.0.0/12 |
pack.serviceDomain | The cluster DNS service domain. Default: cluster.local . To change the default, you must add this parameter to the Kubernetes YAML file at cluster creation and specify the cluster DNS service domain to use. This value cannot be changed after cluster creation is complete. Refer to the Change Cluster DNS Service Domain section. |
pack.palette.config.dashboard.identityProvider | Dynamically enabled OpenID Connect (OIDC) Identity Provider (IDP) setting based on your UI selection when you add the PXK pack to your profile. This parameter appears in the YAML file after you make a selection. Refer to Configure OIDC Identity Provider. |
kubeadmconfig.apiServer.extraArgs | A list of additional apiServer flags you can set. |
kubeadmconfig.apiServer.extraVolumes | A list of additional volumes to mount on the apiServer. |
kubeadmconfig.controllerManager.extraArgs | A list of additional ControllerManager flags to set. |
kubeadmconfig.scheduler.extraArgs | A list of additional Kube scheduler flags to set. |
kubeadmconfig.kubeletExtraArgs | A list of kubelet arguments to set and copy to the nodes. |
kubeadmconfig.files | A list of additional files to copy to the nodes. |
kubeadmconfig.preKubeadmCommands | A list of additional commands to invoke before running kubeadm commands. |
kubeadmconfig.postKubeadmCommands | A list of additional commands to invoke after running kubeadm commands. |
kubeadmconfig.clientConfig | Settings to manually configure OIDC-based authentication when you choose a third-party (Custom) IDP. Refer to Configure Custom OIDC. |
cloud.maas.customEndpoint | The custom MAAS API or DNS endpoint URL to use for the PXK cluster. This parameter is only available for MAAS. |
cloud.maas.customEndpointPort | The custom MAAS API or DNS endpoint port to use for the PXK cluster. This parameter is only available for MAAS. Default value is 6443 . |