Hướng dẫn này trình bày cách sử dụng Google Kubernetes Engine (GKE) để hiển thị ứng dụng web của bạn với internet trên địa chỉ IP tĩnh bên ngoài và định cấu hình tên miền để trỏ đến ứng dụng của bạn Hướng dẫn này giả định rằng bạn sở hữu một tên miền đã đăng ký, chẳng hạn như ví dụ.com Bạn có thể đăng ký một tên miền thông qua Google Tên miền hoặc công ty đăng ký tên miền khác của bạn lựa chọn nếu bạn không có ## Mục tiêu Hướng dẫn này trình bày các bước sau: ## Chi phí Hướng dẫn này sử dụng các thành phần có thể thanh toán sau của Google Cloud: Để tạo ước tính chi phí dựa trên mức sử dụng dự kiến ​​của bạn, sử dụng máy tính giá Khi bạn hoàn thành hướng dẫn này, bạn có thể tránh tiếp tục thanh toán bằng cách xóa các tài nguyên bạn đã tạo. Để biết thêm thông tin, hãy xem Dọn dẹp ## Trước khi bạn bắt đầuThực hiện các bước sau để bật API Kubernetes Engine: - Truy cập trang Kubernetes Engine trong bảng điều khiển Google Cloud - Tạo hoặc chọn một dự án - Đợi API và các dịch vụ liên quan được kích hoạt. Quá trình này có thể mất vài phút - Đảm bảo rằng thanh toán được bật cho dự án Đám mây của bạn. Tìm hiểu cách kiểm tra xem thanh toán có được bật trên một dự án hay không Cài đặt các công cụ dòng lệnh sau được sử dụng trong hướng dẫn này: - gcloudis được sử dụng để tạo và xóa các cụm Kubernetes Engine gcloudis bao gồm trong gcloudCLI - kubectlis được sử dụng để quản lý Kubernetes, hệ thống điều phối cụm được sử dụng bởi Kubernetes Engine. Bạn có thể cài đặt kubectlusing đám mây: các thành phần gcloud cài đặt kubectl Sao chép mã mẫu từ GitHub: git clone httpsgithub.com/GoogleCloudPlatform/kubernetes-engine-samples cd kubernetes-engine-samples/hello-app/manifests Đặt mặc định cho Để tiết kiệm thời gian nhập ID dự án của bạn và các tùy chọn vùng Compute Engine trong công cụ dòng lệnh gcloud gcloudcommand-line, bạn có thể đặt giá trị mặc định: dự án thiết lập cấu hình gcloud cấu hình project-idgcloud đặt vùng tính toán/vùng tính toán Tạo một cụm Tạo một cụm container có tên domain-test để triển khai ứng dụng web của bạn: cụm vùng chứa gcloud tạo thử nghiệm tên miền ## Triển khai ứng dụng web của bạn Tệp kê khai sau đây mô tả Triển khai chạy hình ảnh bộ chứa ứng dụng web mẫu: # Bản quyền 2021 Google LLC # # Được cấp phép theo Giấy phép Apache, Phiên bản 2.0 ("Giấy phép # bạn không được sử dụng tệp này trừ khi tuân thủ Giấy phép. # Bạn có thể lấy một bản sao của Giấy phép tại # # httpwww.apache.org /licenses/LICENSE-2.0 # # Trừ khi được luật hiện hành yêu cầu hoặc được đồng ý bằng văn bản, phần mềm # được phân phối theo Giấy phép được phân phối trên CƠ SỞ "NGUYÊN TRẠNG", # KHÔNG CÓ BẢO ĐẢM HAY ĐIỀU KIỆN DƯỚI BẤT KỲ HÌNH THỨC NÀO, rõ ràng hay ngụ ý. # Xem Giấy phép để biết các quyền quản lý ngôn ngữ cụ thể và # giới hạn trong Giấy phép. nhãn: ứng dụng: tầng xin chào: thông số kỹ thuật web: container: - tên: hình ảnh ứng dụng hello: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 cổng: - tài nguyên containerPort: 8080: yêu cầu : cpu: 200m Chạy lệnh sau để tạo Triển khai: áp dụng kubectl -f helloweb-triển khai.yaml ## Hiển thị ứng dụng của bạn Bạn có thể hiển thị ứng dụng của mình trên GKE bằng một trong các phương pháp sau: Sử dụng Dịch vụ để tạo Bộ cân bằng tải mạng TCP hoạt động với các địa chỉ IP khu vực. Sử dụng Ingress, tạo ra một HTTP(S) Load Balancer và hỗ trợ các địa chỉ IP toàn cầu Để tìm hiểu thêm về ưu và nhược điểm của từng phương pháp, hãy tham khảo Thiết lập cân bằng tải HTTP(S) với Ingress Sử dụng một dịch vụ Để đảm bảo rằng ứng dụng của bạn có địa chỉ IP công cộng tĩnh, bạn phải đặt trước một địa chỉ IP tĩnh Nếu bạn chọn hiển thị ứng dụng của mình bằng Dịch vụ, bạn phải tạo một địa chỉ IP khu vực. Địa chỉ IP toàn cầu chỉ hoạt động với loại tài nguyên Ingress, như được giải thích trong phần tiếp theo Để sử dụng Dịch vụ, hãy tạo một địa chỉ IP tĩnh có tên helloweb-ip trong khu vực chúng tôi-trung tâm1: gcloud địa chỉ điện toán gcloud tạo helloweb-ip --region us-central1 Để tìm địa chỉ IP tĩnh bạn đã tạo, hãy chạy lệnh sau: địa chỉ điện toán gcloud mô tả helloweb-ip --region us-central1Output: địa chỉ: 203.0.113.32 .. Trình kết nối cấu hình **Lưu ý Bước này yêu cầu Trình kết nối cấu hình. Theo hướng dẫn cài đặt để cài đặt Trình kết nối cấu hình trên cụm của bạn apiVersion: compute.cnrm.cloud.google.com/v1beta1 loại: siêu dữ liệu ComputeAddress: tên: helloweb-ip spec: vị trí: us-central1 kubectl apply -f compute-address-regional.yamlĐể tìm địa chỉ IP tĩnh, hãy chạy lệnh sau: kubectl lấy địa chỉ tính toán helloweb-ip -o jsonpathspec.address}'Tệp kê khai sau đây mô tả Dịch vụ thuộc loại LoadBalancer, dịch vụ này tạo bộ cân bằng tải mạng để hiển thị các Pod có IP công khai Thay thế `YOUR.IP.ADDRESS.HERE` với địa chỉ IP tĩnh: # Bản quyền 2021 Google LLC # # Được cấp phép theo Giấy phép Apache, Phiên bản 2.0 ("Giấy phép # bạn không được sử dụng tệp này trừ khi tuân thủ Giấy phép. # Bạn có thể lấy một bản sao của Giấy phép tại # # httpwww.apache.org /licenses/LICENSE-2.0 # # Trừ khi được yêu cầu bởi luật hiện hành hoặc được đồng ý bằng văn bản, phần mềm # được phân phối theo Giấy phép được phân phối trên CƠ SỞ "NGUYÊN TRẠNG", # KHÔNG CÓ BẢO ĐẢM HAY ĐIỀU KIỆN DƯỚI BẤT KỲ HÌNH THỨC NÀO, rõ ràng hay ngụ ý. # Xem Giấy phép để biết các quyền quản lý ngôn ngữ cụ thể và # giới hạn trong Giấy phép. Loại 8080: LoadBalancer loadBalancerIP: "YOUR.IP.ADDRESS.HERE"Sau đó, tạo Dịch vụ: áp dụng kubectl -f helloweb-service-static-ip.yaml Để xem địa chỉ IP dành riêng được liên kết với bộ cân bằng tải: kubectl nhận dịch vụĐầu ra: TÊN (CỤM-IP) CỔNG IP NGOẠI THẤT TUỔI helloweb 10.31.254.176 203.0.113.32 80:30690/TCP 54s Sử dụng một Ingress Nếu bạn chọn hiển thị ứng dụng của mình bằng cách sử dụng Ingress, tạo ra một Cân bằng tải HTTP(S), thì bạn phải đặt trước một địa chỉ IP tĩnh toàn cầu. Địa chỉ IP khu vực không hoạt động với Ingress Để tìm hiểu thêm về cách sử dụng Ingress để hiển thị các ứng dụng của bạn trên internet, hãy tham khảo hướng dẫn Thiết lập cân bằng tải HTTP(S) với Ingress Để tạo một địa chỉ IP tĩnh toàn cầu có tên xin chào web-ip: gcloud địa chỉ điện toán gcloud tạo helloweb-ip --global Để tìm địa chỉ IP tĩnh bạn đã tạo: địa chỉ điện toán gcloud mô tả helloweb-ip --globalOutput: địa chỉ: 203.0.113.32 .. Trình kết nối cấu hình **Lưu ý Bước này yêu cầu Trình kết nối cấu hình. Theo hướng dẫn cài đặt để cài đặt Trình kết nối cấu hình trên cụm của bạn apiVersion: compute.cnrm.cloud.google.com/v1beta1 loại: siêu dữ liệu ComputeAddress: tên: helloweb-ip spec: vị trí: toàn cầu áp dụng kubectl -f tính toán-địa chỉ-global.yaml Tệp kê khai sau đây mô tả một ứng dụng web Ingress thata trên một IP tĩnh có hai tài nguyên: - MỘT dịch vụ với loại:NodePort - Một Đã cấu hình xâm nhập với tên dịch vụ và chú thích IP tĩnh # Bản quyền 2021 Google LLC # # Được cấp phép theo Giấy phép Apache, Phiên bản 2.0 ("Giấy phép # bạn không được sử dụng tệp này trừ khi tuân thủ Giấy phép. # Bạn có thể lấy một bản sao của Giấy phép tại # # httpwww.apache.org /licenses/LICENSE-2.0 # # Trừ khi được yêu cầu bởi luật hiện hành hoặc được đồng ý bằng văn bản, phần mềm # được phân phối theo Giấy phép được phân phối trên CƠ SỞ "NGUYÊN TRẠNG", # KHÔNG CÓ BẢO ĐẢM HAY ĐIỀU KIỆN DƯỚI BẤT KỲ HÌNH THỨC NÀO, rõ ràng hay ngụ ý. # Xem Giấy phép để biết các quyền quản lý ngôn ngữ cụ thể và # giới hạn theo Giấy phép. -ip nhãn: app: hello spec: defaultBackend: service: name: helloweb-backend port: number: 8080apiVersion: v1 kind: Service metadata: name: helloweb-backend label: app: hello spec: type: NodePort selector: app: hello tầng: cổng web: - cổng: 8080 targetPort: 8080 Các chú thích kubernetes.io/ingress.global-static-ip-name chỉ định tên của tài nguyên địa chỉ IP toàn cầu được liên kết với Tải HTTP(S) cân bằng Áp dụng tài nguyên cho cụm: áp dụng kubectl -f helloweb-ingress-static-ip.yamlĐầu ra: xâm nhập "helloweb"đã tạo dịch vụ "helloweb-backend"đã tạo Để xem địa chỉ IP dự trữ được liên kết với bộ cân bằng tải: kubectl get ingressOutput: TÊN MÁY CHỦ ĐỊA CHỈ CỔNG TUỔI helloweb * 203.0.113.32 80 4m ## Truy cập địa chỉ IP tĩnh dành riêng của bạn Để xác minh rằng bộ cân bằng tải được cấu hình đúng, bạn có thể sử dụng trình duyệt web để truy cập địa chỉ IP hoặc sử dụng Xoăn: cuộn tròn http203.0.113.32/Đầu ra: Chào thế giới! Tên máy chủ: helloweb-3766687455-8lvqv ## Định cấu hình bản ghi tên miền của bạn Để các trình duyệt truy vấn tên miền của bạn, chẳng hạn như example.com hoặc tên miền phụ tên, chẳng hạn như blog.example.com, hãy trỏ đến địa chỉ IP tĩnh mà bạn đã đặt trước, bạn phải cập nhật bản ghi DNS (Máy chủ tên miền) cho tên miền của mình Bạn phải tạo một **A** (Địa chỉ) nhập bản ghi DNS cho tên miền hoặc tên miền phụ của bạn tên và có giá trị của nó được cấu hình với địa chỉ IP dành riêng Bản ghi DNS của tên miền của bạn được quản lý bởi máy chủ định danh của bạn. Máy chủ tên của bạn có thể là "công ty đăng ký"nơi bạn đã đăng ký miền của mình, dịch vụ DNS như Cloud DNS hoặc nhà cung cấp bên thứ ba khác Nếu máy chủ định danh của bạn là Cloud DNS: Hãy làm theo Hướng dẫn khởi động nhanh Cloud DNS để định cấu hình DNS Một bản ghi cho tên miền của bạn với địa chỉ IP dành riêng cho ứng dụng của bạn. Nếu máy chủ tên của bạn là một nhà cung cấp khác: Hãy tham khảo tài liệu của dịch vụ DNS của bạn về cách đặt bản ghi DNS A để định cấu hình tên miền của bạn. Thay vào đó, nếu bạn chọn sử dụng Cloud DNS, hãy tham khảo Di chuyển sang Cloud DNS ## Truy cập tên miền của bạn Để xác minh rằng bản ghi DNS A của tên miền của bạn phân giải thành địa chỉ IP mà bạn đã đặt trước, hãy truy cập vào tên miền của bạn Để thực hiện một truy vấn DNS cho bản ghi A của tên miền của bạn, hãy chạy chủ nhà chỉ huy: máy chủ ví dụ.comĐầu ra: example.com có ​​địa chỉ 203.0.113.32 Tại thời điểm này, bạn có thể trỏ trình duyệt web của mình đến tên miền của bạn và truy cập trang web của bạn! ## Dọn dẹp Để tránh phát sinh phí đối với tài khoản Google Cloud của bạn đối với các tài nguyên được sử dụng trong hướng dẫn này, hãy xóa dự án chứa tài nguyên hoặc giữ lại dự án và xóa từng tài nguyên Xóa tài nguyên cân bằng tải: kubectl xóa lối vào, dịch vụ -l app=xin chào Giải phóng IP tĩnh đã đặt trước. Sau khi bộ cân bằng tải bị xóa, địa chỉ IP chưa sử dụng nhưng đã đặt trước sẽ không còn miễn phí nữa và được lập hóa đơn theo giá địa chỉ IP chưa sử dụng. Chạy các lệnh sau để giải phóng tài nguyên IP tĩnh: Nếu bạn đã sử dụng một Dịch vụ: địa chỉ điện toán gcloud xóa helloweb-ip --region us-central1 Nếu bạn đã sử dụng Ingress: địa chỉ điện toán gcloud xóa helloweb-ip --global - Xóa ứng dụng mẫu: xóa kubectl -f helloweb-triển khai.yaml Đợi cho đến khi bộ cân bằng tải bị xóa bằng cách xem đầu ra của lệnh sau. Đầu ra không được hiển thị quy tắc chuyển tiếp có chứa "helloweb"trong tên của nó: danh sách quy tắc chuyển tiếp điện toán gcloud Xóa cụm container: cụm vùng chứa gcloud xóa kiểm tra tên miền ## Cái gì tiếp theo Đăng ký tên miền của riêng bạn thông qua Google Domains Khám phá các hướng dẫn khác về Kubernetes Engine Khám phá kiến ​​trúc tham khảo, sơ đồ, hướng dẫn và các phương pháp hay nhất về Google Cloud. Hãy xem Trung tâm kiến ​​trúc đám mây của chúng tôi.