MinIO+Vault+Kaniko+KrakenD+Istio
October 22, 2022
MinIO install
MinIO - это высокопроизводительное хранилище, работающее на основе S3 протокола и использующее в качестве хранилища локальный каталог на одной из воркер нод k8s.
mkdir minio && cd minio curl https://raw.githubusercontent.com/minio/docs/master/source/extra/examples/minio-dev.yaml -O vi minio-dev.yaml В блоке установим свой nodeSelector и tolerations: nodeSelector: cam: minio tolerations: - key: cam value: minio operator: Equal effect: NoSchedule
Повесим соответствующий label/taint на ноду или ноды, где будет создано хранилище: kubectl label no <node_name> cam=minio kubectl taint no <node_name> cam=minio:NoSchedule
kubectl apply -f minio-dev.yaml kubectl get po -n minio-dev
Доступ к дашборду minio
# Доступ к поду с помощью port-forward kubectl port-forward pod/minio 9000 9090 -n minio-dev Для захода на страницу управления в браузере вбиваем: http://127.0.0.1:9090 login/password: minioadmin/minioadmin Попадаем в консоль управления MinIO.
kubectl get po --show-labels NAME READY STATUS RESTARTS AGE LABELS minio 1/1 Running 0 22h app.kubernetes.io/name=minio,app=minio
cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Service metadata: name: minio namespace: minio-dev spec: type: NodePort selector: app: minio ports: - port: 9000 name: minio targetPort: 9090 EOF
cat <<EOF | kubectl apply -f - apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: minio namespace: minio-dev annotations: kubernetes.io/ingress.class: "nginx" spec: rules: - host: minio.prod.cameda1.tk http: paths: - path: / pathType: Prefix backend: service: name: minio port: number: 9090 EOF
cat <<EOF | kubectl apply -f - apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: minio namespace: minio-dev spec: acme: server: https://acme-v02.api.letsencrypt.org/directory email: [email protected] privateKeySecretRef: name: minio solvers: - http01: ingress: class: nginx EOF
cat <<EOF | kubectl apply -f - apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: minio namespace: minio-dev annotations: kubernetes.io/ingress.class: "nginx" cert-manager.io/cluster-issuer: "minio" spec: tls: - hosts: - minio.prod.cameda1.tk secretName: minio rules: - host: minio.prod.cameda1.tk http: paths: - path: / pathType: Prefix backend: service: name: minio port: number: 9090 EOF
Полезные ссылки.
Установка: https://min.io/docs/minio/kubernetes/upstream/index.html
Про MinIO: https://min.io/docs/minio/kubernetes/upstream/administration/object-management/object-retention.html#minio-object-retention