写点什么

Higress on K8s 5 分钟开箱即用

  • 2023-03-07
    浙江
  • 本文字数:1480 字

    阅读完需:约 5 分钟

作者:澄潭

Higress 简介

Higress 是云原生网关的提出者和定义者,实现了 K8s 的 Ingress API 标准,历经阿里双十一洪峰考验,对比 Ingress Nginx 具备以下优势:


image.png

5 分钟开箱即用

Step 0. 配置 ACK &准备应用

若 ACK 上没有安装其他 Ingress Provider,直接按后续步骤安装 Higress 即可。若 ACK 上已经安装了 Nginx Ingress 等 Ingress Provider,希望迁移到 Higress,请注意 Higress 默认只会监听 IngressClassName 为 higress 的 Ingress。可以通过 helm 参数设置 --set global.ingressClass="",这样 Higress 会监听所有 Ingress,从而实现平滑迁移。


image.png

ACK Ingress Provider 还可以选择 MSE Ingress,这是 Higress 的商业托管版,无需自己运维 Higress,提供 SLA 保障。可以在阿里云搜索“云原生网关”了解详情


首先安装一个 wordpress 应用,用于后续 Higress 的路由测试,可以直接在 ACK 应用市场安装:


image.png


创建成功后,为这个 wordpress-ack-wordpress-sample workload 创建一个虚拟集群 IP 类型的 service


image.png

Step 1. 安装 Higress (2 分钟)

可以使用 ACK 控制台的 CloudShell 直接完成 Higress 的安装


image.png


安装命令:


# 添加Higress的官方helm仓库helm repo add higress.io https://higress.io/helm-charts# 安装Higresshelm install higress higress.io/higress -n higress-system --create-namespace# 安装Higress Consolehelm install higress-console higress.io/higress-console -n higress-system
复制代码


安装完成后可以执行 kubectl get ing -n higress-system,看到已经有一个 higress-console Ingress 资源存在,这是 Higress UI 控制台的访问入口,ADDRESS 字段即 Higress 的公网访问 IP,可以修改本机 Hosts 文件,将 console.higress.io 解析至这个 ip,这样就可以用浏览器直接访问 http://console.higress.io


image.png


Higress 控制台目前处于 0.0.2 版本,正式生产可用版本将在 3 月份推出,当前版本尚未提供登陆认证功能,请勿用于生产,以免引入安全隐患


首先在 Higress 控制台创建一个 wordpress.higress.io 的域名


image.png


接着创建一条前缀匹配根路径的路由转发给 wordpress 应用


image.png


通过编辑本机 Hosts 文件,将 wordpress.higress.io 也解析到 Higress 的公网入口 IP,可以看到 wordpress 已经可以访问了


image.png

Step 2. 配置 ARMS 监控(2 分钟)

Higress 的指标支持多种方式对外暴露,这里以 Prometheus 为例,基于阿里云 ARMS Prometheus 实现监控大盘开箱即用。首先输入 ACK 名称,找到对应的 Prometheus 实例:


image.png


打开服务发现配置中 kubernetes-pods 的开关,支持从 pod annotation 中解析指标暴露地址


image.png


然后点击 grafana 工作区链接,跳转到 grafana 控制台


image.png


再 Dashboards 中点击 Import 导入 Higress 监控大盘的 Json 文件:


https://higress.io/grafana/dashboard.json


image.png


这样就可以看到 Higress 的监控大盘啦,撒花🎉


image.png

Step 3. 开启插件,WAF 防护为例(1 分钟)

Higress 除了支持很方便地开发自定义插件,也原生提供了多种开箱即用的插件:https://github.com/alibaba/higress/tree/main/plugins


这里以 WAF 插件(基于 corazawaf 开源的 Wasm 插件)为例,可以执行以下命令直接生效:


kubectl apply -f https://higress.io/samples/waf.yaml
复制代码


这里的配置是开启了全部的 OWASP CRS 规则


image.png


试试在 wordpress 中提交一个模拟 SQL 注入的评论


image.png


请求被识别为 SQL 注入,Higress 返回了 403


image.png


因为这个 Wasm 插件实现了指标上报,在 Higress 大盘可以看到被拦截的阶段和命中拦截的规则 ID


image.png


Higress 的日志中可以看到具体拦截原因


image.png

Higress 开源社区

欢迎加入 Higress 社区群,及时了解 Higress 动向:


image.png


点击此处访问 Higress 官网,了解更多相关信息

发布于: 刚刚阅读数: 3
用户头像

云原生技术是云时代释放云价值的最短路径。 2020-06-11 加入

还未添加个人简介

评论

发布
暂无评论
Higress on K8s 5分钟开箱即用_阿里云_阿里巴巴中间件_InfoQ写作社区