Install into an Existing Cluster

Instructions for installing Replicated via the easy install script, manually or behind a proxy. Also includes instructions for uninstalling Replicated.

Replicated can be installed to an existing Kubernetes 1.9 cluster. Use the https://get.replicated.com/kubernetes-yml-generate script to generate specs for the Deployments, Services, and PersistentVolumeClaims required by Replicated.

Persistent Volumes

When deploying to an environment with dynamic volume provisioning, use the storage_class param to set how PersistentVolumeClaims are fulfilled. You should also disable the Host Path provisioner when specifying a storage class. All Replicated PVCs will use the specified storage class and all application PVCs will be rewritten with both storageClassName field and volume.beta.kubernetes.io/storage-class annotation set to the specified parameter.

curl -sSL "https://get.replicated.com/kubernetes-yml-generate?storage_class=standard&storage_provisioner=0" | bash > replicated.yml
kubectl apply -f replicated.yml

Load Balancer

Use the service_type param set to LoadBalancer in environments where they can be automatically provisioned.

curl -sSL "https://get.replicated.com/kubernetes-yml-generate?service_type=LoadBalancer" | bash > replicated.yml
kubectl apply -f replicated.yml

Namespaces

Replicated components are deployed to the default namespace and your app is deployed to a separate namespace as replicated_<app_id>.

Limitations

Node Ports

Existing Kubernetes clusters are unlikely to allow services to bind to node ports outside the 30000-32767 range. To support both Replicated managed Kubernetes and third-party Kubernetes clusters avoid using node ports outside this range.

Cluster Admin

In order to manage the cluster from the Replicated pod, the default service account must be bound to the cluster-admin role. The kubernetes-yml-generate script will generate yaml for a ClusterRoleBinding for this purpose, but kubectl will not be able to apply it unless authenticated as an admin. Login as an admin when attempting to apply the generated yaml:

kubectl --username=admin --password=<password> apply -f replicated.yml

Resources

For a single-node cluster 4 CPUs are required to meet the resource requests of all system and replicated pods. More may be required to meet the additional resource requests of your app.

Kubernetes Version

Ensure the major and minor version of your cluster’s server match what is expected by the version of Replicated being installed