Higress on K8s 5分钟开箱即用

本文涉及的产品
函数计算FC,每月15万CU 3个月
应用实时监控服务-用户体验监控,每月100OCU免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Higress on K8s 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
# 安装Higress
helm install higress higress.io/higress -n higress-system --create-namespace
# 安装Higress Console
helm 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 返回了 403image.png

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

image.png

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

image.png

Higress 开源社区


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

image.png

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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
10月前
|
Kubernetes 容器
在Kubernetes(k8s)中部署Higress时,查看Wasm插件日志的方法如下
在Kubernetes(k8s)中部署Higress时,查看Wasm插件日志的方法如下
183 1
|
Kubernetes 流计算 容器
Flink on k8s的话,怎么在容器运行前初始化一些脚本?
Flink on k8s的话,怎么在容器运行前初始化一些脚本?
108 1
|
10月前
|
Kubernetes Java 流计算
Flink application on k8s 有没有和 session 模式通过-C 指定额外的 jar 的相同功能啊?
Flink application on k8s 有没有和 session 模式通过-C 指定额外的 jar 的相同功能啊?
109 0
GreenPlum on K8s
GreenPlum on K8s
228 0
|
弹性计算 资源调度 Kubernetes
Flink三种集群模式,Standalone模式,Flink On YARN,Flink On K8S,这三种模式有啥优缺点,生产环境如何选择呢?
Flink三种集群模式,Standalone模式,Flink On YARN,Flink On K8S,这三种模式有啥优缺点,生产环境如何选择呢?
1260 3
|
10月前
|
Kubernetes 固态存储 容器
pulsar on k8s
pulsar on k8s
|
10月前
|
存储 Kubernetes Apache
pulsar on k8s 部署验证
pulsar on k8s 部署验证
|
10月前
|
分布式计算 Kubernetes Java
spark on k8s native
spark on k8s native
|
10月前
|
Kubernetes 容器
在Kubernetes(k8s)中部署Higress
在Kubernetes(k8s)中部署Higress
233 2
|
Kubernetes 监控 NoSQL
Gitlab on k8s最佳实践
Gitlab on k8s最佳实践
699 1

相关产品

  • 容器服务Kubernetes版