httpbin是一个用于测试的开源应用,常用于Web调试。部署该应用后,您可以方便地查看HTTP请求的Method、Header和授权等信息。本文介绍如何部署httpbin应用。
前提条件
操作步骤
- 在数据面集群中部署httpbin应用。
- 使用以下内容,创建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
- 使用kubectl连接到ACK集群,执行以下命令,部署httpbin应用。
kubectl apply -f httpbin-application.yaml
- 使用以下内容,创建httpbin-application.yaml。
- 配置httpbin应用的流量规则。
- 使用以下内容,创建网关规则。具体操作,请参见管理网关规则。
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
- 使用以下内容,创建虚拟服务。具体操作,请参见管理虚拟服务。
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
- 使用以下内容,创建网关规则。具体操作,请参见管理网关规则。
- 进行访问测试。
- 执行以下命令,访问httpbin的
/status/200
。curl http://${ASM网关IP}/status/200 -v
返回200 OK
。 - 执行以下命令,访问httpbin的
/status/418
。curl http://${ASM网关IP}/status/418 -v
返回418 Unknown
。 - 执行以下命令,访问httpbin的
/status/403
。curl http://${ASM网关IP}/status/403 -v
返回403 Forbidden
。 - 执行以下命令,访问httpbin的
/headers
。curl http://${ASM网关IP}/headers -H test-header:test-value -v
Response会返回请求中携带的Header。
- 执行以下命令,访问httpbin的