I. References
1. https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/
II. Các đối tượng của K8s (Kubernetes objects)
1. Định dạng
Sử dụng định dang Yaml
2. K8sO lưu trữ các thông tin
- Ứng dụng container đang chạy là gì
- Tài nguyên cấp phát
- Các chính sách áp dụng cho ứng dụng: restart, update, khẳ năng chịu lỗi
K8sO có thể tạo, chỉnh sửa, xóa thông qua Kubernet
API
3. Object Spec và Status (đặc tả và trạng thái object)
Hầu hết các K8sO đều gồm 2 object lồng bên trong là spec và status
- Spec: mô tả về thuộc tính object khi tạo
- Status: mô tả trạng thái hiện tại của Object
Tìm hiểu thêm về các thông tin spec, status, metadata có thể xem trong link
sau K8s
API Conventions
4. Mô tả một đối tượng K8sO
Thông thường khi sử dụng API để tạo Object, các thông tin được lưu dạng JSON
trong request body. Khi dùng command kubectl
thì các thông tin được lưu trong file .yaml
, kubectl sẽ convert thông tin sang dạng JSON khi thực hiện call
API.
VD: file mẫu application/deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata:
name: nginx-deployment spec:
selector: matchLabels: app: nginx
replicas: 2 # tells deployment to run 2 pods matching the template
template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 |
Khi tạo
Deployment sử dụng file .yaml tạ sử dụng lệnh:
kubectl apply -f https://k8s.io/examples/application/deployment.yaml --record |
Output
thành công như sau, với các thành phần mô tả trong file hiển thị màu highlight
tương ứng như hình dưới.
|
5. Các
trường bắt buộc trong file .yaml
·
apiVersion
– version của API sử dụng để tạo
object
·
kind
– loại object muốn tạo
·
metadata
– Dữ liệu giúp xác định duy nhất đối tượng, bao gồm name, String UID, namespace (tùy
chọn, nếu không ghi sẽ là default)
·
Spec –
mô tả các thông tin mong muốn của Object khi chạy
Spec của
object khác nhau với từng loại đối tượng K8s, chứa các trường lồng nhau và đặc
tả khác nhau.
Bạn có thể
tìm đặc tả cho từng loại object theo link sau: Kubernetes API Reference
VD: Đặc tả
cho 1 POD: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#podspec-v1-core
-
Example:
định dạng file yaml mẫu
-
apiVersion: v1
o
Group : core (core thì không cần viết vào Apiversion)
o
Version: v1
-
Kind: Pod
- Appears In: Link liệt kê các Object chứa đặc tả này
Lưu ý: It is recommended that users create Pods only through a Controller, and not directly. See Controllers: Deployment, Job, or StatefulSet.
6. K8s API references gồm các thông tin:
-
Appears In: Link các object chứa Object này
-
Example:
định dạng file yaml mẫu
-
Mô
tả tên group, version, kind tương ứng, Group core không cần viết trong apiVersion:
-
Field và Description: các field và description tương ứng.
Click vào
các trường có link để chuyển sang mô tả tương ứng của trường đó.
VD: click
và PodSpec để biết mô tả các trường của
PodSpec, các trường được đẩy lùi dòng theo cấu trúc của Yaml.
Không có nhận xét nào:
Đăng nhận xét