ncsa/checksNCSA CHECKS是一个专为Kubernetes设计的init容器镜像,用于在主容器启动前检查依赖服务是否就绪。通过在init阶段执行连接性验证,确保依赖服务(如数据库、消息队列、HTTP服务等)已准备好接受连接,避免主应用因依赖服务未就绪而启动失败。
适用于Kubernetes环境中任何存在依赖服务的应用部署,例如:
以下示例展示如何在Kubernetes Deployment中使用该镜像作为init容器,检查RabbitMQ和PostgreSQL服务就绪状态:
yamlapiVersion: apps/v1 kind: Deployment metadata: name: mywebapp spec: replicas: 1 selector: matchLabels: app: mywebapp template: metadata: labels: app: mywebapp spec: initContainers: - name: check-rabbitmq # 检查RabbitMQ就绪状态 image: "ncsa/checks:1.0.0" env: - name: RABBITMQ_URI # RabbitMQ连接URI(必填) value: "amqp://user:pass@rabbitmq/%2F" - name: check-postgresql # 检查PostgreSQL就绪状态 image: "ncsa/checks:1.0.0" env: - name: PGURI # PostgreSQL连接URI(必填) value: "postgresql://postgres:secret@postgresql:5432/mydb" - name: PGTABLE # 可选,需验证存在的表名 value: "users" containers: - name: mywebapp # 主应用容器 image: mywebapp:1.0 ports: - containerPort: 80 env: - name: RABBITMQ_URI value: "amqp://user:pass@rabbitmq/%2F" - name: PGHOST value: "postgres" - name: PGUSER value: "postgres"
RABBITMQ_URI [必填]:RabbitMQ服务器连接URI(格式:amqp://user:pass@host/%2F)MONGO_URI [必填]:MongoDB服务器连接URI(格式:mongodb://user:pass@host:port/dbname)URL [必填]:待检查的URL地址URL_TEXT [可选]:响应体中需包含的文本内容PGURI [必填*]:PostgreSQL连接URI(格式:postgresql://user:pass@host:port/dbname)PGUSER [必填*]:数据库用户名PGPASSWORD [必填*]:数据库密码PGHOST [必填*]:数据库主机地址PGPORT [必填*]:数据库端口PGDATABASE [必填*]:数据库名称PGTABLE [可选]:需存在的表名*注:PostgreSQL检查需提供
PGURI,或单独提供PGUSER、PGPASSWORD、PGHOST、PGPORT、PGDATABASE参数
check_service功能:检查指定host:port是否可达
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务