Jack Moore

Email: jack(at)jmoore53.com
Project Updates

Kubernetes Minio

22 Mar 2022 » minio, kubernetes, cluster

Install Krew

(
  set -x; cd "$(mktemp -d)" &&
  OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
  ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
  KREW="krew-${OS}_${ARCH}" &&
  curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
  tar zxvf "${KREW}.tar.gz" &&
  ./"${KREW}" install krew
)
# add this to ~/.profile
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

Install the Operator

Installation?

kubectl krew update
kubectl krew install minio
kubectl minio version
kubectl minio init
kubectl get pods -n minio-operator

API Access

Is actually located under the minio general service. I thought the API would get it’s own pods and service per tenant, however it is a general service that streams down to every tenant based on access keys/ and secret keys.

This api gets assigned a LoadBalancer IP which looks like the following:

minio LoadBalancer 10.102.11.139 10.0.1.241 443:32582/TCP 4d19h

Ruby/AWS API for Remote Access


Aws.config.update(
  endpoint: 'https://10.0.1.241',
  access_key_id: 'jmoore53',
  secret_access_key: 'jmoore53',
  force_path_style: true,
  region: 'us-east-1', 
  ssl_verify_peer: false
)

rubys3_client = Aws::S3::Client.new

rubys3_client.put_object(
  key: 'testobject',
  body: 'Hello from MinIO!!',
  bucket: 'test',
  content_type: 'text/plain'
)

rubys3_client.get_object(
  bucket: 'test',
  key: 'testobject',
  response_target: 'download_testobject'
)

# DNS was working with the AWS Cli...
aws --no-verify-ssl --endpoint-url https://minio.k8stest.jmoore53.com s3 ls
© Jack Moore