Bảng hướng dẫn cho các lệnh Kubernetes

theanh

Administrator
Nhân viên
Khi làm việc trên Kubernetes, điều rất quan trọng là bạn phải biết ít nhất các lệnh cơ bản. Trong bài viết này, bạn sẽ tìm thấy các lệnh cần thiết nhất trong hầu hết thời gian khi làm việc trên cụm. Nếu bạn biết các lệnh, bạn có thể thoát khỏi việc viết các tệp định nghĩa đối tượng cho các đối tượng đơn giản rồi tạo các đối tượng bằng các tệp đó. Thay vào đó, bạn có thể sử dụng các lệnh và xem các đối tượng được tạo trong vòng một phần giây.

Trong bài viết này, bạn sẽ không chỉ thấy các lệnh để biết thông tin chi tiết về các đối tượng mà còn để tạo các đối tượng. Bài viết này chỉ tập trung vào các lệnh chứ không phải mô tả về các lệnh đó. Nếu bạn muốn biết chi tiết từng lệnh, bạn có thể truy cập tài liệu chính thức tại đây.

Bài viết này sẽ là cẩm nang dành cho bạn về các đối tượng cốt lõi trong Kubernetes Cluster.

Điều kiện tiên quyết​

  1. Hiểu biết cơ bản về Kubernetes
  2. Kubernetes Cluster có ít nhất 1 nút worker.
    Nếu bạn muốn học cách tạo Kubernetes Cluster, nhấp vào đây. Hướng dẫn này sẽ giúp bạn tạo một cụm Kubernetes với 1 Master và 2 Node trên AWS Ubuntu EC2 Instances.

Chúng ta sẽ thấy gì?​

  1. Các lệnh quan trọngThông tin cụm
  2. Thông tin cấu hình
  3. Không gian tên
  4. Pod
  5. Triển khai
  6. Dịch vụ
  7. Quản lý đối tượng từ các tệp .yaml/.yml

Các lệnh quan trọng​

ClusterInformation​

In phiên bản máy khách và máy chủ thông tin
Mã:
kubectl version
In các tài nguyên API được hỗ trợ trên máy chủ
Mã:
kubectl api-resources
In các phiên bản API được hỗ trợ trên máy chủ, dưới dạng "nhóm/phiên bản"
Mã:
kubectl api-versions
In thông tin cụm
Mã:
kubectl cluster-info
Lấy danh sách các nút trong cụm
Mã:
kubectl get nodes
Lấy thông tin của nút chính
Mã:
kubectl get nodes master -o wide
Lấy thông tin chi tiết về nút chính nút
Mã:
kubectl describe nodes master

Thông tin cấu hình​

Hiển thị cài đặt kubeconfig đã hợp nhất
Mã:
kubectl config view
Xem hiện tại ngữ cảnh
Mã:
kubectl config current-context
Đặt ngữ cảnh, ở đây kubernetes-admin@kubernetesis tên ngữ cảnh
Mã:
kubectl config use-context kubernetes-admin@kubernetes
Hiển thị các cụm được xác định trong kubeconfig
Mã:
kubectl config get-clusters
Mô tả một hoặc nhiều ngữ cảnh
Mã:
kubectl config get-contexts

Không gian tên​

Lấy tất cả không gian tên
Mã:
kubectl get namespaces
Lấy thông tin không gian tên theo định dạng yaml
Mã:
kubectl get namespaces -o yaml
Mô tả mặc định không gian tên
Mã:
kubectl describe namespace default
Tạo không gian tên mới
Mã:
kubectl create namespace my-namespace
Xóa không gian tên
Mã:
kubectl delete namespace my-namespace

Pod​

Lấy pod từ không gian tên hiện tại
Mã:
kubectl get pods
Lấy pod từ tất cả không gian tên
Mã:
kubectl get pods --all-namespaces
Lấy các pod từ không gian tên đã chỉ định
Mã:
kubectl get pods -namespace=my-namespace
Tạo pod
Mã:
kubectl run my-pod-1 --image=nginx:latest --dry-run
xem cách pod sẽ được xử lý
Mã:
kubectl run my-pod-1 --image=nginx:latest --dry-run=client
Tạo một pod trong không gian tên
Mã:
kubectl run my-pod-2 --image=nginx:latest --namespace=my-namespace
Tạo một pod có nhãn cho nó
Mã:
kubectl run nginx --image=nginx -l --labels=app=test
Lấy tất cả các pod có nhãn đầu ra
Mã:
kubectl get pods --show-labels
Lấy các pod với đầu ra mở rộng/rộng
Mã:
kubectl get pods -o wide
Liệt kê các pod trong một order
Mã:
kubectl get pods --sort-by=.metadata.name
Lấy nhật ký của pod
Mã:
kubectl logs my-pod-1
Lấy pod trong không gian tên được chỉ định với exapanded/wide đầu ra
Mã:
kubectl get pods my-pod-2 --namespace=my-namespace -o wide
Lấy nhật ký của pod trong không gian tên đã chỉ định
Mã:
kubectl logs my-pod-2 --namespace=my-namespace
Mô tả pod
Mã:
kubectl describe pod my-pod-1
Mô tả pod trong phạm vi được chỉ định không gian tên
Mã:
kubectl describe pods my-pod-1 --namespace=my-namespace
Xóa pod khỏi không gian tên hiện tại
Mã:
kubectl delete pod my-pod-1
Xóa pod khỏi thespecifiednamespace
Mã:
kubectl delete pods my-pod-1 --namespace=my-namespace

