GKE – kubectl : Deployments và Expose Services

Nếu bạn sử dụng Kubernetes một công cụ command-line dùng để quản lý cluster không thể thiếu là kubectl (kube control).

Trong ví dụ này, chúng ta sẽ sử dụng kubectl để tạo deployments và expose services trên Google Cloud. Trước khi đi vào ví dụ, chúng ta làm quen với các lệnh cơ bản của kubectl.

Bạn có thể xem file cấu hình chính kubeconfig trong thư mục ~/.kube/config

cat ~/.kube/config

File này chứa thông tin về thông tin về tất cả các cluster mà chúng ta đã tạo. Thay vì xem trong file này chúng ta sẽ sử dụng kubectl để thao tác.

kubectl config view

Vì kubectl quản lý tất cả các cluster. Nên chung ta cần join vào một cluster để quản lý.

gcloud container clusters get-credentials regional-cluster \
--zone us-central1 --project ecntt-251116

Nếu kiểm tra cluster hiện tại

kubectl config current-context

Hay thông tin cluster hiện tại

kubectl cluster-info

Bây giờ chúng ta sẽ chuyển sang cluster zonal-ecntt đã tạo ở bài trước và tiến hành tạo deployment.

gcloud container clusters get-credentials zonal-ecntt \
--zone us-central1-a --project ecntt-251116

Chúng ta có thể kiểm tra lại cluster hiện tại

Tạo deployment

Bây giờ chúng ta sẽ tạo một deployment trên cluster zonal-ecntt

kubectl run nginx --image=nginx --replicas=2

Chúng ta sẽ tạo deployment nginx từ docker image nginx, với 2 pods cho container này.

Có thể dùng kubectl để get pods.

kubectl get pods -owide

Hay get nodes

kubectl get nodes

Expose service

Tiếp theo chúng ta expose service cho deployment vừa tạo

kubectl expose deployment nginx --port=80 --target-port=80 --type=LoadBalancer

Ở đây, mình expose trên port 80 và type là LoadBalancer

Kết quả

kubectl get service nginx

Vào ip External

Lưu ý

Nếu trong quá trình sử dụng kubectl bạn bị lỗi kết nói server

Unable to connect to the server: dial tcp 104.197.114.0:443: i/o timeout

Thì bạn cần join lại vào cluster bằng lệnh ở trên