# java-operator **Repository Path**: mayun4mark/java-operator ## Basic Information - **Project Name**: java-operator - **Description**: java开发k8s operator - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-12-29 - **Last Updated**: 2025-10-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NodePort Validator Webhook 一个用于验证 Kubernetes Service NodePort 端口范围的准入控制器。 ## 功能特性 - 验证 Service NodePort 是否在允许的范围内 - 通过自定义资源(NodePortRange)配置端口范围 - 使用 cert-manager 自动管理证书 - 基于 Spring Boot 和 Java Operator SDK - 支持 Helm 部署 ## 技术栈 - Java 21 - Spring Boot 3.2.1 - Java Operator SDK 4.4.4 - Kubernetes Client (fabric8) 6.8.1 - cert-manager - Helm 3 ## 快速开始 ### 前置条件 - Kubernetes 集群 (1.19+) - Helm 3 - cert-manager - JDK 21 - Maven 3.8+ - Docker ### 构建 1. 克隆仓库: ``` 3. 编译项目: ``` 4. 构建 Docker 镜像: ``` ### 部署 1. 安装 cert-manager: ```bash # 添加 Helm 仓库 helm repo add jetstack https://charts.jetstack.io helm repo update # 安装 cert-manager helm install cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --set installCRDs=true # 等待 cert-manager 就绪 kubectl wait --for=condition=Ready pods -n cert-manager -l app.kubernetes.io/instance=cert-manager ``` 2. 部署 Webhook: ```bash # 创建命名空间 kubectl create namespace nodeport-validator # 安装 Helm Chart helm install nodeport-validator ./charts/nodeport-validator \ --namespace nodeport-validator \ --set image.repository=your-registry/java-operator \ --set image.tag=1.0.0-SNAPSHOT ``` 3. 验证部署: ```bash # 检查 Pod 状态 kubectl get pods -n nodeport-validator # 检查 Webhook 配置 kubectl get validatingwebhookconfigurations # 检查证书 kubectl get certificate,issuer -n nodeport-validator ``` 4. 配置示例 ``` ## 配置参考 ### Helm Values | 参数 | 描述 | 默认值 | |------|------|--------| | `image.repository` | 镜像仓库 | `your-registry/java-operator` | | `image.tag` | 镜像标签 | `1.0.0-SNAPSHOT` | | `image.pullPolicy` | 镜像拉取策略 | `IfNotPresent` | | `webhook.namespace` | 部署命名空间 | `default` | | `webhook.failurePolicy` | Webhook 失败策略 | `Fail` | | `certManager.enabled` | 启用 cert-manager | `true` | | `certManager.issuerName` | 证书签发者名称 | `nodeport-validator-issuer` | | `resources.limits.cpu` | CPU 限制 | `1000m` | | `resources.limits.memory` | 内存限制 | `768Mi` | | `resources.requests.cpu` | CPU 请求 | `500m` | | `resources.requests.memory` | 内存请求 | `512Mi` | ## 监控和维护 ### 查看��志 ```bash # 查看 Pod 日志 kubectl logs -n nodeport-validator -l app=nodeport-validator # 查看事件 kubectl get events -n nodeport-validator ``` ### 更新部署 ```bash # 更新 Helm release helm upgrade nodeport-validator ./charts/nodeport-validator \ --namespace nodeport-validator \ --set image.tag=new-version ``` ### 清理 ```bash # 卸载 Helm release helm uninstall nodeport-validator -n nodeport-validator # 删除命名空间 kubectl delete namespace nodeport-validator # 删除 ValidatingWebhookConfiguration kubectl delete validatingwebhookconfigurations nodeport-validator ``` ## 故障排查 ### 常见问题 1. Webhook 未生效 - 检查证书是否正确生成 - 验证 ValidatingWebhookConfiguration 配置 - 检查 Pod 日志 2. 证书问题 - 确认 cert-manager 运行正常 - 检查 Certificate 和 Issuer 资源状态 ```bash kubectl describe certificate -n nodeport-validator kubectl describe issuer -n nodeport-validator ``` 3. Pod 启动失败 - 检查资源限制 - 验证镜像拉取配置 - 查看详细事件 ```bash kubectl describe pod -n nodeport-validator ``` ## 开发指南 ### 本地开发环境 1. 安装依赖: ```bash mvn clean install ``` 2. 运行测试: ```bash mvn test ``` 3. 本地调���: ```bash mvn spring-boot:run ``` ### 代码提交规范 - 遵循 Angular 提交消息规范 - 提交前运行测试 - 更新相关文档 ## 贡献指南 1. Fork 项目 2. 创建特性分支 3. 提交更改 4. 推送到分支 5. 创建 Pull Request ## 许可证 [MIT License](LICENSE) ``` 这个完善后的 README.md 包含了: - 详细的构建和打包说明 - 完整的部署步骤 - 配置参数参考 - 监控和维护指南 - 更详细的故障排查说明 - 开发指南和代码提交规范 ``` #### help + 镜像同步 https://github.com/Git4Mark/DockerTarBuilder/actions + java-operator https://github.moeyy.xyz/https://github.com/operator-framework/josdk-spring-boot-starter.git