Install PorterLB on K3s
This document describes how to use kubectl and Helm to install and delete PorterLB in a K3s 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 K3s 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. PorterLB is designed to be used in bare-metal Kubernetes environments. However, you can also use a cloud-based K3s 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
Log in to the master node of the K3s Kubernetes cluster over SSH and run the following command:
kubectl apply -f https://raw.githubusercontent.com/kubesphere/porter/master/deploy/porter.yaml
Run the following command to edit the porter-manager Deployment:
kubectl edit deployment porter-manager -n porter-system
Change port 443 to a different value (for example, 30443) to avoid a port conflict with K3s:
spec:
template:
spec:
containers:
- args:
- --webhook-port=443 # Change the port number.
ports:
- containerPort: 443 # Change the port number.
hostPort: 443 # Change the port number.
NOTE
By default, both PorterLB and K3s use port 443. Therefore, you need to change port 443 of PorterLB to avoid the port conflict. For details, see the official K3s document.
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
Delete PorterLB Using kubectl
To delete PorterLB, log in to the master node of the K3s 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.
Run the following command to check the result. If the porter-system namespace does not exist, PorterLB has been deleted successfully.
kubectl get ns
Install PorterLB Using Helm
Log in to the master node of the K3s Kubernetes cluster over SSH and run the following command to configure the environment variable:
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
NOTE
You need to configure this environment variable so that Helm can reach the K3s Kubernetes cluster. For details, see the official K3s document.
Run the following commands to install PorterLB:
helm repo add test https://charts.kubesphere.io/test
helm repo update
helm install porter test/porter
Run the following command to edit the porter-manager Deployment:
kubectl edit deployment porter-manager
Change port 443 to a different value (for example, 30443) to avoid a port conflict with K3s:
spec:
template:
spec:
containers:
- args:
- --webhook-port=443 # Change the port number.
ports:
- containerPort: 443 # Change the port number.
hostPort: 443 # Change the port number.
NOTE
By default, both PorterLB and K3s use port 443. Therefore, you need to change port 443 of PorterLB to avoid the port conflict. For details, see the official K3s document.
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
Delete PorterLB Using Helm
To delete PorterLB, run the following command:
helm delete porter
NOTE
Before deleting PorterLB, you must first delete all Services that use PorterLB.
Run the following command to check the result. If the PorterLB application does not exist, PorterLB has been deleted successfully.
helm ls
Last modified March 31, 2021: Relocated files to adapt to localization and changed links. (6b5fcb1)