k8s中apisix网关部署
  qv8Zky6mkdKX 2023年12月06日 53 0

Apache APISIX 是 Apache 软件基金会下的顶级项目,由 API7.ai 开发并捐赠。它是一个具有动态、实时、高性能等特点的云原生 API 网关。

你可以使用 APISIX 网关作为所有业务的流量入口,它提供了动态路由、动态上游、动态证书、A/B 测试、灰度发布(金丝雀发布)、蓝绿部署、限速、防攻击、收集指标、监控报警、可观测、服务治理等功能。

官网链接:https://apisix.apache.org/zh/docs/apisix/getting-started/README/

本文主要通过helm进行部署,安装helm方式比较简答这里省略了,需要注意的是apisix的配置路由等信息都是存在etcd的所以需要部署etcd集群,集群可以在k8s内部也可以单独部署,这里使用helm统一部署到k8s集群内了,生产环境如果在k8s集群内一定要将相关存储挂载出来避免服务重启后数据丢失造成不必要的故障问题。

  1. 先安装helm这里省略直接第二步。
  2. 设置helm源
helm repo add apisix https://charts.apiseven.com
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
  1. 部署crd 如果要指定命名空间需要修改,里面有镜像必须科学上网才能拉去下来所以最后提前准备好。

    文件中用到的镜像国内地址:

    registry.cn-beijing.aliyuncs.com/public-lib/admission-server:v0.5.0

   registry.cn-beijing.aliyuncs.com/public-lib/kube-webhook-certgen:v1.1.1


kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v0.5.0/standard-install.yaml

   

  1. 部署apisix

    

ADMIN_API_VERSION=v3
helm install apisix apisix/apisix \
  —set gateway.type=NodePort \
  —set ingress-controller.enabled=true \
  —create-namespace \
  —namespace ingress-apisix \
  —set ingress-controller.config.apisix.serviceNamespace=ingress-apisix \
—set ingress-controller.config.kubernetes.enableGatewayAPI=true \
  —set ingress-controller.config.apisix.adminAPIVersion=$ADMIN_API_VERSION
kubectl get service —namespace ingress-apisix
  1. 创建路由规则测试。
vim router.yaml
apiVersion: apisix.apache.org/v2
kind: ApisixRoute
metadata:
  name: test
  namespace: test-vice
spec:
  http:
  - name: test
    match:
      hosts:
      - test001.cdd.group
      paths:
      - /*
      # 根据请求头匹配路由,必须携带头部
      #exprs:
      #- subject:
      #    scope: Header
      #    name: server
      #  op: Equal
      #  value: webserver
    backends:
      - serviceName: new-platform-web
        servicePort: 80



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月06日 0

暂无评论

推荐阅读
  jnZtF7Co41Wg   2023年11月22日   14   0   0 linuxApacheci
  cO5zyEmh8RH6   2023年12月09日   14   0   0 k8s证书
  9JCEeX0Eg8g4   2023年12月10日   14   0   0 应用程序javaApache
  KRsXEGSB49bk   2023年11月27日   11   0   0 javaApache
  jnZtF7Co41Wg   2023年11月24日   17   0   0 mysqlApachecentos