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
Sebarkan aplikasi HTTPBin di cluster Container Service for Kubernetes (ACK) pada bidang data.
Gunakan konten berikut untuk membuat file httpbin-application.yaml:
Gunakan kubectl untuk terhubung ke cluster ACK dan jalankan perintah berikut untuk menyebarkan aplikasi HTTPBin:
kubectl apply -f httpbin-application.yaml
Konfigurasikan aturan lalu lintas untuk aplikasi HTTPBin.
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: HTTPGunakan 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
Lakukan pengujian akses.
Ganti
alamat IP gateway ASMdalam 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.Jalankan perintah berikut untuk mengakses path
/status/200dari aplikasi HTTPBin:curl http://${alamat IP gateway ASM}/status/200 -v200 OKdikembalikan.Jalankan perintah berikut untuk mengakses path
/status/418dari aplikasi HTTPBin:curl http://${alamat IP gateway ASM}/status/418 -v418 Unknowndikembalikan.Jalankan perintah berikut untuk mengakses path
/status/403dari aplikasi HTTPBin:curl http://${alamat IP gateway ASM}/status/403 -v403 Forbiddendikembalikan.Jalankan perintah berikut untuk mengakses path
/headersdari aplikasi HTTPBin:curl http://${alamat IP gateway ASM}/headers -H test-header:test-value -vRespon 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.
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 ---Jalankan perintah berikut untuk membuat layanan sleep:
kubectl apply -f sleep.yaml -n defaultJalankan perintah berikut untuk masuk ke terminal
shellpod sleep:kubectl exec -it deploy/sleep -- shJalankan perintah berikut untuk mengirim permintaan ke aplikasi HTTPBin:
curl -I http://httpbin:8000/headersOutput 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: 1200 OK dikembalikan, yang menunjukkan bahwa akses berhasil. Aplikasi HTTPBin berhasil diterapkan.