全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Menyebarkan aplikasi HTTPBin

更新时间:Jul 02, 2025

HTTPBin adalah aplikasi sumber terbuka yang digunakan untuk pengujian dan debugging web. Setelah menyebarkan HTTPBin, Anda dapat melihat metode, header, dan informasi otorisasi dari permintaan HTTP. Panduan ini menjelaskan cara menyebarkan aplikasi HTTPBin.

Prasyarat

Prosedur

  1. Sebarkan aplikasi HTTPBin di cluster Container Service for Kubernetes (ACK) pada bidang data.

    1. Gunakan konten berikut untuk membuat file httpbin-application.yaml:

      Kembangkan untuk melihat file 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: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/httpbin:0.1.0
              imagePullPolicy: IfNotPresent
              name: httpbin
              ports:
              - containerPort: 80
    2. Gunakan kubectl untuk terhubung ke cluster ACK dan jalankan perintah berikut untuk menyebarkan aplikasi HTTPBin:

      kubectl apply -f httpbin-application.yaml
  2. Konfigurasikan aturan lalu lintas untuk aplikasi HTTPBin.

    1. Gunakan konten berikut untuk membuat gateway Istio. Untuk informasi lebih lanjut, lihat Kelola gateway Istio.

      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. Gunakan konten berikut untuk membuat layanan virtual. Untuk informasi lebih lanjut, lihat Kelola layanan virtual.

      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. Lakukan pengujian akses.

    Ganti alamat IP gateway ASM dalam perintah berikut dengan alamat IP sebenarnya dari gateway ASM. Untuk informasi lebih lanjut tentang cara mendapatkan alamat IP gateway, lihat Dapatkan alamat IP gateway ingress.

    1. Jalankan perintah berikut untuk mengakses path /status/200 dari aplikasi HTTPBin:

      curl http://${alamat IP gateway ASM}/status/200 -v

      200 OK dikembalikan.

    2. Jalankan perintah berikut untuk mengakses path /status/418 dari aplikasi HTTPBin:

      curl http://${alamat IP gateway ASM}/status/418 -v

      418 Unknown dikembalikan.

    3. Jalankan perintah berikut untuk mengakses path /status/403 dari aplikasi HTTPBin:

      curl http://${alamat IP gateway ASM}/status/403 -v

      403 Forbidden dikembalikan.

    4. Jalankan perintah berikut untuk mengakses path /headers dari aplikasi HTTPBin:

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

      Respon berisi header yang dibawa dalam permintaan.

Operasi terkait

Anda juga dapat menyebarkan layanan sleep di cluster pada bidang data dan menggunakan layanan sleep untuk mengakses aplikasi HTTPBin guna memverifikasi bahwa aplikasi HTTPBin berhasil diterapkan.

  1. Gunakan konten berikut untuk membuat file sleep.yaml:

    ##################################################################################################
    # Contoh layanan sleep 
    ##################################################################################################
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: sleep
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: sleep
      labels:
        app: sleep
        service: sleep
    spec:
      ports:
      - port: 80
        name: http
      selector:
        app: sleep
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: sleep
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: sleep
      template:
        metadata:
          labels:
            app: sleep
        spec:
          terminationGracePeriodSeconds: 0
          serviceAccountName: sleep
          containers:
          - name: sleep
            image: registry.cn-hangzhou.aliyuncs.com/acs/curl:8.1.2
            command: ["/bin/sleep", "infinity"]
            imagePullPolicy: IfNotPresent
            volumeMounts:
            - mountPath: /etc/sleep/tls
              name: secret-volume
          volumes:
          - name: secret-volume
            secret:
              secretName: sleep-secret
              optional: true
    ---
  2. Jalankan perintah berikut untuk membuat layanan sleep:

    kubectl apply -f sleep.yaml -n default
  3. Jalankan perintah berikut untuk masuk ke terminal shell pod sleep:

    kubectl exec -it deploy/sleep -- sh
  4. Jalankan perintah berikut untuk mengirim permintaan ke aplikasi HTTPBin:

    curl -I http://httpbin:8000/headers

    Output yang diharapkan:

    HTTP/1.1 200 OK
    server: envoy
    date: Tue, 26 Dec 2023 07:23:49 GMT
    content-type: application/json
    content-length: 353
    access-control-allow-origin: *
    access-control-allow-credentials: true
    x-envoy-upstream-service-time: 1

    200 OK dikembalikan, yang menunjukkan bahwa akses berhasil. Aplikasi HTTPBin berhasil diterapkan.