在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):freegroup/kube-s3开源软件地址(OpenSource Url):https://github.com/freegroup/kube-s3开源编程语言(OpenSource Language):Shell 79.3%开源软件介绍(OpenSource Introduction):Shared storage with S3 backendThe storage is definitely the most complex and important part of an application setup, once this part is completed, 80% of the tasks are completed. Mounting an S3 bucket into a pod using FUSE allows you to access the data as if it were on the local disk. The mount is a pointer to an S3 location, so the data is never synced locally. Once mounted, any pod can read or even write from that directory without the need for explicit keys. However, it can be used to import and parse large amounts of data into a database. OverviewLimitationsGenerally S3 cannot offer the same performance or semantics as a local file system. More specifically:
Before you BeginYou need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster. If you do not already have a cluster, you can create one by using the Gardener. Ensure that you have create the "imagePullSecret" in your cluster. kubectl create secret docker-registry artifactory --docker-server=<YOUR-REGISTRY>.docker.repositories.sap.ondemand.com --docker-username=<USERNAME> --docker-password=<PASSWORD> --docker-email=<EMAIL> -n <NAMESPACE> SetupThe first step is to clone this repository. Next is the Secret for the AWS API credentials of the user that has
full access to our S3 bucket. Copy the apiVersion: v1
kind: ConfigMap
metadata:
name: s3-config
data:
S3_BUCKET: <YOUR-S3-BUCKET-NAME>
AWS_KEY: <YOUR-AWS-TECH-USER-ACCESS-KEY>
AWS_SECRET_KEY: <YOUR-AWS-TECH-USER-SECRET> Build and deployChange the settings in the #!/usr/bin/env bash
########################################################################################################################
# PREREQUISTITS
########################################################################################################################
#
# - ensure that you have a valid Artifactory or other Docker registry account
# - Create your image pull secret in your namespace
# kubectl create secret docker-registry artifactory --docker-server=<YOUR-REGISTRY>.docker.repositories.sap.ondemand.com --docker-username=<USERNAME> --docker-password=<PASSWORD> --docker-email=<EMAIL> -n <NAMESPACE>
# - change the settings below arcording your settings
#
# usage:
# Call this script with the version to build and push to the registry. After build/push the
# yaml/* files are deployed into your cluster
#
# ./build.sh 1.0
#
VERSION=$1
PROJECT=kube-s3
REPOSITORY=cp-enablement.docker.repositories.sap.ondemand.com
# causes the shell to exit if any subcommand or pipeline returns a non-zero status.
set -e
# set debug mode
#set -x
.
.
.
.
Create the S3Fuse Pod and check the status: # build and push the image to your docker registry
./build.sh 1.0
# check that the pods are up and running
kubectl get pods
Check successCreate a demo Pod and check the status: kubectl apply -f ./yaml/example_pod.yaml
# wait some second to get the pod up and running...
kubectl get pods
# go into the pd and check that the /var/s3 is mounted with your S3 bucket content inside
kubectl exec -ti test-pd sh
# inside the pod
ls -la /var/s3
Why does this work?Docker engine 1.10 added a new feature which allows containers to share the host mount namespace. This feature makes it possible to mount a s3fs container file system to a host file system through a shared mount, providing a persistent network storage with S3 backend. The key part is mountPath: |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论