Skip to content

minio‐18825

Allan Roger Reid edited this page Dec 4, 2024 · 2 revisions

Create four hosts

minio-18825-0 
ssh -p 20482 ubuntu@1.2.3.4 -o "ServerAliveInterval=5" -o "ServerAliveCountMax=100000" -o "StrictHostKeyChecking=off"

minio-18825-1 
ssh -p 20727 ubuntu@1.2.3.4 -o "ServerAliveInterval=5" -o "ServerAliveCountMax=100000" -o "StrictHostKeyChecking=off"

minio-18825-2 
ssh -p 20162 ubuntu@1.2.3.4 -o "ServerAliveInterval=5" -o "ServerAliveCountMax=100000" -o "StrictHostKeyChecking=off"

minio-18825-3 
ssh -p 20715 ubuntu@1.2.3.4 -o "ServerAliveInterval=5" -o "ServerAliveCountMax=100000" -o "StrictHostKeyChecking=off"

Persist sessions

loginctl enable-linger ubuntu

Install supporting tools

sudo apt-get update -y && \
sudo apt-get upgrade -y && \
sudo apt-get install linux-generic -y && \
sudo apt-get dist-upgrade -y && \
sudo apt-get install linux-headers-generic -y && \
sudo touch /dev/kmsg
sudo ln -s /lib/modules/6.2.0-39-generic /lib/modules/6.2.0-35-generic

Install k3s

sudo touch /dev/kmsg
curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" sh -s - --snapshotter=fuse-overlayfs
cat <<EOF >> ~/.bashrc 
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
EOF
cat ~/.bashrc 
source ~/.profile

Create pod

kubectl create namespace minio-ns
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
  name: ubuntu
  namespace: minio-ns
  labels:
    app: ubuntu
spec:
  containers:
  - image: ubuntu
    command:
      - "sleep"
      - "604800"
    imagePullPolicy: IfNotPresent
    name: ubuntu
  restartPolicy: Always
EOF

Establish port-forward

while true; do kubectl --namespace minio-ns port-forward pod/ubuntu 9000:9000 --address 0.0.0.0 > /dev/null 2>&1; done &
while true; do kubectl --namespace minio-ns port-forward pod/ubuntu 9090:9090 --address 0.0.0.0 > /dev/null 2>&1; done &

Enter pod

kubectl --namespace minio-ns exec -it ubuntu -- /bin/bash
Inside pod, update system with needed utils
apt update && apt upgrade -y && apt install curl -y && apt install wget -y && apt install vim -y && apt install dnsutils -y && apt install git -y && apt install iproute2 -y
Install go
cd ~ && mkdir go && cd go && wget http://go.dev/dl/go1.21.9.linux-amd64.tar.gz && rm -rf /usr/local/bin/go && tar -C /usr/local/bin -xzf go1.21.9.linux-amd64.tar.gz 
/usr/local/bin/go/bin/go version 
Compile and install new version of minio
apt-get install git -y 
cd ~ && mkdir github -p && cd github && git clone http://github.com/allanrogerr/minio.git && cd minio && git checkout resolve_localhost_reverse_proxy
CGO_ENABLED=0 /usr/local/bin/go/bin/go build -tags kqueue -trimpath -o minio 
Define certs
mkdir -p ~/.minio/certs
cd ~/.minio/certs
wget https://github.com/minio/certgen/releases/latest/download/certgen-linux-amd64
chmod +x certgen-linux-amd64
./certgen-linux-amd64 -host "127.0.0.1"
Start server on each pod
CI=on \
_MINIO_SERVER_LOCAL=minio-18825-0.lab.min.dev:9000 \
~/github/minio/minio server https://minio-18825-{0...3}.lab.min.dev:9000/tmp/data{1...2} --address :9000 --console-address :9090 --certs-dir ~/.minio/certs

CI=on \
_MINIO_SERVER_LOCAL=minio-18825-1.lab.min.dev:9000 \
~/github/minio/minio server https://minio-18825-{0...3}.lab.min.dev:9000/tmp/data{1...2} --address :9000 --console-address :9090 --certs-dir ~/.minio/certs

CI=on \
_MINIO_SERVER_LOCAL=minio-18825-2.lab.min.dev:9000 \
~/github/minio/minio server https://minio-18825-{0...3}.lab.min.dev:9000/tmp/data{1...2} --address :9000 --console-address :9090 --certs-dir ~/.minio/certs

CI=on \
_MINIO_SERVER_LOCAL=minio-18825-3.lab.min.dev:9000 \
~/github/minio/minio server https://minio-18825-{0...3}.lab.min.dev:9000/tmp/data{1...2} --address :9000 --console-address :9090 --certs-dir ~/.minio/certs
image

Login to validate

image
Clone this wiki locally