轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
flant/shell-operator
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

shell-operator Docker 镜像下载 - 轩辕镜像

shell-operator 镜像详细信息和使用指南

shell-operator 镜像标签列表和版本信息

shell-operator 镜像拉取命令和加速下载

shell-operator 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

shell-operator
flant/shell-operator

shell-operator 镜像详细信息

shell-operator 镜像标签列表

shell-operator 镜像使用说明

shell-operator 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

Shell-operator 是一个在 Kubernetes 集群中运行事件驱动脚本的工具,它作为 Kubernetes 集群事件与 shell 脚本之间的集成层,通过将脚本视为由事件触发的钩子,简化集群管理,支持监控 Kubernetes 对象事件并按条件触发脚本。
3 收藏0 次下载activeflant镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

shell-operator 镜像详细说明

shell-operator 使用指南

shell-operator 配置说明

shell-operator 官方文档

Shell-operator

Shell-operator logo

docker pull flant/shell-operator Slack chat EN *** chat RU

概述

Shell-operator 是一个用于在 Kubernetes 集群中运行事件驱动脚本的工具。

该操作器不同于 prometheus-operator 或 kafka-operator 这类特定软件产品的操作器。Shell-operator 作为 Kubernetes 集群事件与 shell 脚本之间的集成层,将脚本视为由事件触发的钩子。可以将其理解为面向脚本的 operator-sdk。

Shell-operator 可用作更高级的 Addon-operator 的基础,后者支持 helm 图表和值存储。

核心功能

Shell-operator 提供:

  • 简化 Kubernetes 集群管理:使用运维人员熟悉的工具,如 bash、python、kubectl 等。
  • Kubernetes 对象事件:钩子可由添加、更新或删除事件触发。了解更多关于钩子的信息。
  • 对象选择器和属性过滤器:可仅监控特定对象并检测其属性变化。
  • 简单配置:钩子绑定定义通过标准输出的 JSON 结构实现。

快速开始

需具备 Kubernetes 集群,且 kubectl 已配置为与集群通信。

在集群中设置 Shell-operator 的步骤:

  • 构建包含钩子(脚本)的镜像
  • 创建必要的 RBAC 对象(用于 onKubernetesEvent 绑定)
  • 运行包含构建镜像的 Pod

构建包含钩子的镜像

钩子是一种脚本,当使用 --config 选项执行时,会返回 JSON 格式的配置。了解更多关于钩子的信息。

创建一个监控所有命名空间中 Pod 的小型操作器,当有新 Pod 时记录其名称。

使用 "onKubernetesEvent" 绑定告知 shell-operator 要监控的对象。创建 pods-hook.sh 文件,内容如下:

#!/usr/bin/env bash

if [[ $1 == "--config" ]] ; then
  cat <<EOF
  {"onKubernetesEvent": [
    {"kind":"Pod",
     "event":["add"]
  }
  ]}
EOF
else
  podName=$(jq -r .[0].resourceName $BINDING_CONTEXT_PATH)
  echo "Pod '${podName}' added"
fi

使 pods-hook.sh 可执行:

chmod +x pods-hook.sh

可使用预构建镜像 flant/shell-operator:latest(包含 bash、python、kubectl、jq 和 shell-operator 二进制文件)构建自定义镜像。只需在 Dockerfile 中将钩子添加到 /hooks 目录。

在 pods-hook.sh 所在目录创建以下 Dockerfile:

FROM flant/shell-operator:latest
ADD pods-hook.sh /hooks

构建镜像(根据 Docker 仓库修改镜像标签):

docker build -t "registry.mycompany.com/shell-operator:monitor-pods" .

将镜像推送到 Kubernetes 集群可访问的 Docker 仓库:

docker push registry.mycompany.com/shell-operator:monitor-pods

在集群中安装 shell-operator

需监控所有命名空间的 Pod,需为 shell-operator 创建特定 RBAC 定义:

kubectl create namespace example-monitor-pods &&
kubectl create serviceaccount monitor-pods-acc \
  --namespace example-monitor-pods &&
kubectl create clusterrole monitor-pods --verb=get,watch,list --resource=pods &&
kubectl create clusterrolebinding monitor-pods \
  --clusterrole=monitor-pods \
  --serviceaccount=example-monitor-pods:monitor-pods-acc

Shell-operator 可部署为 Pod。创建 shell-operator-pod.yaml 文件,内容如下:

apiVersion: v1
kind: Pod
metadata:
  name: shell-operator
spec:
  containers:
  - name: shell-operator
    image: registry.mycompany.com/shell-operator:monitor-pods
    imagePullPolicy: Always
  serviceAccountName: monitor-pods-acc

应用 shell-operator-pod.yaml 文件启动 shell-operator:

kubectl -n example-monitor-pods apply -f shell-operator-pod.yaml

例如,部署 kubernetes-dashboard 触发 onKuberneteEvent:

kubectl apply -f [***]

运行 kubectl -n example-monitor-pods logs po/shell-operator,可看到钩子打印 dashboard Pod 名称:

...
INFO     : QUEUE add TASK_HOOK_RUN@KUBE_EVENTS pods-hook.sh
INFO     : TASK_RUN HookRun@KUBE_EVENTS pods-hook.sh
INFO     : Running hook 'pods-hook.sh' binding 'KUBE_EVENTS' ...
Pod 'kubernetes-dashboard-769df5545f-99xsb' added
...

删除创建的对象:

kubectl delete ns example-monitor-pods &&
kubectl delete clusterrole monitor-pods &&
kubectl delete clusterrolebinding monitor-pods

此示例也可在 /examples 目录中找到:monitor-pods。

钩子绑定类型

onStartup

此绑定仅包含一个参数:执行顺序。启动时加载钩子,然后按参数定义的顺序执行带有 onStartup 绑定的钩子。了解更多关于 onStartup 绑定的信息。

示例 hook --config:

{"onStartup":10}

schedule

此绑定用于定期运行钩子。调度可精确到秒级。了解更多关于 schedule 绑定的信息。

包含 2 个调度的 hook --config 示例:

{
  "schedule": [
   {"name":"每 10 分钟",
    "schedule":"0 */10 * * * *",
    "allowFailure":true
   },
   {"name":"每周一 8:05",
    "schedule":"0 5 8 * * 1"
    }
  ]
}

onKubernetesEvent

此绑定定义 Shell-operator 要监控的 Kubernetes 对象子集,以及用于过滤对象属性的 jq 表达式。了解更多关于 onKubernetesEvent 绑定的信息。

注意:目前不支持自定义资源监控,参见 issue #14。

hook --config 示例:

{
  "onKubernetesEvent": [
  {"name":"命名空间标签变化时执行",
   "kind": "namespace",
   "event":["update"],
   "jqFilter":".metadata.labels"
  }]
}

Prometheus 指标

Shell-operator 提供 /metrics 端点。更多信息参见 METRICS 文档。

示例

更多示例可在 examples 目录中找到。

许可证

Apache License 2.0,参见 LICENSE。

查看更多 shell-operator 相关镜像 →

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 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 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.