Tutorial ini menunjukkan cara menggunakan Enjin Google Kubernetes (GKE) untuk mendedahkan aplikasi web anda kepada Internet pada alamat IP luaran statik dan mengkonfigurasi nama domain untuk menghala ke aplikasi anda Tutorial ini menganggap anda memiliki nama domain berdaftar, seperti example.com Anda boleh mendaftar nama domain melalui Google Domain atau pendaftar domain anda yang lain pilihan jika anda tidak mempunyai satu ## Objektif Tutorial ini menunjukkan langkah-langkah berikut: ## Kos Tutorial ini menggunakan komponen Google Cloud yang boleh dibilkan berikut: Untuk menjana anggaran kos berdasarkan unjuran penggunaan anda, gunakan kalkulator harga Apabila anda menyelesaikan tutorial ini, anda boleh mengelakkan pengebilan berterusan dengan memadamkan sumber yang anda buat. Untuk maklumat lanjut, lihat Membersihkan ## Sebelum anda mulaAmbil langkah berikut untuk mendayakan API Enjin Kubernetes: - Lawati halaman Enjin Kubernetes dalam konsol Google Cloud - Buat atau pilih projek - Tunggu API dan perkhidmatan berkaitan didayakan. Ini boleh mengambil masa beberapa minit - Pastikan pengebilan didayakan untuk projek Awan anda. Ketahui cara menyemak sama ada pengebilan didayakan pada projek Pasang alat baris arahan berikut yang digunakan dalam tutorial ini: - gcloudis digunakan untuk mencipta dan memadam gugusan Enjin Kubernetes gcloudis termasuk dalam gcloudCLI - kubectlis digunakan untuk mengurus Kubernetes, sistem orkestrasi kelompok yang digunakan oleh Enjin Kubernetes. Anda boleh memasang kubectlusing gcloud: komponen gcloud memasang kubectl Klonkan kod sampel daripada GitHub: klon git httpsgithub.com/GoogleCloudPlatform/kubernetes-engine-samples cd kubernetes-engine-samples/hello-app/manifests Tetapkan lalai untuk Untuk menjimatkan masa menaip ID projek anda dan pilihan zon Enjin Kira dalam alat baris arahan gcloud gcloudcommand-line tool, anda boleh menetapkan lalai: projek set konfigurasi gcloud project-idgcloud config set compute/zone compute-zone Buat gugusan Buat gugusan kontena bernama ujian domain untuk menggunakan aplikasi web anda: kluster kontena gcloud mencipta ujian domain ## Menggunakan aplikasi web anda Manifes berikut menerangkan Deployment yang menjalankan contoh imej bekas aplikasi web: # Hak Cipta 2021 Google LLC # # Dilesenkan di bawah Lesen Apache, Versi 2.0 ("Lesen # anda tidak boleh menggunakan fail ini kecuali mematuhi Lesen. # Anda boleh mendapatkan salinan Lesen di # # httpwww.apache.org /licenses/LESEN-2.0 # # Melainkan diperlukan oleh undang-undang yang terpakai atau dipersetujui secara bertulis, perisian # yang diedarkan di bawah Lesen diedarkan pada ASAS "SEBAGAIMANA ADANYA", # TANPA JAMINAN ATAU SYARAT APA-APA, sama ada nyata atau tersirat. # Lihat Lesen untuk bahasa tertentu yang mengawal kebenaran dan # had di bawah Lesen. apiVersion: apps/v1 kind: Metadata penyebaran: nama: helloweb labels: app: hello spec: selector: matchLabels: app: hello tier: templat web: metadata: label: app: hello tier: web spec: containers: - nama: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 ports: - containerPort: 8080 resources: requests : cpu: 200m Jalankan arahan berikut untuk mencipta Deployment: kubectl apply -f helloweb-deployment.yaml ## Mendedahkan permohonan anda Anda boleh mendedahkan aplikasi anda pada GKE menggunakan salah satu kaedah berikut: Gunakan Perkhidmatan, yang mencipta Pengimbang Beban Rangkaian TCP yang berfungsi dengan alamat IP serantau. Gunakan Ingress, yang mencipta Pengimbang Beban HTTP(S) dan menyokong alamat IP global Untuk mengetahui lebih lanjut tentang kebaikan dan keburukan setiap kaedah, rujuk kepada Penyediaan Pengimbangan Beban HTTP(S) dengan Ingress Gunakan Perkhidmatan Untuk memastikan aplikasi anda mempunyai alamat IP awam statik, anda mesti menempah alamat IP statik Jika anda memilih untuk mendedahkan aplikasi anda menggunakan Perkhidmatan, anda mesti mencipta alamat IP serantau. Alamat IP global hanya berfungsi dengan jenis sumber Ingress, seperti yang dijelaskan dalam bahagian seterusnya Untuk menggunakan Perkhidmatan, buat alamat IP statik bernama helloweb-ip dalam wilayah us-central1: gcloud alamat pengiraan gcloud mencipta helloweb-ip --region us-central1 Untuk mencari alamat IP statik yang anda buat, jalankan arahan berikut: alamat pengiraan gcloud menerangkan helloweb-ip --region us-central1Output: alamat: 203.0.113.32 .. Penyambung Konfigurasi **Nota Langkah ini memerlukan Penyambung Konfigurasi. Ikut arahan pemasangan untuk memasang Config Connector pada kluster anda apiVersion: compute.cnrm.cloud.google.com/v1beta1 jenis: ComputeAddress metadata: nama: helloweb-ip spec: lokasi: us-central1 kubectl apply -f compute-address-regional.yamlUntuk mencari alamat IP statik, jalankan arahan berikut: kubectl dapatkan computeaddress helloweb-ip -o jsonpathspec.address}'Manifes berikut menerangkan Perkhidmatan jenis LoadBalancer, yang mencipta pengimbang beban rangkaian untuk mendedahkan Pod dengan IP awam Gantikan `YOUR.IP.ADDRESS.HERE` dengan alamat IP statik: # Hak Cipta 2021 Google LLC # # Dilesenkan di bawah Lesen Apache, Versi 2.0 ("Lesen # anda tidak boleh menggunakan fail ini kecuali mematuhi Lesen. # Anda boleh mendapatkan salinan Lesen di # # httpwww.apache.org /licenses/LESEN-2.0 # # Melainkan diperlukan oleh undang-undang yang terpakai atau dipersetujui secara bertulis, perisian # yang diedarkan di bawah Lesen diedarkan pada ASAS "SEBAGAIMANA ADANYA", # TANPA JAMINAN ATAU SYARAT APA-APA, sama ada nyata atau tersirat. # Lihat Lesen untuk bahasa tertentu yang mengawal kebenaran dan # had di bawah Lesen. apiVersion: v1 kind: Service metadata: name: helloweb labels: app: hello spec: selector: app: hello tier: web ports: - port: 80 targetPort: Jenis 8080: LoadBalancer loadBalancerIP: "ANDA.IP.ALAMAT.DI SINI"Kemudian, buat Perkhidmatan: kubectl apply -f helloweb-service-static-ip.yaml Untuk melihat alamat IP terpelihara yang dikaitkan dengan pengimbang beban: kubectl dapatkan serviceOutput: NAMA KLUSTER-IP LUAR-IP PORT(S) AGE helloweb 10.31.254.176 203.0.113.32 80:30690/TCP 54s Gunakan Ingress Jika anda memilih untuk mendedahkan aplikasi anda menggunakan Ingress, yang mencipta Pengimbang Beban HTTP(S), anda mesti menempah alamat IP statik global. Alamat IP serantau tidak berfungsi dengan Ingress Untuk mengetahui lebih lanjut tentang cara menggunakan Ingress untuk mendedahkan aplikasi anda kepada internet, rujuk tutorial Menyediakan HTTP(S) Load Balancing dengan Ingress Untuk mencipta alamat IP statik global bernama helloweb-ip: gcloud alamat pengiraan gcloud mencipta helloweb-ip --global Untuk mencari alamat IP statik yang anda buat: alamat pengiraan gcloud menerangkan helloweb-ip --globalOutput: alamat: 203.0.113.32 .. Penyambung Konfigurasi **Nota Langkah ini memerlukan Penyambung Konfigurasi. Ikut arahan pemasangan untuk memasang Config Connector pada kluster anda apiVersion: compute.cnrm.cloud.google.com/v1beta1 jenis: ComputeAddress metadata: nama: helloweb-ip spec: lokasi: global kubectl apply -f compute-address-global.yaml Manifes berikut menerangkan Ingress bahawa aplikasi web pada IP statik dengan dua sumber: - A Perkhidmatan dengan jenis:NodePort - An Ingressconfigured dengan nama perkhidmatan dan anotasi IP statik # Hak Cipta 2021 Google LLC # # Dilesenkan di bawah Lesen Apache, Versi 2.0 ("Lesen # anda tidak boleh menggunakan fail ini kecuali mematuhi Lesen. # Anda boleh mendapatkan salinan Lesen di # # httpwww.apache.org /licenses/LESEN-2.0 # # Melainkan diperlukan oleh undang-undang yang terpakai atau dipersetujui secara bertulis, perisian # yang diedarkan di bawah Lesen diedarkan pada ASAS "SEBAGAIMANA ADANYA", # TANPA JAMINAN ATAU SYARAT APA-APA, sama ada nyata atau tersirat. # Lihat Lesen untuk bahasa tertentu yang mengawal kebenaran dan # had di bawah Lesen. apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: helloweb anotasi: kubernetes.io/ingress.global-static-ip-name: helloweb -ip label: app: hello spec: defaultBackend: service: name: helloweb-backend port: number: 8080apiVersion: v1 kind: Service metadata: name: helloweb-backend labels: app: hello spec: type: NodePort selector: app: hello peringkat: port web: - port: 8080 targetPort: 8080 The kubernetes.io/ingress.global-static-ip-name anotasi menentukan nama daripada sumber alamat IP global yang akan dikaitkan dengan HTTP(S) Load Pengimbang Gunakan sumber pada kluster: kubectl apply -f helloweb-ingress-static-ip.yamlOutput: masuk "helloweb"perkhidmatan yang dibuat "helloweb-backend"dicipta Untuk melihat alamat IP rizab yang dikaitkan dengan pengimbang beban: kubectl dapatkan ingressOutput: NAMA HOS ALAMAT PORTS AGE helloweb * 203.0.113.32 80 4m ## Melawat alamat IP statik simpanan anda Untuk mengesahkan bahawa pengimbang beban dikonfigurasikan dengan betul, anda boleh menggunakan a pelayar web untuk melawati alamat IP atau menggunakan keriting: curl http203.0.113.32/Output: Hai dunia! Nama hos: helloweb-3766687455-8lvqv ## Mengkonfigurasi rekod nama domain anda Untuk meminta pelayar menyoal nama domain anda, seperti example.com, atau subdomain nama, seperti blog.example.com, tuding ke alamat IP statik yang anda tempah, anda mesti mengemas kini rekod DNS (Domain Name Server) nama domain anda Anda mesti membuat satu **A** (Alamat) taip rekod DNS untuk domain atau subdomain anda nama dan mempunyai nilainya dikonfigurasikan dengan alamat IP terpelihara Rekod DNS domain anda diuruskan oleh pelayan nama anda. Pelayan nama anda mungkin "pendaftar"tempat anda mendaftarkan domain anda, perkhidmatan DNS seperti Cloud DNS atau pembekal pihak ketiga yang lain Jika pelayan nama anda ialah Cloud DNS:Ikuti panduan Mula Pantas DNS Awan untuk mengkonfigurasi rekod DNS A untuk nama domain anda dengan alamat IP terpelihara bagi aplikasi anda. Jika pelayan nama anda ialah pembekal lain: Rujuk kepada dokumentasi perkhidmatan DNS anda tentang menetapkan rekod DNS A untuk mengkonfigurasi nama domain anda. Jika anda memilih untuk menggunakan Cloud DNS sebaliknya, rujuk kepada Migrasi ke Cloud DNS ## Melawat nama domain anda Untuk mengesahkan bahawa DNS A nama domain anda merekodkan kepada alamat IP yang anda tempah, lawati nama domain anda Untuk membuat pertanyaan DNS untuk rekod A nama domain anda, jalankan tuan rumah perintah: hos example.comOutput: example.com mempunyai alamat 203.0.113.32 Pada ketika ini, anda boleh menghalakan pelayar web anda ke nama domain anda dan melawati tapak web anda! ## Bersihkan Untuk mengelak daripada dikenakan caj ke akaun Google Cloud anda untuk sumber yang digunakan dalam tutorial ini, sama ada padamkan projek yang mengandungi sumber atau simpan projek dan padamkan sumber individu Padamkan sumber pengimbangan beban: kubectl delete ingress,service -l app=hello Lepaskan IP statik yang dikhaskan. Selepas pengimbang beban dipadamkan, alamat IP yang tidak digunakan tetapi dikhaskan tidak lagi percuma dan dibilkan mengikut harga alamat IP yang tidak digunakan. Jalankan arahan berikut untuk melepaskan sumber IP statik: Jika anda menggunakan Perkhidmatan: alamat pengiraan gcloud memadam helloweb-ip --region us-central1 Jika anda menggunakan Ingress: alamat pengiraan gcloud memadam helloweb-ip --global - Padamkan contoh aplikasi: kubectl delete -f helloweb-deployment.yaml Tunggu sehingga pengimbang beban dipadamkan dengan melihat output arahan berikut. Output tidak seharusnya menunjukkan peraturan pemajuan yang mengandungi "helloweb"dalam namanya: senarai peraturan pemajuan pengiraan gcloud Padamkan kelompok kontena: kluster bekas gcloud memadam ujian domain ## Apa yang akan datang Daftar nama domain anda sendiri melalui Google Domains Terokai tutorial Enjin Kubernetes yang lain Terokai seni bina rujukan, rajah, tutorial dan amalan terbaik tentang Google Cloud. Lihatlah Pusat Seni Bina Awan kami.