higress 本地k8s环境配置与运行_专家答疑样例-Higress官网
云栖回顾 | 2024 云栖大会微服务和网关相关演讲材料点此了解

higress 本地k8s环境配置与运行

发布时间 2024-09-26


用户问题 :

higress 本地k8s环境配置与运行


专家官方解答 :

为了在本地Kubernetes(k8s)环境中配置与运行Higress网关,我们可以遵循以下详细步骤,这些步骤基于提供的知识内容:

环境准备

确保你已具备以下基础环境:

  • 安装了kubectl
  • 对于Mac/Linux用户,具备执行Bash脚本的能力。
  • 对于Windows用户,安装了kind.exekubectl.exe

阶段一:创建本地K8s集群

  1. 配置集群: 创建一个名为cluster.conf的文件,内容应包含节点角色和额外端口映射配置,以确保Higress可以通过80和443端口访问:

    kind: Cluster
    apiVersion: kind.x-k8s.io/v1alpha4
    nodes:
    - role: control-plane
    kubeadmConfigPatches:
    - |
    kind: InitConfiguration
    nodeRegistration:
    kubeletExtraArgs:
    node-labels: "ingress-ready=true"
    extraPortMappings:
    - containerPort: 80
    hostPort: 80
    protocol: TCP
    - containerPort: 443
    hostPort: 443
    protocol: TCP
  2. 创建集群: 根据你的操作系统执行相应的命令:

    • Mac/Linux:
      Terminal window
      kind create cluster --name higress --config=cluster.conf
      kubectl config use-context kind-higress
    • Windows:
      Terminal window
      kind.exe create cluster --name higress --config=cluster.conf
      kubectl.exe config use-context kind-higress

阶段二:安装Higress

  1. 添加Higress Helm仓库:

    Terminal window
    helm repo add higress.io https://higress.io/helm-charts
  2. 安装Higress到本地集群: 本地安装时,使用global.local=true标志来指示Higress适应本地环境,并关闭可观测性特性(如果不需要)以简化配置:

    Terminal window
    helm install higress -n higress-system higress.io/higress --create-namespace --render-subchart-notes --set global.local=true --set global.o11y.enabled=false

阶段三:配置示例服务与路由

  1. 创建示例服务(可选,用于验证配置): 使用提供的YAML模板创建一个简单的服务foo-app及其服务foo-service,用于测试路由配置:

    Terminal window
    kubectl apply -f - <<EOF
    apiVersion: v1
    kind: Pod
    metadata:
    name: foo-app
    labels:
    app: foo
    spec:
    containers:
    - name: foo-app
    image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/http-echo:0.2.4-alpine
    args:
    - "-text=foo"
    ---
    apiVersion: v1
    kind: Service
    metadata:
    name: foo-service
    spec:
    selector:
    app: foo
    ports:
    - port: 5678
    EOF
  2. 配置路由:

    • 方法一(推荐): 使用Higress Console图形界面配置,通过hgctl dashboard console命令访问控制台后,根据UI指引创建域名和路由规则。
    • 方法二: 直接通过Ingress CRD配置,使用如下YAML创建Ingress资源指向服务foo-service
      Terminal window
      kubectl apply -f - <<EOF
      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
      name: foo
      annotations:
      ingressclass.kubernetes.io/is-default-class: "true"
      spec:
      ingressClassName: higress
      rules:
      - host: foo.bar.com
      http:
      paths:
      - pathType: Prefix
      path: "/foo"
      path: /
      backend:
      service:
      name: foo-service
      port:
      number: 5678
      EOF

阶段四:请求验证

  1. 验证配置: 确认Higress已成功配置并路由到服务,执行如下命令(确保你的本地DNS解析或/etc/hosts文件正确设置了foo.bar.com指向Higress的IP地址):
    Terminal window
    curl http://foo.bar.com/foo -H 'host: foo.bar.com'

总结

以上步骤详细说明了如何在本地Kubernetes环境中配置与运行Higress网关,包括集群的创建、Higress的安装、服务及路由的配置,以及最终的验证过程。请根据实际需求选择合适的服务配置方式,并确保每一步操作均执行成功。

---------------

参考链接 :

  • 专家经验:higress 快速开始

---------------

答疑服务说明:

本内容经由技术专家审阅的用户问答的镜像生成,我们提供了专家智能答疑服务,使用方法: 用法1: 在页面的右下的浮窗”专家答疑“。 用法2: 点击专家答疑页(针对部分网站不支持插件嵌入的情况)

另:

有其他开源产品的使用问题?点击访问阿里AI专家答疑服务

反馈

如问答有错漏,欢迎点:差评给我们反馈。