
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Grafana k6 Operator是一个Kubernetes Operator,能够在集群中运行分布式k6负载测试,自动化测试执行和扩展以进行性能验证。
https://k6.io/
商标:本软件列表由Bitnami打包。产品中提及的 respective 商标归各自公司所有,使用这些商标并不意味着任何关联或认可。
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/grafana-k6-operator
想在生产环境中使用Grafana k6 Operator?试试https://bitnami.com/enterprise%EF%BC%8CBitnami%E7%9B%AE%E5%BD%95%E7%9A%84%E5%95%86%E4%B8%9A%E7%89%88%E3%80%82
从2025年8月28日开始,Bitnami将改进其公共目录,在新的https://news.broadcom.com/app-dev/broadcom-introduces-bitnami-secure-images-for-production-ready-containerized-applications%E4%B8%8B%E6%8F%90%E4%BE%9B%E7%B2%BE%E9%80%89%E7%9A%84%E5%BC%BA%E5%8C%96%E3%80%81%E5%AE%89%E5%85%A8%E8%81%9A%E7%84%A6%E7%9A%84%E9%95%9C%E5%83%8F%E3%80%82%E4%BD%9C%E4%B8%BA%E6%AD%A4%E8%BF%87%E6%B8%A1%E7%9A%84%E4%B8%80%E9%83%A8%E5%88%86%EF%BC%9A
这些变更旨在通过推广软件供应链完整性和最新部署的最佳实践,提高所有Bitnami用户的安全态势。有关更多详细信息,请访问https://github.com/bitnami/containers/issues/83267%E3%80%82
此chart使用[***]
要使用发布名称“my-release”安装chart:
consolehelm install my-release REGISTRY_NAME/REPOSITORY_NAME/grafana-k6-operator
注意:您需要将占位符
REGISTRY_NAME和REPOSITORY_NAME替换为Helm chart仓库和存储库的引用。例如,对于Bitnami,需要使用REGISTRY_NAME=registry-1.docker.io和REPOSITORY_NAME=bitnamicharts。
该命令使用默认配置在Kubernetes集群上部署Grafana k6 Operator。参数部分列出了可在安装过程中配置的参数。
提示:使用
helm list列出所有发布
强烈建议在生产环境中使用不可变标签。这可确保如果相同标签使用不同镜像更新,您的部署不会自动更改。
如果主容器有新版本、重大变更或严重漏洞,Bitnami将发布新chart来更新其容器。
Bitnami chart允许为chart部署内的所有容器设置资源请求和限制。这些在resources值中配置(参见参数表)。为生产工作负载设置请求至关重要,应根据您的具体用例进行调整。
为简化此过程,chart包含resourcesPreset值,可根据不同预设自动设置resources部分。在https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15%E4%B8%AD%E6%9F%A5%E7%9C%8B%E8%BF%99%E4%BA%9B%E9%A2%84%E8%AE%BE%E3%80%82%E7%84%B6%E8%80%8C%EF%BC%8C%E5%9C%A8%E7%94%9F%E4%BA%A7%E5%B7%A5%E4%BD%9C%E8%B4%9F%E8%BD%BD%E4%B8%AD%E4%B8%8D%E5%BB%BA%E8%AE%AE%E4%BD%BF%E7%94%A8%60resourcesPreset%60%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%AE%83%E5%8F%AF%E8%83%BD%E6%97%A0%E6%B3%95%E5%AE%8C%E5%85%A8%E9%80%82%E5%BA%94%E6%82%A8%E7%9A%84%E7%89%B9%E5%AE%9A%E9%9C%80%E6%B1%82%E3%80%82%E6%9C%89%E5%85%B3%E5%AE%B9%E5%99%A8%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86%E7%9A%84%E6%9B%B4%E5%A4%9A%E4%BF%A1%E6%81%AF%EF%BC%8C%E8%AF%B7%E5%8F%82%E8%A7%81https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/%E3%80%82
通过将metrics.enabled设置为true,此chart可与Prometheus集成。这将在metrics服务中公开Grafana k6 Operator原生Prometheus端点,可在metrics.service部分下配置。它将具有必要的注解,以便被Prometheus自动抓取。
通过设置authProxy.enabled=true,可以为此端点设置基于RBAC的身份验证,这将部署带有https://github.com/brancz/kube-rbac-proxy%E7%9A%84%E8%BE%B9%E8%BD%A6%EF%BC%8C%E5%8F%AA%E6%9C%89%E6%8E%88%E6%9D%83%E7%9A%84ServiceAccount%E8%83%BD%E5%A4%9F%E8%AE%BF%E9%97%AE%E6%8C%87%E6%A0%87%E3%80%82
Prometheus要求
集成工作需要安装Prometheus或Prometheus Operator。安装https://github.com/bitnami/charts/tree/main/bitnami/prometheus%E6%88%96https://github.com/bitnami/charts/tree/main/bitnami/kube-prometheus%EF%BC%8C%E4%BB%A5%E4%BE%BF%E5%9C%A8%E9%9B%86%E7%BE%A4%E4%B8%AD%E8%BD%BB%E6%9D%BE%E6%8B%A5%E6%9C%89%E5%8F%AF%E7%94%A8%E7%9A%84Prometheus%E3%80%82
与Prometheus Operator集成
该chart可以部署ServiceMonitor对象,用于与Prometheus Operator安装集成。要实现此目的,将值metrics.serviceMonitor.enabled=true。确保集群中安装了Prometheus Operator CustomResourceDefinitions,否则将失败并显示以下错误:
textno matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"
安装https://github.com/bitnami/charts/tree/main/bitnami/kube-prometheus%E4%BB%A5%E8%8E%B7%E5%8F%96%E5%BF%85%E8%A6%81%E7%9A%84CRD%E5%92%8CPrometheus Operator。
如果在grafana-k6-operator的同一pod中需要额外的容器(例如额外的指标或日志导出器),可以使用sidecars参数定义它们:
yamlsidecars: - name: your-image-name image: your-image imagePullPolicy: Always ports: - name: portname containerPort: 1234
如果这些边车导出额外的端口,可以使用service.extraPorts参数(如可用)添加额外的端口定义,如下例所示:
yamlservice: extraPorts: - name: extraPort port: 11311 targetPort: 11311
如果同一pod中需要额外的初始化容器,可以使用initContainers参数定义它们。例如:
yamlinitContainers: - name: your-image-name image: your-image imagePullPolicy: Always ports: - name: portname containerPort: 1234
了解更多关于https://kubernetes.io/docs/concepts/workloads/pods/%E5%92%8Chttps://kubernetes.io/docs/concepts/workloads/pods/init-containers/%E3%80%82
除了Operator之外,您可能还想部署TestRun对象。为此,chart允许使用extraDeploy参数添加其他对象的完整规范。以下示例创建一个TestRun对象和一个包含测试代码的ConfigMap:
yamlextraDeploy: - apiVersion: k6.io/v1alpha1 kind: TestRun metadata: name: testrun-sample spec: parallelism: 2 script: configMap: name: k6-test file: test.js - apiVersion: v1 kind: ConfigMap metadata: name: k6-test data: test.js: | import http from 'k6/http'; import { Rate } from 'k6/metrics'; import { check, sleep } from 'k6'; const failRate = new Rate('failed_requests'); export let options = { stages: [ { target: 200, duration: '30s' }, { target: 0, duration: '30s' }, ], thresholds: { failed_requests: ['rate<=0'], http_req_duration: ['p(95)<500'], }, }; export default function () { const result = http.get('https://quickpizza.grafana.com'); check(result, { 'http response status code is 200': result.status === 200, }); failRate.add(result.status !== 200); sleep(1); }
查看https://min.io/docs/minio/kubernetes/upstream/operations/deploy-manage-tenants.html%E8%8E%B7%E5%8F%96%E5%8F%AF%E7%94%A8%E5%AF%B9%E8%B1%A1%E5%88%97%E8%A1%A8%E3%80%82
此chart允许使用affinity参数设置自定义亲和性。有关Pod亲和性的更多信息,请参见https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity%E3%80%82
作为替代方案,使用https://github.com/bitnami/charts/tree/main/bitnami/common#affinities chart中可用的pod亲和性、pod反亲和性和节点亲和性的预设配置之一。为此,在operator、apiserver和cluster部分中设置podAffinityPreset、podAntiAffinityPreset或nodeAffinityPreset参数。
| 名称 | 描述 | 值 |
|---|---|---|
global.imageRegistry | 全局Docker镜像仓库 | "" |
global.imagePullSecrets | 全局Docker仓库密钥名称数组 | [] |
global.defaultStorageClass | 持久卷的全局默认StorageClass | "" |
global.security.allowInsecureImages | 允许跳过镜像验证 | false |
global.compatibility.openshift.adaptSecurityContext | 调整部署的securityContext部分,使其与Openshift restricted-v2 SCC兼容:删除runAsUser、runAsGroup和fsGroup,让平台使用其允许的默认ID。可能的值:auto(如果检测到运行的集群是Openshift则应用)、force(始终执行调整)、disabled(不执行调整) | auto |
| 名称 | 描述 | 值 |
|---|---|---|
kubeVersion | 覆盖Kubernetes版本 | "" |
apiVersions | 覆盖.Capabilities报告的Kubernetes API版本 | [] |
nameOverride | 部分覆盖common.names.name的字符串 | "" |
fullnameOverride | 完全覆盖common.names.fullname的字符串 | "" |
namespaceOverride | 完全覆盖common.names.namespace的字符串 | "" |
commonLabels | 添加到所有部署对象的标签 | {} |
commonAnnotations | 添加到所有部署对象的注解 | {} |
clusterDomain | Kubernetes集群域名 | cluster.local |
extraDeploy | 要与发布一起部署的额外对象数组 | [] |
image.registry | Grafana k6 Operator镜像仓库 | REGISTRY_NAME |
image.repository | Grafana k6 Operator镜像存储库 | REPOSITORY_NAME/grafana-k6-operator |
image.digest | Grafana k6 Operator镜像摘要,格式为sha256:aa....请注意,如果设置此参数,将覆盖标签镜像标签(建议使用不可变标签) | "" |
image.pullPolicy | Grafana k6 Operator镜像拉取策略 | IfNotPresent |
image.pullSecrets | Grafana k6 Operator镜像拉取密钥 | [] |
starterImage.registry | os-shell镜像仓库 | REGISTRY_NAME |
starterImage.repository | os-shell镜像存储库 | REPOSITORY_NAME/os-shell |
starterImage.digest | os-shell镜像摘要,格式为sha256:aa....请注意,如果设置此参数,将覆盖标签镜像标签(建议使用不可变标签) | "" |
runnerImage.registry | Grafana k6镜像仓库 | REGISTRY_NAME |
runnerImage.repository | Grafana k6镜像存储库 | REPOSITORY_NAME/grafana-k6 |
runnerImage.digest | Grafana k6镜像摘要,格式为sha256:aa....请注意,如果设置此参数,将覆盖标签 | "" |
replicaCount | 要部署的Grafana k6 Operator副本数 | 1 |
containerPorts.metrics | 指标容器端口 | 8080 |
containerPorts.health | 健康检查容器端口 | 8081 |
livenessProbe.enabled | 在Grafana k6 Operator容器上启用livenessProbe | true |
livenessProbe.initialDelaySeconds | livenessProbe的初始延迟秒数 | 5 |
livenessProbe.periodSeconds | livenessProbe的周期秒数 | 10 |
livenessProbe.timeoutSeconds | livenessProbe的超时秒数 | 5 |
livenessProbe.failureThreshold | livenessProbe的失败阈值 | 5 |
livenessProbe.successThreshold | livenessProbe的成功阈值 | 1 |
readinessProbe.enabled | 在Grafana k6 Operator容器上启用readinessProbe | true |
readinessProbe.initialDelaySeconds | readinessProbe的初始延迟秒数 | 5 |
readinessProbe.periodSeconds | readinessProbe的周期秒数 | 10 |
readinessProbe.timeoutSeconds | readinessProbe的超时秒数 | 5 |
readinessProbe.failureThreshold | readinessProbe的失败阈值 | 5 |
readinessProbe.successThreshold | readinessProbe的成功阈值 | 1 |
startupProbe.enabled | 在Grafana k6 Operator容器上启用startupProbe | false |
startupProbe.initialDelaySeconds | startupProbe的初始延迟秒数 | (原文未完整显示,完整内容请参见官方文档) |
注意:此chart的README超出了DockerHub的25000字符限制,因此已被截断。完整README可在https://github.com/bitnami/charts/blob/main/bitnami/grafana-k6-operator/README.md%E6%89%BE%E5%88%B0%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务