This is an automated email from the ASF dual-hosted git repository. ywkim pushed a commit to branch cnb in repository https://gitbox.apache.org/repos/asf/bigtop.git
The following commit(s) were added to refs/heads/cnb by this push: new 0e47463 BIGTOP-3267: Standalone Minio as default 0e47463 is described below commit 0e474633d53e916bb3c29e216894deed9cf61d68 Author: Youngwoo Kim <yw...@apache.org> AuthorDate: Wed Oct 30 17:06:37 2019 +0900 BIGTOP-3267: Standalone Minio as default --- README.md | 13 +++- storage/local-path/README.md | 14 ++++ storage/local-path/local-path-storage.yaml | 105 +++++++++++++++++++++++++++++ storage/minio/README.md | 5 ++ storage/minio/values.yaml | 16 ++--- storage/rook/minio/object-store.yaml | 5 +- 6 files changed, 146 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 6b980a4..f4b93fc 100755 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ Minikube is the easiest tool to run a single-node Kubernetes cluster. ``` $ cd $BIGTOP_HOME -$ minikube start --cpus 8 --memory 8196 --container-runtime=cri-o +$ minikube start --cpus 8 --memory 8196 --disk-size=80g --container-runtime=cri-o $ kubectl cluster-info ``` @@ -252,21 +252,30 @@ $ kubectl create -f dl/rook-1.1.2/cluster/examples/kubernetes/minio/operator.yam $ kubectl -n rook-minio-system get pod ``` -Create object store: +Create standalone Minio object store: ``` $ kubectl create -f storage/rook/minio/object-store.yaml $ kubectl -n rook-minio get objectstores.minio.rook.io $ kubectl -n rook-minio get pod -l app=minio,objectstore=bigtop-rook-minio ``` +If you want to deploy Distributed Minio cluster, Increase the ```nodeCount``` in object-store.yaml file. e.g., ```nodeCount: 4``` ### Minio +Standalone Minio: ``` $ cd $BIGTOP_HOME $ helm install --name bigtop-minio --namespace bigtop -f storage/minio/values.yaml stable/minio ``` +Distributed Minio: +``` +$ cd $BIGTOP_HOME +$ helm install --name bigtop-minio --namespace bigtop --set mode=distributed,replicas=4 -f storage/minio/values.yaml stable/minio + +``` + ``` Minio can be accessed via port 9000 on the following DNS name from within your cluster: bigtop-minio.bigtop.svc.cluster.local diff --git a/storage/local-path/README.md b/storage/local-path/README.md new file mode 100644 index 0000000..ce5707c --- /dev/null +++ b/storage/local-path/README.md @@ -0,0 +1,14 @@ +## Use HostPath for persistent local storage with Kubernetes + +https://github.com/rancher/local-path-provisioner + +``` +$ kubectl create -f $BIGTOP_HOME/storage/local-path/local-path-storage.yaml +$ kubectl get sc + +``` + +Mark ```local-path``` StorageClass as default: +``` +kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' +``` diff --git a/storage/local-path/local-path-storage.yaml b/storage/local-path/local-path-storage.yaml new file mode 100644 index 0000000..3022c0a --- /dev/null +++ b/storage/local-path/local-path-storage.yaml @@ -0,0 +1,105 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: local-path-storage +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: local-path-provisioner-service-account + namespace: local-path-storage +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: local-path-provisioner-role +rules: +- apiGroups: [""] + resources: ["nodes", "persistentvolumeclaims"] + verbs: ["get", "list", "watch"] +- apiGroups: [""] + resources: ["endpoints", "persistentvolumes", "pods"] + verbs: ["*"] +- apiGroups: [""] + resources: ["events"] + verbs: ["create", "patch"] +- apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: local-path-provisioner-bind +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: local-path-provisioner-role +subjects: +- kind: ServiceAccount + name: local-path-provisioner-service-account + namespace: local-path-storage +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: local-path-provisioner + namespace: local-path-storage +spec: + replicas: 1 + selector: + matchLabels: + app: local-path-provisioner + template: + metadata: + labels: + app: local-path-provisioner + spec: + serviceAccountName: local-path-provisioner-service-account + containers: + - name: local-path-provisioner + image: rancher/local-path-provisioner:v0.0.11 + imagePullPolicy: IfNotPresent + command: + - local-path-provisioner + - --debug + - start + - --config + - /etc/config/config.json + volumeMounts: + - name: config-volume + mountPath: /etc/config/ + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + volumes: + - name: config-volume + configMap: + name: local-path-config +--- +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: local-path +provisioner: rancher.io/local-path +volumeBindingMode: WaitForFirstConsumer +reclaimPolicy: Delete +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: local-path-config + namespace: local-path-storage +data: + config.json: |- + { + "nodePathMap":[ + { + "node":"DEFAULT_PATH_FOR_NON_LISTED_NODES", + "paths":["/opt/local-path-provisioner"] + } + ] + } + diff --git a/storage/minio/README.md b/storage/minio/README.md new file mode 100644 index 0000000..aa3861a --- /dev/null +++ b/storage/minio/README.md @@ -0,0 +1,5 @@ +## MinIO Helm Chart + +https://github.com/helm/charts/tree/master/stable/minio + + diff --git a/storage/minio/values.yaml b/storage/minio/values.yaml index a463a66..589127f 100644 --- a/storage/minio/values.yaml +++ b/storage/minio/values.yaml @@ -6,7 +6,7 @@ clusterDomain: cluster.local ## image: repository: minio/minio - tag: RELEASE.2019-08-07T01-59-21Z + tag: RELEASE.2019-10-12T01-39-57Z pullPolicy: IfNotPresent ## Set default image, imageTag, and imagePullPolicy for the `mc` (the minio @@ -14,14 +14,13 @@ image: ## mcImage: repository: minio/mc - tag: RELEASE.2019-08-07T23-14-43Z + tag: latest pullPolicy: IfNotPresent ## minio server mode, i.e. standalone or distributed. ## Distributed Minio ref: https://docs.minio.io/docs/distributed-minio-quickstart-guide ## -#mode: standalone -mode: distributed +mode: standalone ## Additional arguments to pass to minio binary extraArgs: [] @@ -47,8 +46,8 @@ priorityClassName: "" ## Distributed Minio ref: https://docs.minio.io/docs/distributed-minio-quickstart-guide ## existingSecret: "" -accessKey: "minio" -secretKey: "minio123" +accessKey: "AKIAIOSFODNN7EXAMPLE" +secretKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" configPath: "/root/.minio/" configPathmc: "/root/.mc/" mountPath: "/export" @@ -84,7 +83,6 @@ persistence: ## If the PV uses a different storage class, specify that here. # storageClass: standard # VolumeName: "" - accessMode: ReadWriteOnce size: 10Gi @@ -170,9 +168,9 @@ resources: ## Create a bucket after minio install ## defaultBucket: - enabled: true + enabled: false ## If enabled, must be a string with length > 0 - name: testbucket + name: bucket ## Can be one of none|download|upload|public policy: none ## Purge if bucket exists already diff --git a/storage/rook/minio/object-store.yaml b/storage/rook/minio/object-store.yaml index 3bc6710..b53589f 100644 --- a/storage/rook/minio/object-store.yaml +++ b/storage/rook/minio/object-store.yaml @@ -22,7 +22,10 @@ metadata: namespace: rook-minio spec: scope: - nodeCount: 4 + # Standalone Minio + nodeCount: 1 + # Distributed Minio + #nodeCount: 4 # You can have multiple PersistentVolumeClaims in the volumeClaimTemplates list. # Be aware though that all PersistentVolumeClaim Templates will be used for each intance (see nodeCount). volumeClaimTemplates: