[Gitops--5]APISIX

这篇具有很好参考价值的文章主要介绍了[Gitops--5]APISIX。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

APISIX

Apache APISIX是一款开源的高性能,动态云原生网关.Apache APISIX当前已经覆盖了API网关,LB,Ingress,Service,Mesh等多种场景

[Gitops--5]APISIX

1. APISIX部署

使用Helm Chart部署Apache APISIX Ingress Controller

Apache APISIX Ingress Controller目前和Apache APISIX网关是强关联的,且目前通过Apache APISIX Helm Charts同时部署Apache APISIX Gateway+Dashboard+Ingress Controller是最方便的,因此推荐使用Apache APISIX的Helm Chart进行整套组件部署

1.1 创建APISIX的Helm仓库

仓库地址
charts.apiseven.com

[Gitops--5]APISIX

[Gitops--5]APISIX

1.2 创建项目部署APISIX

创建apisix-system 项目

[Gitops--5]APISIX

1.3 创建应用

进入项目后,[应用负载] [应用] [创建] [从应用模板]

[Gitops--5]APISIX

选择apisix

[Gitops--5]APISIX

这里不需要改,直接点击安装

[Gitops--5]APISIX

这里版本后面会用到需要记录一下,最新版的3.2.0好像有点问题,选不上,这里就先选择3.1.1了

3.1.1

[Gitops--5]APISIX

修改helm配置

  allow:
    # -- The client IP CIDR allowed to access Apache APISIX Admin API service.
    ipList:
      - 192.168.31.0/24
 # 略
  
  plugins:
  #用以dashboard上展示服务信息
  - server-info  
  # 略
customPlugins:
  # -- Whether to configure some custom plugins
  enabled: false
  # -- the lua_path that tells APISIX where it can find plugins,
  # note the last ';' is required.
  luaPath: "/opts/custom_plugins/?.lua"
  plugins:
    # -- plugin name.
    ## 修改下面这行
    - name: "prometheus"
      # -- plugin attrs
      attrs:
      ## 修改下面这3行
        export_addr:
        ip: 0.0.0.0
        port: 9091
      # -- plugin codes can be saved inside configmap object.
      configMap:
        # -- name of configmap.
        ## 修改下面这行
        name: "prometheus"
# 略
serviceMonitor:
  # -- Enable or disable Apache APISIX serviceMonitor
  ## 修改下面这行
  enabled: true
  # -- namespace where the serviceMonitor is deployed, by default, it is the same as the namespace of the apisix
  ## 修改下面这行
  namespace: "apisix-system"
  
# 略
dashboard:
  # 修改下面这行
  enabled: true
  # 添加以下2行
  service:
    type: NodePort
# 修改以下几行
ingress-controller:
  enabled: true
  config:
    apisix:
      serviceNamespace: "apisix-system"
      adminAPIVersion: "v3"
    ServiceMonitor:
      enabled: true
      namespace: "apisix-system"
      interval: 15s

[Gitops--5]APISIX

等待创建完成

[Gitops--5]APISIX

[Gitops--5]APISIX

1.4 登录Apisix Dashboard

http://192.168.31.131:31869/

用户名/密码

admin/admin

[Gitops--5]APISIX

2. APISIX使用

2.1 创建应用及服务

[Gitops--5]APISIX

[Gitops--5]APISIX

创建无状态服务

[Gitops--5]APISIX

[Gitops--5]APISIX

创建服务

[Gitops--5]APISIX

存储卷默认就过

[Gitops--5]APISIX

点击创建

[Gitops--5]APISIX

下一步

[Gitops--5]APISIX

点击创建

[Gitops--5]APISIX

此时应用创建完成

[Gitops--5]APISIX

[Gitops--5]APISIX

2.2 创建路由

[Gitops--5]APISIX

[Gitops--5]APISIX

指定域名

[Gitops--5]APISIX

kubernetes.io/ingress.class: apisix

[Gitops--5]APISIX

应用路由被创建完成

[Gitops--5]APISIX

同时在APISIX的路由下也能看到该路由

[Gitops--5]APISIX

2.3 访问测试

先获取到apisix的端口

[Gitops--5]APISIX

看到这里的apisix-gateway的端口是30201

[Gitops--5]APISIX

修改pod中index.html内容

echo web-app1-deploy-1-v1-5cf8c95d74-bzpfm > /usr/share/nginx/html/index.html

[Gitops--5]APISIX

到hosts中绑定

192.168.31.131  ks-master.cluster.local ks-master web1.intra.com

此时再访问域名web1-intra.com

root@ks-master:~/openelb# curl http://web1.intra.com:30201/
web-app1-deploy-1-v1-5cf8d95d74-bzpfm

3. 结合OpenELB实现APISIX访问

上面实现了通过绑定节点nodeport方式来将流量转入apisix-gateway,但实际用户无法直接获取到该端口.

[Gitops--5]APISIX

[Gitops--5]APISIX

由于我们kubesphere环境中获取eip的名字

root@ks-master:~# kubectl get eip
NAME         CIDR                            USAGE   TOTAL
layer3-eip   192.168.31.210-192.168.31.220   1       11
	lb.kubesphere.io/v1alpha1: openelb
    protocol.openelb.kubesphere.io/v1alpha1: layer2
    eip.openelb.kubesphere.io/v1alpha2: layer3-eip

将以上值追加到注释中

[Gitops--5]APISIX

添加完成后,就会有外部ip出现
[Gitops--5]APISIX

修改hosts或dns后再次测试发现,此时就不需要再填写端口号,直接通过gateway地址进行绑定即可

root@ks-master:~# tail -1 /etc/hosts
192.168.31.211 web1.intra.com web2.intra.com web3.intra.com
root@ks-master:~# curl web1.intra.com
web1
root@ks-master:~# curl web2.intra.com
web2
root@ks-master:~# curl web3.intra.com
web3
# kubectl get eip
NAME         CIDR                            USAGE   TOTAL
layer3-eip   192.168.31.210-192.168.31.220   2       11

4. 自定义监控APISIX网关

4.1 暴露APISIX监控指标

[Gitops--5]APISIX

点击编辑

[Gitops--5]APISIX

有9091就可以,没有就加上

[Gitops--5]APISIX

4.2 创建ServiceMonitor

Kubesphere通过Prometheus Operator来维护Prometheus系统,通过创建ServiceMonitor实现指定接口的接入

这里app.kubernetes.io/version和helm.sh/chart的值来自于我们安装时的选择.

[Gitops--5]APISIX

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: apisix
  namespace: apisix-system
spec:
  endpoints:
    - scheme: http
      targetPort: prometheus
      path: /apisix/prometheus/metrics
      interval: 15s
  namespaceSelector:
    matchNames:
      - apisix-system
  selector:
    matchLabels:
      app.kubernetes.io/name: apisix
      app.kubernetes.io/version: 3.1.1
      helm.sh/chart: apisix-0.11.5

创建ServiceMonitor

# kubectl apply -f sm.yaml
Warning: resource servicemonitors/apisix is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
servicemonitor.monitoring.coreos.com/apisix configured

确认是否创建完成

[Gitops--5]APISIX

点击编辑

[Gitops--5]APISIX

可以看到内容和我们之前创建的是一样的

[Gitops--5]APISIX

4.3 项目级别的自定义监控

创建自定监控

[Gitops--5]APISIX

监控指标sum(apisix_nginx_http_current_connections)

[Gitops--5]APISIX

添加折线图

[Gitops--5]APISIX

图表名称: Nginx 连接状态
图例名称:{{state}}
监控指标:sum(apisix_nginx_http_current_connections) by (state)

[Gitops--5]APISIX

确认后将它保存为模板

[Gitops--5]APISIX

4.4 集群级别的监控

在[平台管理]中操作

[Gitops--5]APISIX

获取Grafana Dashboard的Json

[Gitops--5]APISIX

[Gitops--5]APISIX

[Gitops--5]APISIX

将json文件上传

[Gitops--5]APISIX

确认后自定义面板被创建

[Gitops--5]APISIX

相关数据也被采集到

[Gitops--5]APISIX文章来源地址https://www.toymoban.com/news/detail-432336.html

到了这里,关于[Gitops--5]APISIX的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开源浪潮下,Apache APISIX 如何成为全球最活跃 API 网关

    白泽平,Apache APISIX PMC 成员,目前主要在 APISIX 和周边项目 APISIX Dashboard 上进行相关贡献。本文整理自阿里云「中间件开发者 Meetup」中的议题分享。 Apache APISIX 是一个高性能的、动态的、实时的 API 网关,它是基于 NGINX 和 OpenResty 进行实现的。 作为一个脱胎于 NGINX 和 OpenRes

    2024年02月05日
    浏览(49)
  • 基于.NetCore高性能敏感词检测开源库

    🏆作者:科技、互联网行业优质创作者 🏆专注领域:.Net技术、软件架构、人工智能、数字化转型、DeveloperSharp、微服务、工业互联网、智能制造 🏆欢迎关注我(Net数字智慧化基地),里面有很多 高价值 技术文章, 是你刻苦努力也积累不到的经验 ,能助你快速成长。升职

    2024年02月21日
    浏览(44)
  • 对话InfoQ,聊聊百度开源高性能检索引擎 Puck

    近日,百度宣布在 Apache 2.0 协议下开源自研检索引擎 Puck,这也是国内首个适用于超大规模数据集的开源向量检索引擎。向量检索算法在个性化推荐系统、多模态检索、自然语言处理等应用场景中都发挥着重要作用,特别是在处理大规模数据和高维特征数据时。 名称“Puck”取

    2024年02月06日
    浏览(47)
  • 百度自研高性能ANN检索引擎,开源了

    作者 | Puck项目组 导读 Puck是百度自研的开源ANN检索引擎。Puck开源项目包含两种百度自研的检索算法,以高召回、高准确、高吞吐为目标,适用于多种数据规模和场景。随着业务发展不断的优化和迭代,进行充分的技术开发和测试,确保了技术的可靠性和成熟度。该项目于2

    2024年02月09日
    浏览(44)
  • 一个高性能类型安全的.NET枚举实用开源库

    从零构建.Net前后端分离项目 枚举应该是我们编程中,必不可少的了,今天推荐一个.NET枚举实用开源库,它提供许多方便的扩展方法,方便开发者使用开发。 01 项目简介 Enums.NET是一个.NET枚举实用程序库,专注于为枚举提供丰富的操作方法。它支持.NET Framework和.Net Core。它主

    2024年02月05日
    浏览(40)
  • 开源通用高性能的分布式id序列组件

    原文地址:https://ntopic.cn/p/2023062101/ Gitee源代码仓库:https://gitee.com/obullxl/sequence-jdbc GitHub源代码仓库:https://github.com/obullxl/sequence-jdbc 业务数据的存储,少不了数据记录的id序列。 id序列(或称序列)的生成方式有很多种,比如当前时间戳、数据库的序列值(Oracle的序列,MyS

    2024年02月11日
    浏览(81)
  • 可观测性革命 - 揭秘OpenObserve开源高性能云原生平台

      OpenObserve简介 OpenObserve  是一个开源的云原生可观测性平台,与 Elasticsearch 相比,存储成本降低了约 140 倍(实际结果可能因测试数据而有所不同),测试用例包括真实的日志数据,其显著降低运营成本,并提高了易用性。它可以扩展到PB级别的数据量,具有很高的性能,您

    2024年02月11日
    浏览(39)
  • 深入剖析gRPC:Google开源的高性能RPC框架

    在本篇文章中,我们将深入剖析gRPC,Google开源的高性能RPC框架。gRPC是一种基于HTTP/2的高性能、可扩展的RPC框架,它使用Protocol Buffers作为接口定义语言,可以在多种编程语言之间实现无缝通信。 gRPC的核心设计理念是:通过使用HTTP/2作为传输协议,实现高效、可扩展的RPC通信

    2024年02月19日
    浏览(55)
  • 字节跳动开源 Shmipc:基于共享内存的高性能 IPC

    动手点关注 干货不迷路 CloudWeGo - Shmipc 是字节跳动服务框架团队研发的 高性能进程间通讯库 ,它基于 共享内存 构建,具有 零拷贝 的特点,同时它引入的同步机制具有 批量收割 IO 的能力,相对于其他进程间通讯方式能明显提升性能。在字节内部,Shmipc 应用于 Service Mesh 场

    2023年04月08日
    浏览(48)
  • Nginx - ​一个高性能、灵活可靠的开源Web服务器

    Nginx是什么?   Nginx是一个 高性能的HTTP和反向代理web服务器 ,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。2011年6月1日,nginx 1.0.4发布。   特点是 占有

    2024年02月07日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包