本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
sidekick 是一款高性能边车(sidecar)负载均衡器。通过将轻量级负载均衡器作为边车附加到每个客户端应用进程,可消除集中式负载均衡器瓶颈和DNS故障转移管理。sidekick 通过就绪API和HTTP错误返回检查服务器健康状态,自动避免将流量发送到故障服务器。
!architecture
演示 !sidekick-demo
/minio/health/ready)和HTTP错误返回识别故障服务器拉取最新版本镜像:
docker pull minio/sidekick
USAGE: sidekick [FLAGS] SITE1 [SITE2..] FLAGS: --address value, -a value 监听地址 (默认: ":8080") --health-path value, -p value 健康检查路径 --health-duration value, -d value 健康检查间隔(秒) (默认: 5) --insecure, -i 禁用TLS证书验证 --log , -l 启用日志 --trace, -t 启用HTTP追踪 --quiet 禁用控制台消息 --json 以JSON格式输出日志和追踪 --debug 输出详细追踪日志 --help, -h 显示帮助信息 --version, -v 打印版本信息 SITE: 每个SITE是用逗号分隔的同一站点的服务器组,例如:[***]{2...5},[***]{6...9} 当SITE1中所有服务器均故障时,流量将路由到下一个站点(如SITE2)。多个站点之间用空格分隔。
sidekick --health-path=/ready [***]
sidekick --health-path=/minio/health/ready --address :8000 [***]{1...4}:9000
sidekick --health-path=/minio/health/ready [***]{1...4}:9000 [***]{1...4}:9000
在Kubernetes环境中,将sidekick作为Spark Driver和Executor的边车容器,为MinIO分布式集群提供本地负载均衡。
# 创建命名空间(可选) kubectl create ns spark-operator # 添加Helm仓库并安装Spark Operator helm repo add incubator [***] helm install spark-operator incubator/sparkoperator --namespace spark-operator --set sparkJobNamespace=spark-operator --set enableWebhook=true
helm install minio-distributed stable/minio --namespace spark-operator \ --set accessKey=minio,secretKey=minio123 \ --set persistence.enabled=false,mode=distributed
注意:测试环境中禁用了持久化,生产环境需使用PV启用持久化存储。详细配置参见MinIO Helm文档。
创建Spark作业配置文件spark-job.yaml:
apiVersion: "sparkoperator.k8s.io/v1beta2" kind: SparkApplication metadata: name: spark-minio-app namespace: spark-operator spec: sparkConf: spark.kubernetes.allocation.batch.size: "50" hadoopConf: "fs.s3a.endpoint": "[***]" "fs.s3a.access.key": "minio" "fs.s3a.secret.key": "minio123" "fs.s3a.path.style.access": "true" "fs.s3a.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem" type: Scala sparkVersion: 2.4.5 mode: cluster image: minio/spark:v2.4.5-hadoop-3.1 imagePullPolicy: Always restartPolicy: type: OnFailure onFailureRetries: 3 onFailureRetryInterval: 10 onSubmissionFailureRetries: 5 onSubmissionFailureRetryInterval: 20 mainClass: org.apache.spark.examples.JavaWordCount mainApplicationFile: "local:///opt/spark/examples/target/original-spark-examples_2.11-2.4.6-SNAPSHOT.jar" arguments: - "s3a://mytestbucket/mydata" driver: cores: 1 coreLimit: "1000m" memory: "512m" labels: version: 2.4.5 sidecars: - name: minio-lb image: "minio/sidekick:v0.5.8" imagePullPolicy: Always args: ["--health-path", "/minio/health/ready", "--address", ":9000", "[***]{0...3}.minio-distributed-svc.spark-operator.svc.cluster.local:9000"] ports: - containerPort: 9000 executor: cores: 1 instances: 4 memory: "512m" labels: version: 2.4.5 sidecars: - name: minio-lb image: "minio/sidekick:v0.5.8" imagePullPolicy: Always args: ["--health-path", "/minio/health/ready", "--address", ":9000", "[***]{0...3}.minio-distributed-svc.spark-operator.svc.cluster.local:9000"] ports: - containerPort: 9000
提交作业并查看日志:
kubectl create -f spark-job.yaml kubectl logs -f --namespace spark-operator spark-minio-app-driver spark-kubernetes-driver
sidekick支持配置S3兼容对象存储作为共享缓存,提升热点数据访问性能。缓存通过环境变量配置,适用于需要共享缓存的分布式应用场景。
| 环境变量 | 描述 | 示例值 |
|---|---|---|
| SIDEKICK_CACHE_ENDPOINT | S3兼容对象存储端点 | [] 或 [] |
| SIDEKICK_CACHE_ACCESS_KEY | 访问密钥 | minio |
| SIDEKICK_CACHE_SECRET_KEY | 密钥 | minio123 |
| SIDEKICK_CACHE_BUCKET | 缓存存储桶名称 | cache01 |
| SIDEKICK_CACHE_MIN_SIZE | 缓存最小对象大小 | 32MiB(支持单位:B, KiB, MiB, GiB等) |
| SIDEKICK_CACHE_HEALTH_DURATION | 缓存健康检查间隔(秒) | 20 |
# 部分配置(完整配置参考上文Spark作业示例,仅展示sidecar部分差异) sidecars: - name: minio-lb image: "minio/sidekick:v0.5.8" imagePullPolicy: Always args: ["--health-path", "/minio/health/ready", "--address", ":9000", "[***]{0...3}.minio-distributed-svc.spark-operator.svc.cluster.local:9000"] env: - name: SIDEKICK_CACHE_ENDPOINT value: "[***]" - name: SIDEKICK_CACHE_ACCESS_KEY value: "minio" - name: SIDEKICK_CACHE_SECRET_KEY value: "minio123" - name: SIDEKICK_CACHE_BUCKET value: "cache01" - name: SIDEKICK_CACHE_MIN_SIZE value: "32MiB" - name: SIDEKICK_CACHE_HEALTH_DURATION value: "20" ports: - containerPort: 9000
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429