本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Grafana Multi-AZ Rollout Operator 是一个 Kubernetes Operator 镜像,专为协调多可用区(Multi-AZ)部署场景下的 StatefulSet 滚动更新而设计。该 Operator 通过自定义逻辑跨多个 StatefulSet 协调 Pod 滚动策略,确保多 AZ 环境中 Stateful 应用的更新过程有序、可控,避免因跨 AZ 同时中断导致的服务不可用风险。
topology.kubernetes.io/zone),实现 AZ 级别的更新优先级控制kubectl 工具已配置集群访问权限Operator 依赖自定义资源(CR)实现配置管理,需先部署 CRD:
kubectl apply -f [***]
通过 Kubernetes Deployment 部署 Operator 控制器(镜像为 grafana/rollout-operator:<tag>,需替换 <tag> 为具体版本):
部署清单示例(deployment.yaml):
apiVersion: apps/v1 kind: Deployment metadata: name: rollout-operator namespace: grafana-rollout-operator # 建议使用独立命名空间 spec: replicas: 1 selector: matchLabels: app: rollout-operator template: metadata: labels: app: rollout-operator spec: serviceAccountName: rollout-operator # 需提前创建 RBAC 权限 containers: - name: operator image: grafana/rollout-operator:latest # 替换为实际版本标签 resources: limits: cpu: 500m memory: 512Mi requests: cpu: 200m memory: 256Mi env: - name: WATCH_NAMESPACE value: "default" # 指定监听的命名空间,为空则监听所有命名空间 - name: LOG_LEVEL value: "info" # 日志级别:debug/info/warn/error - name: OPERATOR_NAME value: "rollout-operator"
应用部署清单:
kubectl apply -f deployment.yaml
通过自定义资源(CR)定义多 AZ 滚动策略,示例如下:
CR 清单示例(rollout-config.yaml):
apiVersion: rollout.grafana.com/v1alpha1 kind: MultiAZRollout metadata: name: example-multiaz-rollout namespace: default # 需与监听命名空间一致 spec: # StatefulSet 选择器:匹配需协调的 StatefulSet statefulSetSelector: matchLabels: app: my-stateful-app # 替换为实际 StatefulSet 标签 # 滚动更新策略 rollingUpdate: maxUnavailable: 1 # 每次更新最大不可用 Pod 数 intervalSeconds: 30 # 批次更新间隔(秒) azTopologyKey: "topology.kubernetes.io/zone" # AZ 拓扑标签键 # AZ 更新顺序(可选,默认按字母序) azOrder: - "us-west-2a" - "us-west-2b" - "us-west-2c"
应用 CR 配置:
kubectl apply -f rollout-config.yaml
| 参数路径 | 类型 | 说明 | 默认值 |
|---|---|---|---|
spec.statefulSetSelector | LabelSelector | 用于选择目标 StatefulSet 的标签选择器 | 无(必填) |
spec.rollingUpdate.maxUnavailable | int/string | 滚动更新时允许的最大不可用 Pod 数(支持百分比,如 "25%") | 1 |
spec.rollingUpdate.intervalSeconds | int | 批次更新间隔时间(秒) | 30 |
spec.rollingUpdate.azTopologyKey | string | 用于识别 AZ 的节点标签键 | topology.kubernetes.io/zone |
spec.azOrder | []string | AZ 更新优先级顺序(按列表顺序依次更新) | 按 AZ 名称字母序 |
spec.namespace | string | 目标 StatefulSet 所在命名空间(需与 CR 所在命名空间一致) | CR 所在命名空间 |
| 环境变量 | 说明 | 可选值 | 默认值 |
|---|---|---|---|
WATCH_NAMESPACE | Operator 监听的命名空间(多命名空间用逗号分隔,为空则监听所有) | 命名空间名称或空字符串 | 空(监听所有命名空间) |
LOG_LEVEL | 日志输出级别 | debug/info/warn/error | info |
OPERATOR_NAME | Operator 标识名称 | 字符串 | rollout-operator |
METRICS_PORT | 指标暴露端口 | 1024-65535 | 8080 |
免费版仅支持 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