Kubernetes Higress 安装与测试文档

发布时间:2026/6/8 13:58:03

Kubernetes Higress 安装与测试文档 Kubernetes Higress 安装与测试文档本文档介绍如何在 Kubernetes 集群中使用 Helm 以HostNetwork DaemonSet模式部署 Higress并通过一个简单的 Nginx 应用验证路由是否生效。文档整体结构参考现有Nginx Ingress Controller安装文档但安装方式切换为 Higress 官方 Helm Chart适用于裸机和自建 Kubernetes 集群场景。零、安装 Helm如已安装可跳过在部署 Higress 之前需要确保主控节点上已经安装了 Helm 工具。# 下载安装脚本curl-fsSL-oget_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3# 赋予执行权限chmod700get_helm.sh# 执行安装./get_helm.sh# 验证安装是否成功helm version一、准备 Helm 仓库1. 添加官方仓库并更新# 添加 Higress 官方 Helm 仓库helm repoaddhigress.io https://higress.io/helm-charts# 更新本地仓库缓存helm repo update# 查看可用 chart 版本helm search repo higress.io/higress-l2. 说明Higress 官方 Helm Chart 默认即可直接安装不需要像ingress-nginx那样单独下载 Chart 包再解压处理。另外Higress 官方镜像使用独立镜像仓库通常不受 Docker Hub 访问限制影响。二、部署模式说明Higress 安装完成后数据面组件是higress-gateway控制面组件是higress-controller。本文档统一采用HostNetwork DaemonSet模式部署适用于不支持LoadBalancer的裸机集群让 Higress 直接监听节点上的80/443端口。如果你当前是三台物理机自建 Kubernetes 集群这种方式通常比LoadBalancer模式更直接也更符合实际使用场景。三、安装 HigressHostNetwork DaemonSet 安装建议使用以下方式部署cathigress-values.yamlEOF global: ingressClass: higress higress-core: gateway: kind: DaemonSet hostNetwork: true EOFhelminstallhigress higress.io/higress\-nhigress-system\--create-namespace\-fhigress-values.yaml卸载命令如果之前安装失败可以先执行卸载helm uninstall higress-nhigress-system四、检查 Higress 运行状态1. 查看 Pod 状态kubectl get pods-nhigress-system正常情况下应该至少看到以下组件处于Running状态higress-controllerhigress-gateway2. 查看 Servicekubectl get svc-nhigress-system说明即使采用HostNetwork DaemonSet模式集群中仍然会创建higress-gateway对应的 Service用于集群内部发现对外访问仍以节点 IP 的80/443端口为主。3. 查看 IngressClasskubectl get ingressclass正常情况下会看到higress这个IngressClass。4. 查看 Higress 监听方式由于本文档采用的是HostNetwork DaemonSet模式因此可以直接使用运行 Higress Gateway 的节点 IP通过80/443端口访问。例如kubectl get pods-nhigress-system-owide五、部署测试应用部署一个简单的 Nginx 网页服务并为其创建 Service 和 Ingress 路由规则。1. 创建部署文件my-nginx.yamlapiVersion:apps/v1kind:Deploymentmetadata:name:my-nginxspec:selector:matchLabels:run:my-nginxreplicas:2template:metadata:labels:run:my-nginxspec:containers:-name:my-nginximage:nginx:latestresources:limits:memory:128Micpu:500mports:-containerPort:80---apiVersion:v1kind:Servicemetadata:name:nginx-servicespec:selector:run:my-nginxtype:ClusterIPports:-protocol:TCPport:8080targetPort:80---apiVersion:networking.k8s.io/v1kind:Ingressmetadata:name:example-ingressspec:ingressClassName:higressrules:-host:test.higress.comhttp:paths:-path:/pathType:Prefixbackend:service:name:nginx-serviceport:number:80802. 应用配置kubectl apply-fmy-nginx.yaml3. 查看资源状态kubectl get pod,svc,ingress六、验证访问1. 检查 Ingress 是否被 Higress 接管kubectl describe ingress example-ingress重点确认以下内容Ingress Class为higress规则中的 Host 为test.higress.com后端 Service 为nginx-service:80802. 通过节点 IP 测试访问可以直接把域名解析到任意一台运行higress-gateway的节点 IP然后发起请求curl-HHost: test.higress.comhttp://运行Higress的Node_IP或者先在本机/etc/hosts中添加运行Higress的Node_IPtest.higress.com然后直接访问curlhttp://test.higress.com如果返回了标准的 Nginx 欢迎页面Welcome to nginx!则说明 Higress 已经成功接管 Ingress 并完成转发。七、常用排查命令1. 查看 Higress 相关资源kubectl get all-nhigress-system2. 查看网关日志kubectl logs-nhigress-system$(kubectl get pods-nhigress-system|awk/higress-gateway/ {print $1; exit})--tail1003. 查看控制器日志kubectl logs-nhigress-system$(kubectl get pods-nhigress-system|awk/higress-controller/ {print $1; exit})--tail1004. 查看测试应用日志kubectl logs-lrunmy-nginx--tail1005. 重新安装或升级helm upgrade higress higress.io/higress\-nhigress-system\--reuse-values八、补充说明1. 关于 Ingress 兼容性Higress 支持作为 Kubernetes Ingress 网关使用并兼容大量常见的 Nginx Ingress 使用方式。因此对于已经在使用Ingress资源的业务通常只需要把ingressClassName改为higress即可完成基础迁移验证。2. 关于 Gateway APIHigress 除了支持传统Ingress也支持Gateway API。如果后续你希望从Ingress逐步演进到更强的网关模型可以在安装完成后再启用Gateway API支持。3. 关于 TLS 与证书如果你已经在集群中部署了cert-manager后续可以直接为 Higress 配置 HTTPS 证书与Nginx Ingress的证书使用方式类似。

相关新闻