Install PorterLB on Kubernetes

This document describes how to use kubectl and Helm to install and delete PorterLB in a Kubernetes cluster.

NOTE

  • In a Kubernetes cluster, you only need to install PorterLB once. After the installation is complete, a porter-manager Deployment that contains a porter-manager Pod is installed in the cluster. The porter-manager Pod implements the functionality of PorterLB for the entire Kubernetes cluster.
  • After the installation is complete, you can scale the porter-manager Deployment and assign multiple PorterLB replicas (porter-manager Pods) to multiple cluster nodes to ensure high availability. For details, see Configure Multiple PorterLB Replicas.

Prerequisites

  • You need to prepare a Kubernetes cluster, and ensure that the Kubernetes version is 1.15 or later. PorterLB requires CustomResourceDefinition (CRD) v1, which is only supported by Kubernetes 1.15 or later. You can use the following methods to deploy a Kubernetes cluster:

    PorterLB is designed to be used in bare-metal Kubernetes environments. However, you can also use a cloud-based Kubernetes cluster for learning and testing.

  • If you use Helm to install porter, ensure that the Helm version is Helm 3.

Install PorterLB Using kubectl

  1. Log in to the Kubernetes cluster over SSH and run the following command:

    kubectl apply -f https://raw.githubusercontent.com/kubesphere/porter/master/deploy/porter.yaml
    
  2. Run the following command to check whether the status of porter-manager is READY: 1/1 and STATUS: Running. If yes, PorterLB has been installed successfully.

    kubectl get po -n porter-system
    

    verify-porter-kubectl

Delete PorterLB Using kubectl

  1. To delete PorterLB, log in to the Kubernetes cluster and run the following command:

    kubectl delete -f https://raw.githubusercontent.com/kubesphere/porter/master/deploy/porter.yaml
    

    NOTE

    Before deleting PorterLB, you must first delete all Services that use PorterLB.
  2. Run the following command to check the result. If the porter-system namespace does not exist, PorterLB has been deleted successfully.

    kubectl get ns
    

    verify-porter-deletion-kubectl

Install PorterLB Using Helm

  1. Log in to the Kubernetes cluster over SSH and run the following commands:

    helm repo add test https://charts.kubesphere.io/test
    helm repo update
    helm install porter test/porter
    
  2. Run the following command to check whether the status of porter-manager is READY: 1/1 and STATUS: Running. If yes, PorterLB has been installed successfully.

    kubectl get po -A
    

    verify-porter-helm

Delete PorterLB Using Helm

  1. To delete PorterLB, run the following command:

    helm delete porter
    

    NOTE

    Before deleting PorterLB, you must first delete all Services that use PorterLB.
  2. Run the following command to check the result. If the PorterLB application does not exist, PorterLB has been deleted successfully.

    helm ls
    

    verify-porter-deletion-helm