Azure Kubernetes Service (AKS) là 1 service để quản lý cluster kubernetes cho phép bạn triển khai nhanh và quản trị kubernetes. Bạn cũng có thể triển khai bằng azure cli hoặc web portal của Azure. Link tài liệu của Azure về triển khai kubernetes và các service của bạn:

https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough

Azure cho phép bạn chọn lựa cấu hình worker node ban đầu (ví dụ mình chọn 1cpu, 4gb ram) và khi scale thêm các node thì cũng vẫn dùng cấu hình đó để scale thêm.

Đầu tiên, mình setup 1 ingress controller với kiểu network service là LoadBalancer, với option này k8s cluster sẽ request với azure và tạo 1 service LoadBalance cũng 1 IP public và sẽ routing traffic port 80,443 xuống cụm k8s cluster như hình dưới:

Sau đó tạo 1 deployment đơn giản và 1 ingress với domain "test.local" gì gì đó test thử traffic vào.

file deployment.yaml:

file ingress.yaml:

Và đây là kết quả:

OK, vậy traffic IN sẽ đi qua public IP mà Azure đã cấp và routing xuống cụm k8s cluster này theo rule config trong service LoadBalancer. Vậy các application (ví dụ go-hello) này sẽ ra internet như thế nào (traffic OUT), xem nhé:

Traffic OUT ra internet cũng là IP Loadbalancer mà Azure đã cung cấp.

Default egress IP AKS dùng luôn IP ingress Loadbalance, nếu không muốn như vậy bạn có thể tuỳ chỉnh ở docs này theo link dưới, có thể tạo ra 1 static IP và gán IP đó và public-IP egress:

https://docs.microsoft.com/en-us/azure/aks/egress