{"id":16767853,"url":"https://github.com/eolinker/apinto-ingress-controller","last_synced_at":"2026-03-08T02:05:24.239Z","repository":{"id":43000955,"uuid":"472284132","full_name":"eolinker/apinto-ingress-controller","owner":"eolinker","description":null,"archived":false,"fork":false,"pushed_at":"2022-03-24T04:07:28.000Z","size":341,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-14T06:09:58.953Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eolinker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-03-21T10:17:55.000Z","updated_at":"2023-07-25T14:55:39.000Z","dependencies_parsed_at":"2022-09-23T14:11:59.054Z","dependency_job_id":null,"html_url":"https://github.com/eolinker/apinto-ingress-controller","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eolinker%2Fapinto-ingress-controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eolinker%2Fapinto-ingress-controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eolinker%2Fapinto-ingress-controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eolinker%2Fapinto-ingress-controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eolinker","download_url":"https://codeload.github.com/eolinker/apinto-ingress-controller/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225901212,"owners_count":17542183,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T06:10:08.734Z","updated_at":"2026-03-08T02:05:19.197Z","avatar_url":"https://github.com/eolinker.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Apinto-Ingress-Controller\n\n​\t\tApinto-Ingress-Controller是Kubernetes集群中[Apinto网关](https://github.com/eolinker/apinto)的Ingress控制器，使得Apinto能够作为Ingress资源在集群中运作。\n​\t\t该控制器的所有配置均参考Apinto网关的配置格式，并以Kubernetes CRDs（自定义资源）实现。支持配置诸如`router`、`service`、`auth`等Apinto已实现的模块，同时也支持配置插件。\n\n\n\n## 概况\n\n* [部署](#部署)\n* [快速使用](#快速使用)\n* [联系我们](#联系我们)\n* [关于我们](#关于我们)\n\n\n\n## 部署\n\n由于现阶段不支持以**Helm chart**的方式进行部署，因此暂时以手动部署的形式进行说明。\n\n1. [集群内部署apinto集群](https://help.apinto.com/?path=/quick/arrange)\n\n2. 部署[secret](https://github.com/eolinker/apinto-ingress-controller/tree/main/samples/deploy/admission/admission_secret.yml)资源，用于配置controller内的admission server证书。可以使用[脚本](https://github.com/eolinker/apinto-ingress-controller/tree/main/build/secret/secret.sh)生成自签证书进行配置。\n\n   ```shell\n   kubectl create -f admission_secret.yml\n   ```\n\n3. 部署[configmap](https://github.com/eolinker/apinto-ingress-controller/tree/main/samples/deploy/configmap/controller_configmap.yml)资源来生成应用所需配置。\n\n   ```shell\n   kubectl create -f controller_configmap.yml\n   ```\n\n4. 部署[deployment](https://github.com/eolinker/apinto-ingress-controller/tree/main/samples/deploy/deployment/controller_deployment.yml)资源生成应用。\n\n   ```shell\n   kubectl create -f controller_deployment.yml\n   ```\n\n5. 部署[admission服务](https://github.com/eolinker/apinto-ingress-controller/tree/main/samples/deploy/admission/admission_servicce.yml)向validatingWebhook提供校验的服务\n\n   ```shell\n   kubectl create -f admission_service.yml\n   ```\n\n6. 部署[ValidatingWebhook](https://github.com/eolinker/apinto-ingress-controller/tree/main/samples/deploy/admission/webhook_configuration.yml)资源。\n\n   ```shell\n   kubectl create -f webhook_configuration.yml\n   ```\n\n\n\n以上部署所需yaml文件均在[此目录](https://github.com/eolinker/apinto-ingress-controller/tree/main/samples/deploy)。\n\n## 快速使用\n\n自定义资源的配置顺序与apinto一致，均有依赖关系。\n\n以配置路由以及服务为例：\n\n**服务 ** `service.yml`\n\n```yaml\napiVersion: apinto.com/v1beta\nkind: ApintoService\nmetadata:\n  name: demo-anonymous\nspec:\n  name: demo-anonymous\n  driver: http\n  desc: \"示例服务\"\n  timeout: 30000\n  anonymous:\n    type: round-robin\n    config: \"http://demo-apinto.eolink.com:8280\" #该接口返回http调用信息\n  retry: 2\n  rewrite_url: /\n```\n\n**路由** `router.yml`\n\n```yaml\napiVersion: apinto.com/v1beta\nkind: ApintoRouter\nmetadata:\n  name: apinto.router\nspec:\n  name: apinto.router# 路由名称\n  listen: 8080    # 监听端口\n  driver: http # 驱动\n  protocol: http\n  method:\n    - GET\n  rules:      # 规则列表\n    - location: \"/demo\"  # 匹配路径\n  target: demo-anonymous@service    # 目标服务ID，格式为：{服务名称}@service\n```\n\n```shell\nkubectl create -f service.yml\nkubectl create -f router.yml\n```\n\n创建完服务以及路由之后，调用apinto暴露到集群外的服务来查看是否存在该路由\n\n```shell\ncurl -X GET 'http://{node_ip}:{admin_port}/api/router/apinto.router'\n```\n\n返回\n\n```json\n{\n\t\"create\": \"2022-03-23 06:14:48\",\n\t\"driver\": \"http\",\n\t\"id\": \"apinto.router@router\",\n\t\"listen\": 8080,\n\t\"method\": [\"GET\"],\n\t\"name\": \"apinto.router\",\n\t\"profession\": \"router\",\n\t\"protocol\": \"http\",\n\t\"rules\": [{\n\t\t\"location\": \"/demo\"\n\t}],\n\t\"target\": \"demo-anonymous@service\",\n\t\"update\": \"2022-03-23 06:14:48\"\n}\n```\n\n通过调用apinto暴露到集群外的服务来请求该路由\n\n```shell\ncurl -X GET 'http://{node_ip}:{http_port}/demo'\n```\n\n返回\n\n```json\n{\n\t\"body\": \"\",\n\t\"header\": {\n\t\t\"Accept\": [\"*/*\"],\n\t\t\"User-Agent\": [\"curl/7.75.0\"],\n\t\t\"X-Forwarded-For\": [\"10.24.1.1,10.24.1.1\"]\n\t},\n\t\"host\": \"192.2.9.43:31080\",  \n\t\"method\": \"GET\",\n\t\"path\": \"/demo\",\n\t\"remote_addr\": \"192.4.5.22:19091\", \n\t\"url\": \"/demo\"\n}\n```\n备注：以上的ip数据非原始数据\n\n\n使用示例[点此](https://github.com/eolinker/apinto-ingress-controller/tree/main/samples/crd/v1/instance)进行跳转。\n\n## 联系我们\n\n- **QQ群**: 725853895\n- **Slack**：[加入我们](https://join.slack.com/t/slack-zer6755/shared_invite/zt-u7wzqp1u-aNA0XK9Bdb3kOpN03jRmYQ)\n- **官网**：[https://www.apinto.com](https://www.apinto.com/)\n- **论坛**：[https://community.apinto.com](https://community.apinto.com/)\n- **微信群**：\u003cimg src=\"https://user-images.githubusercontent.com/25589530/149860447-5879437b-3cda-4833-aee3-69a2e538e85d.png\" style=\"width:150px\" /\u003e\n\n## 关于我们\n\nEOLINK 是领先的 API 管理服务供应商，为全球超过3000家企业提供专业的 API 研发管理、API自动化测试、API监控、API网关等服务。是首家为ITSS（中国电子工业标准化技术协会）制定API研发管理行业规范的企业。\n\n官方网站：[https://www.eolink.com](https://www.eolink.com \"EOLINKER官方网站\")\n\n免费下载PC桌面端：[https://www.eolink.com/pc/](https://www.eolink.com/pc/ \"免费下载PC客户端\")\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feolinker%2Fapinto-ingress-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feolinker%2Fapinto-ingress-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feolinker%2Fapinto-ingress-controller/lists"}