Architecture
A Private Cloud Gateway (PCG) facilitates communication between Palette and your infrastructure environment. The PCG is necessary in environments where Palette does not have direct network access. Many infrastructure environments are placed in a private network that blocks connections originating externally. The PCG connects to Palette, and acts as an endpoint, allowing you to target the environment when deploying clusters in Palette.
When installed, the PCG registers with the self-hosted or SaaS Palette instance you specify, enabling secure communication between the Palette control management plane and the private cloud environment. The PCG enables the deployment and removal of Kubernetes clusters in private cloud environments through the Palette user interface, API, CLI, or Terraform provider.
Network Communication
The PCG maintains a connection to Palette and directly connects to the infrastructure environment. The connection to Palette originates from the PCG, and the PCG acts as an endpoint for Palette to communicate with the infrastructure environment. The PCG also supports using a proxy server to access the internet if needed. The PCG is constantly polling Palette instructions to either deploy a new cluster or delete an existing one.
The PCG communicates with Palette using a secure communication channel that is encrypted using the Transport Layer Security (TLS) protocol. The table below lists the network ports and protocols the PCG uses to communicate with Palette and the infrastructure environment.
Port | Protocol | Source | Destination | Description |
---|---|---|---|---|
443 | HTTPS | PCG | Palette | Secure communication channel between PCG and Palette. |
443 | gRPC | PCG | Palette | Secure communication channel between PCG and Palette. |
443 | HTTPS | PCG | Local Network | Secure communication channel between PCG and infrastructure provider in local network. For example, if you are using VMware vSphere, the PCG would communicate with your vSphere endpoint. |
6443 | HTTPS | PCG | Local Network | Secure communication channel between PCG and the deployed Kubernetes cluster API server. |
To establish communication between the PCG and Palette, the PCG initiates all network communication to Palette. Similarly, when deploying workload clusters, the cluster initiates all network communication to Palette. To deploy the PCG successfully, you must provide the Palette endpoint, which helps the PCG know where to connect. This information is also shared with the workload cluster during the cluster deployment.
Network Proxy
The PCG supports using a proxy server to access the internet if needed. If you are installing the PCG through the Palette CLI, you can provide the proxy server details, including any required Certificate Authority certificates, during installation. The PCG will use the provided proxy server to access the internet. The PCG will also provide the proxy server details to the deployed workload clusters.
A PCG installed onto an existing Kubernetes cluster will inherit the proxy server configuration from the underlying Kubernetes cluster. Contact your Kubernetes administrator for the proxy server details and guidance on configuring the underlying Kubernetes cluster to use a proxy server if needed.
We encourage you to review the gRPC and Proxies reference page to better prepare for using a proxy server with the PCG. Depending on your network proxy configuration and software, you may need to make updates to ensure compatibility with Palette.
Cluster Lifecycle Support
The PCG supports the lifecycle of Kubernetes clusters deployed in your private cloud environments. When you initiate a cluster deployment, the PCG cluster is used to support communication with the infrastructure environment. The PCG will query Palette for instructions to deploy a new cluster or delete an existing one.
When a cluster deployment is initiated, the PCG will request resources from the infrastructure provider and support the cluster deployment process. Once a cluster is deployed, the PCG is no longer involved in the communication between Palette and the deployed cluster. The cluster will communicate with Palette directly through local network gateways or a proxy server. The workload cluster is self-sustaining and does not require the PCG to be operational.
Cluster API State Management with PCG
During a cluster deployment, the PCG uses the Cluster API (CAPI) to interact with the infrastructure provider to deploy the cluster. Once the cluster is deployed, the CAPI state management is pivoted to the workload cluster as a dedicated service. The workload cluster, through the Palette agent, is then responsible for managing its own lifecycle operations. The PCG is not involved in managing the workloads of the deployed cluster.
In the event of a cluster deletion, the CAPI state management is pivoted back to the PCG, and CAPI begins the cluster deletion process to release the resources used by the workload cluster.
The following table explains the different lifecycle phases of a workload cluster and the PCG involvement.
Lifecycle Phase | PCG Involvement? | Description |
---|---|---|
Cluster Creation | ✅ | The PCG is involved in the cluster creation process. The PCG polls Palette for new cluster deployment requests. Once a request is received, the PCG will request resources from the infrastructure provider and support the cluster deployment process. |
Managing Cluster Workloads | ❌ | The local Palette agent inside the cluster manages the cluster workloads. The PCG is not involved in managing the workloads of the deployed cluster. |
Day-2 Operations | ❌ | The PCG is not involved in Day-2 operations. The internal Cluster API service handles interactions with the local infrastructure provider. |
Cluster Deletion | ✅ | The PCG is involved in the cluster deletion process. The PCG will request the infrastructure provider to release the resources used by the cluster. |