Triển khai​

Lấy danh sách các triển khai từ không gian tên hiện tại
Mã:
kubectl get deployments
Lấy danh sách các triển khai từ không gian tên đã chỉ định không gian tên
Mã:
kubectl get deployments --namespace=my-namespace
Tạo triển khai
Mã:
kubectl create deployment my-deployment-1 --image=nginx
Lấy thông tin đã chỉ định triển khai
Mã:
kubectl get deployment my-deployment-1
Lấy triển khai đã chỉ định cùng với nhãn của nó
Mã:
kubectl get deployment my-deployment-1 --show-labels
Mô tả triển khai đã chỉ định triển khai
Mã:
kubectl describe deployments my-deployment-1
Nhận thông tin chi tiết về triển khai theo định dạng yaml
Mã:
kubectl get deployment my-deployment-1 -o yaml
Thay đổi hình ảnh trong triển khai
Mã:
kubectl set image deployment my-deployment-1 nginx=nginx:1.16.1
Xem lịch sử triển khai
Mã:
kubectl rollout history deployment my-deployment-1
Hoàn tác một triển khai
Mã:
kubectl rollout undo deployment my-deployment-1
Quay lại phiên bản cụ thể của lịch sử triển khai
Mã:
kubectl rollout undo deployment my-deployment-1 --to-revision=2
Hiển thị trạng thái của triển khai
Mã:
kubectl rollout status deployment my-deployment-1
Khởi động lại tài nguyên
Mã:
kubectl rollout restart deployment my-deployment-1
Mở rộng triển khai đến 3
Mã:
kubectl scale --replicas=3 deployment my-deployment-1
Chuyển đổi từ số đếm hiện tại sang số đếm mong muốn
Mã:
kubectl scale --current-replicas=3 --replicas=5 deployment my-deployment-1
Điều này sẽ tạo ra một HPA (Horizontal Pod Aotuscaler)
Mã:
kubectl autoscale deployment my-deployment-1 --min=2 --max=10

Dịch vụ​

Đầu tiên, tạo một pod có nhãn app=myapp.

Sau đó:

Tạo một pod có nhãn
Mã:
kubectl run my-pod --image=nginx --labels=app=myapp
Tạo một dịch vụ thuộc loại NodePort sẽ sử dụng nhãn của pod cho selector nhưng chúng ta phải chỉ định loại, vì vậy hãy tạo một tệp định nghĩa trước rồi tạo một dịch vụ
Mã:
kubectl expose pod my-pod --port=80 --name nginx-service --type=NodePort --dry-run=client -o yaml
Tạo một Dịch vụ có loại là NodePort nhưng sẽ không có selector là my-app
Mã:
kubectl create service nodeport nginx --tcp=80:80 --node-port=30080 --dry-run=client -o yaml
Nhận các dịch vụ từ hiện tại ngữ cảnh
Mã:
kubectl get service
Nhận thông tin chi tiết về các dịch vụ
Mã:
kubectl get service -o wide
Nhận các dịch vụ có nhãn trên chúng
Mã:
kubectl get service --show-labels
Nhận dịch vụ từ tất cả các không gian tên
Mã:
kubectl get services --all-namespaces
Mô tả dịch vụ để biết thêm thông tin về nó
Mã:
kubectl describe service nginx-service
Nhận một dịch vụ cụ thể
Mã:
kubectl get service nginx-service
Xóa dịch vụ
Mã:
kubectl delete service nginx-service

Quản lý các đối tượng từ các tệp .yaml/.yml​

Đầu tiên, tạo một tệp định nghĩa cho một pod

Tạo một tệp định nghĩa cho pod
Mã:
kubectl run mypod --image=nginx --dry-run=client -o yaml > my-pod.yml
Tạo một đối tượng
Mã:
kubectl create -f my-pod.yml
Xóa đối tượng
Mã:
kubectl delete -f my-pod.yml

Kết luận​

Trong bài viết này, chúng ta đã thấy các lệnh quan trọng cần thiết khi làm việc trên Kubernetes. Các lệnh trong Kubernetes không chỉ giới hạn ở những lệnh này mà những lệnh này giống như "phải biết" lệnh.
 
Back
Bên trên