Installing K8s for s3gw
The following document describes the prerequisite installations to run the S3 Gateway (s3gw), an S3 object storage service, on top of a vanilla K8s installation.
Before you begin
You can install the s3gw for test purposes locally, on baremetal hardware, or virtually. In each instance, ensure you provide adequate disk space. Longhorn requires a minimal available storage percentage on the root disk, which is 25% by default.
Installing CNI plugin
Kubernetes supports a Container Network Interface (CNI) plugins for cluster networking and is required to implement the K8s networking model. See the installation instructions here.
Installing ingress controller
If you intend to install s3gw with an ingress resource, ensure your environment is equipped with a Traefik ingress controller.
You can use a different ingress controller, but note you will have to create your own ingress resource.
Installing Longhorn
Important: As part of the Longhorn installation, it is required that
open-iscsi
is installed before running the Longhorn installation script. Ensure this is done so before continuing.
You can install Longhorn either via the Rancher Apps and Marketplace
,
using kubectl
, or via a helm chart
. The instructions can be found
here.
To check the progress of the Longhorn installation, run:
kubectl get pods -w -n longhorn-system
Access the Longhorn UI
Now that you have installed Longhorn, access the localhost UI:
http://longhorn.<LOCAL-ADDRESS>
.
You should now be able to see Longhorn running and there should be no volumes present.
Install certificate manager
s3gw uses a cert-manager in order to create TLS certificates for the various ingresses and internal ClusterIP resources.
Install cert-manager
as follows:
kubectl create namespace cert-manager
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager --namespace cert-manager jetstack/cert-manager \
--set installCRDs=true \
--set extraArgs[0]=--enable-certificate-owner-ref=true