文档

部署httpbin应用

httpbin是一个用于测试的开源应用,常用于Web调试。部署该应用后,您可以方便地查看HTTP请求的Method、Header和授权等信息。本文介绍如何部署httpbin应用。

前提条件

操作步骤

  1. 在数据面集群中部署httpbin应用。

    1. 使用以下内容,创建httpbin-application.yaml

      展开查看httpbin-application.yaml

      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: httpbin
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: httpbin
        labels:
          app: httpbin
          service: httpbin
      spec:
        ports:
        - name: http
          port: 8000
          targetPort: 80
        selector:
          app: httpbin
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: httpbin
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: httpbin
            version: v1
        template:
          metadata:
            labels:
              app: httpbin
              version: v1
          spec:
            serviceAccountName: httpbin
            containers:
            - image: docker.io/kennethreitz/httpbin
              imagePullPolicy: IfNotPresent
              name: httpbin
              ports:
              - containerPort: 80
    2. 使用kubectl连接到ACK集群,执行以下命令,部署httpbin应用。

      kubectl apply -f httpbin-application.yaml
  2. 配置httpbin应用的流量规则。

    1. 使用以下内容,创建网关规则。具体操作,请参见管理网关规则

      apiVersion: networking.istio.io/v1beta1
      kind: Gateway
      metadata:
        name: httpbin
        namespace: default
      spec:
        selector:
          istio: ingressgateway
        servers:
          - hosts:
              - '*'
            port:
              name: test
              number: 80
              protocol: HTTP
    2. 使用以下内容,创建虚拟服务。具体操作,请参见管理虚拟服务

      apiVersion: networking.istio.io/v1beta1
      kind: VirtualService
      metadata:
        name: httpbin-vs
        namespace: default
      spec:
        gateways:
          - httpbin
        hosts:
          - '*'
        http:
          - name: test
            route:
              - destination:
                  host: httpbin.default.svc.cluster.local
                  port:
                    number: 8000
  3. 进行访问测试。

    请将下文命令中的${ASM网关IP}替换为实际的网关地址。关于如何获取网关地址,请参见获取入口网关地址

    1. 执行以下命令,访问httpbin的/status/200

      curl http://${ASM网关IP}/status/200 -v

      返回200 OK

    2. 执行以下命令,访问httpbin的/status/418

      curl http://${ASM网关IP}/status/418 -v

      返回418 Unknown

    3. 执行以下命令,访问httpbin的/status/403

      curl http://${ASM网关IP}/status/403 -v

      返回403 Forbidden

    4. 执行以下命令,访问httpbin的/headers

      curl http://${ASM网关IP}/headers -H test-header:test-value  -v

      Response会返回请求中携带的Header。

  • 本页导读 (1)
文档反馈