
risingwavelabs/risingwave-operator: error when creating "[***]": Internal error occurred: failed calling webhook "webhook.cert-manager.io": Post "[***]": dial tcp 10.111.35.75:443: connect: connection refused Error from server (InternalError): error when creating "[***]": Internal error occurred: failed calling webhook "webhook.cert-manager.io": Post "[***]": dial tcp 10.111.35.75:443: connect: connection refused
这些错误是由于cert-manager正在初始化导致的。稍等一分钟后,重新应用上述risingwave-operator.yaml即可。
现在可以通过以下命令部署一个使用内存存储的RisingWave实例(注意节点架构):
shellkubectl apply -f [***]
通过以下命令检查RisingWave的运行状态:
shellkubectl get risingwave
预期输出如下:
plainNAME RUNNING STORAGE(META) STORAGE(OBJECT) AGE risingwave-in-memory True Memory Memory 30s
默认情况下,Operator会为前端组件创建类型为ClusterIP的服务,该服务无法从外部访问。因此,我们需要在Kubernetes内创建一个独立的PostgreSQL Pod,该Pod运行无限循环以便我们可以附加到其中。
可通过以下命令创建,或自行创建:
shellkubectl apply -f docs/manifests/psql/psql-console.yaml
之后会在Kubernetes中看到名为psql-console的Pod运行,可通过以下命令附加到容器内执行命令:
shellkubectl exec -it psql-console bash
最后,在Pod内通过psql命令访问RisingWave:
shellpsql -h risingwave-in-memory-frontend -p 4567 -d dev -U root
如果需要从Kubernetes中的节点(如EC2)连接RisingWave,可将服务类型设置为NodePort,并在节点上运行以下命令:
shellexport RISINGWAVE_NAME=risingwave-in-memory export RISINGWAVE_NAMESPACE=default export RISINGWAVE_HOST=`kubectl -n ${RISINGWAVE_NAMESPACE} get node -o jsonpath='{.items[0].status.addresses[?(@.type=="InternalIP")].address}'` export RISINGWAVE_PORT=`kubectl -n ${RISINGWAVE_NAMESPACE} get svc -l risingwave/name=${RISINGWAVE_NAME},risingwave/component=frontend -o jsonpath='{.items[0].spec.ports[0].nodePort}'` psql -h ${RISINGWAVE_HOST} -p ${RISINGWAVE_PORT} -d dev -U root
配置示例:
yamlex# ... spec: global: serviceType: NodePort # ...
对于EKS/GCP等云厂商提供的Kubernetes集群,可通过设置服务类型为Load***,使用云负载均衡器将服务暴露到公网。配置如下:
yamlex# ... spec: global: serviceType: Load*** # ...
之后可通过以下命令连接RisingWave:
shellexport RISINGWAVE_NAME=risingwave-in-memory export RISINGWAVE_NAMESPACE=default export RISINGWAVE_HOST=`kubectl -n ${RISINGWAVE_NAMESPACE} get svc -l risingwave/name=${RISINGWAVE_NAME},risingwave/component=frontend -o jsonpath='{.items[0].status.load***.ingress[0].ip}'` export RISINGWAVE_PORT=`kubectl -n ${RISINGWAVE_NAMESPACE} get svc -l risingwave/name=${RISINGWAVE_NAME},risingwave/component=frontend -o jsonpath='{.items[0].spec.ports[0].port}'` psql -h ${RISINGWAVE_HOST} -p ${RISINGWAVE_PORT} -d dev -U root
目前内存存储仅支持测试用途,强烈不建议用于其他场景。可通过以下配置启用内存元数据和对象存储:
yamlex#... spec: storages: meta: memory: true object: memory: true #...
推荐使用etcd存储元数据。可通过以下方式指定要使用的etcd连接信息:
yamlex#... spec: storages: meta: etcd: endpoint: risingwave-etcd:2388 secret: etcd-credentials # 可选,为空表示不启用认证 #...
参见docs/manifests/risingwave/risingwave-etcd-minio.yaml了解如何部署使用etcd作为元数据存储的简单RisingWave实例。
支持使用MinIO作为对象存储。详情参见docs/manifests/risingwave/risingwave-etcd-minio.yaml,YAML结构如下:
yamlex#... spec: storages: object: minio: secret: minio-credentials endpoint: minio-endpoint:2388 bucket: hummock001 #...
支持使用AWS S3作为对象存储。请按照以下步骤操作,详情参见docs/manifests/risingwave/risingwave-etcd-s3.yaml:
首先,创建名为s3-credentials的Secret:
shellkubectl create secret generic s3-credentials --from-literal AccessKeyID=${ACCESS_KEY} --from-literal SecretAccessKey=${SECRET_ACCESS_KEY} --from-literal Region=${AWS_REGION}
然后,在控制台创建一个存储桶,例如hummock001。
最后,在YAML中指定S3作为对象存储:
yamlex#... spec: storages: object: s3: secret: s3-credentials bucket: hummock001 #...
如需监控Kubernetes中运行的RisingWave,请参见监控指南获取更多详情。
RisingWave Operator基于Apache License 2.0开发,更多信息请参见LICENSE。
感谢您对本项目的贡献兴趣!更多信息请参见贡献与开发指南。






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务