Mình đã giới thiệu với các bạn cách chạy một container sử dụng command “run” trong Kubernetes. Bài viết này, mình giới thiệu với các bạn một cách khác nữa đó là sử dụng command “create” với một tập tin cấu hình các bạn nhé!
Cú pháp của command “create” cơ bản như sau:
1 |
kubectl create -f <path_to_configuration_file> |
Trong đó <path_to_configuration_file> là đường dẫn đến tập tin định nghĩa các thông tin về container mà chúng ta cần khởi tạo.
Tập tin định nghĩa các thông tin về container là một tập tin YAML. Nội dung cơ bản mà chúng ta cần phải có để tạo một container trong tập tin cấu hình này sẽ như sau:
1 2 3 4 5 6 7 8 |
apiVersion: v1 kind: Pod metadata: name: <name> spec: containers: - name: <container_name> image: <container_image> |
Trong đó:
- <name> là tên của Pod sau khi chạy command “create”
- <container_name> là tên của container trong Pod sau khi khởi tạo
- <container_image> là tên của image được sử dụng để tạo container.
Ở đây, như các bạn thấy, có một thuộc tính là “kind” định nghĩa thành phần mà command “create” sẽ tạo ra trong Kubernetes cluster. Mình định nghĩa sẵn là Pod vì các container sẽ gắn liền với một Pod nào đó, việc chạy container cũng đồng nghĩa với việc chúng ta tạo ra các Pod trong Kubernetes cluster.
Command “create” còn có thể tạo ra các thành phần khác trong Kubernetes cluster tuỳ theo “kind” mà chúng ta định nghĩa trong tập tin cấu hình đó các bạn!
Bây giờ ví dụ, mình có một tập tin cấu hình với nội dung như sau:
1 2 3 4 5 6 7 8 |
apiVersion: v1 kind: Pod metadata: name: node-hello spec: containers: - name: node-hello image: gcr.io/google-samples/node-hello:1.0 |
Bây giờ, mình sẽ tạo mới một container từ tập tin cấu hình trên với command “create” xem sao nhé!
Mình sẽ chạy câu lệnh sau:
1 |
kubectl create -f node-hello.yaml |
Kết quả:
So với command “run” thì như các bạn thấy với command “create”, tuỳ theo “kind” mà chúng ta định nghĩa mà message thành công trả về sẽ khác nhau. Ở ví dụ của mình thì vì mình định nghĩa “kind” là Pod nên sau khi tạo container thành công, message “pod “node-hello” created” đã được in ra.
Bây giờ thì các bạn có thể kiểm tra kết quả rồi:
Sẽ không có thành phần Deployment nào được tạo ra hết cả các bạn ạ.
Thông tin của Pod: