Installation from Source

This document describes how you can use the hack/remote-up-karmada.sh script to install Karmada on your clusters based on the codebase.

Select a way to expose karmada-apiserver

The hack/remote-up-karmada.sh will install karmada-apiserver and provide two ways to expose the server:

1. expose by HostNetwork type

By default, the hack/remote-up-karmada.sh will expose karmada-apiserver by HostNetwork.

No extra operations are needed with this type.

2. expose by service with LoadBalancer type

If you don’t want to use the HostNetwork, you can ask hack/remote-up-karmada.sh to expose karmada-apiserver by a service with LoadBalancer type that requires your cluster to have deployed the Load Balancer. All you need to do is set an environment:

  1. export LOAD_BALANCER=true

Install

From the root directory of the karmada repo, install Karmada by command:

  1. hack/remote-up-karmada.sh <kubeconfig> <context_name>
  • kubeconfig is your cluster’s kubeconfig that you want to install to
  • context_name is the name of context in ‘kubeconfig’

For example:

  1. hack/remote-up-karmada.sh $HOME/.kube/config mycluster

If everything goes well, at the end of the script output, you will see similar messages as follows:

  1. ------------------------------------------------------------------------------------------------------
  2. █████ ████ █████████ ███████████ ██████ ██████ █████████ ██████████ █████████
  3. ░░███ ███░ ███░░░░░███ ░░███░░░░░███ ░░██████ ██████ ███░░░░░███ ░░███░░░░███ ███░░░░░███
  4. ░███ ███ ░███ ░███ ░███ ░███ ░███░█████░███ ░███ ░███ ░███ ░░███ ░███ ░███
  5. ░███████ ░███████████ ░██████████ ░███░░███ ░███ ░███████████ ░███ ░███ ░███████████
  6. ░███░░███ ░███░░░░░███ ░███░░░░░███ ░███ ░░░ ░███ ░███░░░░░███ ░███ ░███ ░███░░░░░███
  7. ░███ ░░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███ ███ ░███ ░███
  8. █████ ░░████ █████ █████ █████ █████ █████ █████ █████ █████ ██████████ █████ █████
  9. ░░░░░ ░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░░░░░░ ░░░░░ ░░░░░
  10. ------------------------------------------------------------------------------------------------------
  11. Karmada is installed successfully.
  12. Kubeconfig for karmada in file: /root/.kube/karmada.config, so you can run:
  13. export KUBECONFIG="/root/.kube/karmada.config"
  14. Or use kubectl with --kubeconfig=/root/.kube/karmada.config
  15. Please use 'kubectl config use-context karmada-apiserver' to switch the cluster of karmada control plane
  16. And use 'kubectl config use-context your-host' for debugging karmada installation