GCP Fun Facts - Vài fact vui hoặc lưu ý hơi không vui trên GCP

GCP Fun Facts - Vài fact vui hoặc lưu ý hơi không vui trên GCP

Một số fact thú vị hoặc lưu ý ở những trường hợp đặc biệt trên Google Cloud

Đổi Internal IP của VM

GCP không cho phép bạn thay đổi Internal IP của 1 VM đã tồn tại. Tuy nhiên, lại cho phép bạn đổi subnet của VM đó. Vậy để thay internal IP, bạn có thể trick bằng việc đổi sang 1 subnet khác rồi lại đổi về subnet cũ và chỉ định Internal IP mới. 😆

Lag khi chuyển project trên Console UI

Mình và đồng nghiệp đã gặp tình huống chuyển project trên giao diện và nghĩ đã switch sang project khác, nhưng thao tác tiếp thì thấy hơi sai sai vì tài nguyên bên trong project đó không đúng lắm. Nhìn lại kỹ ở URL querystring trên address bar thì thấy project id vẫn là project id cũ.

Vậy là console bị lag. Giao diện chuyển 1 phần nhưng nội dung thực chất vẫn là của project cũ. 😐

Hình dưới dây ví dụ chỗ mũi tên màu cam để các bạn biết project id nằm ở querystring.

Tầm 2021 là team mình gặp case này 1-2 lần, về sau ko thấy nữa.

Không lấy lại được GCE default Service account của project đã xóa

Mỗi GCP project khi bật Compute Engine API sẽ xuất hiện 1 SA mặc định có format .

Theo best pratices, chúng ta luôn tạo và gắn SA riêng dedicate cho VM instance chứ ko sử dụng SA default. Và mình đã tiễn luôn SA default đi, để tránh user trong project đó khi tự tạo VM chọn default SA.

Cũng không có vấn đề gì, mãi cho tới khi team cần deploy 1 solution từ GCP MarketPlace mà nó dựng lên vài con VM. Deployment không thành công và in ra lỗi khá dị. Nhận thấy MarketPlace deployment này không cho phép chỉ định SA gắn vào VM mà bắt buộc "đòi" default compute SA. 😅

Thế rồi mail support thì được chỉ cho có cửa để un-delete SA, NHƯNG, điều kiện là chỉ phục hồi được SA mới xóa dưới 30 ngày. Thế là tèo X_X. Trường hợp của mình buộc phải sang project khác mà deploy Marketplace.

Peering Limit

Limit, khác với quota, là những con số cứng "hard limit". Khách hàng sẽ ko tự nâng hoặc xin nâng được. Tuy nhiên có 1 số trường hợp đặc biệt. Dưới đây là 1 trường hợp team mình đã gặp từ xưa, quãng 2019-2020.

1 VPC cho phép tối đa 25 peering connection. Nếu bạn chạm tới con số này, có thể tạo ticket để đề nghị xét nâng limit, tuy nhiên..

  • bạn sẽ cần giải thích lý do, context rõ nét. Google sẽ cần trao đổi nội bộ và xét duyệt.

  • nếu được đồng ý, họ sẽ cảnh báo với bạn là để đánh đổi nâng tăng thêm 1 vài peering connection thì limit tối đa số VM instance có thể tạo trong VPC sẽ phải giảm. Con số này mình ko tìm thấy trên web, nhưng rất cao, kiểu vài trăm nghìn.

  • Quá trình xét duyệt và thực hiện sẽ rất lâu, vài tuần tới hơn 1 tháng.

Ngày trước là vậy, giờ có thể khác, có khi ko được xét tăng nữa. Tốt nhất gặp các case khù khoằm cỡ này thì bạn nên trao đổi với Google Cloud CE (Customer Engineer) của công ty mình trước.

Managed services peering connection

Nhân tiện nói về peering thì mình kể lý do vì sao ngày đó công ty mình chạm tới tận 25 peering connections.

Đầu tiên concept về các managed services của GCP như CloudSQL, GKE là các sản phẩm đó sẽ được tạo ở những project sở hữu gởi Google và VPC ẩn mà khách hàng sẽ không nhìn thấy. (Thông tin thêm về loại project ẩn này có thể search và xem thêm tại đây)

Khi có khách hàng muốn đặt sản phẩm đó trong VPC, sử dụng private IP của VPC thì Google sẽ tự động tạo 1 peering connection từ VPC ảo của project ẩn đó tới VPC của khách hàng.

Như CloudSQL, Google sẽ tạo 1 peering connection và các instances dùng chung connection này. Nhưng thời điểm trước 2020, mỗi GKE cluster tạo ra lại chiếm riêng 1 đường peering connection.

Cho tới tháng 1/2020 khi Google ra tính năng Peering reuse tương tự CloudSQL cho GKE thì khách hàng dùng private VPC-native GKE trong SharedVPC mới đỡ khổ. Mặc dù nếu đang chạm ngưỡng rồi thì phải xóa cluster đi tạo lại thì cluster mới, mới reuse được peering connection. Các thông tin này được mô tả rõ trên doc về GKE của Google.

Dùng lại tên CloudSQL instance đã xóa

Trước kia, bạn ko thể xóa 1 instance rồi tạo 1 instance khác cùng tên mà phải chờ 1 tuần để tên instance đó "available" 😒. Điều này đã từng gây phiền toái khá nhiều cho những anh em dùng IaC để tạo đi tạo lại tài nguyên liên tục. Đâu đó chắc trong 2021, Google đã thay đổi và thấy trên doc đã ghi "The deleted instance name can be reused immediately to create a new instance."