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.
In các tài nguyên API được hỗ trợ trên máy chủ
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"
In thông tin cụm
Lấy danh sách các nút trong cụm
Lấy thông tin của nút chính
Lấy thông tin chi tiết về nút chính nút
Xem hiện tại ngữ cảnh
Đặt ngữ cảnh, ở đây kubernetes-admin@kubernetesis tên ngữ cảnh
Hiển thị các cụm được xác định trong kubeconfig
Mô tả một hoặc nhiều ngữ cảnh
Lấy thông tin không gian tên theo định dạng yaml
Mô tả mặc định không gian tên
Tạo không gian tên mới
Xóa không gian tên
Lấy pod từ tất cả không gian tên
Lấy các pod từ không gian tên đã chỉ định
Tạo pod
xem cách pod sẽ được xử lý
Tạo một pod trong không gian tên
Tạo một pod có nhãn cho nó
Lấy tất cả các pod có nhãn đầu ra
Lấy các pod với đầu ra mở rộng/rộng
Liệt kê các pod trong một order
Lấy nhật ký của pod
Lấy pod trong không gian tên được chỉ định với exapanded/wide đầu ra
Lấy nhật ký của pod trong không gian tên đã chỉ định
Mô tả pod
Mô tả pod trong phạm vi được chỉ định không gian tên
Xóa pod khỏi không gian tên hiện tại
Xóa pod khỏi thespecifiednamespace
Lấy danh sách các triển khai từ không gian tên đã chỉ định không gian tên
Tạo triển khai
Lấy thông tin đã chỉ định triển khai
Lấy triển khai đã chỉ định cùng với nhãn của nó
Mô tả triển khai đã chỉ định triển khai
Nhận thông tin chi tiết về triển khai theo định dạng yaml
Thay đổi hình ảnh trong triển khai
Xem lịch sử triển khai
Hoàn tác một triển khai
Quay lại phiên bản cụ thể của lịch sử triển khai
Hiển thị trạng thái của triển khai
Khởi động lại tài nguyên
Mở rộng triển khai đến 3
Chuyển đổi từ số đếm hiện tại sang số đếm mong muốn
Điều này sẽ tạo ra một HPA (Horizontal Pod Aotuscaler)
Sau đó:
Tạo một pod có nhãn
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ụ
Tạo một Dịch vụ có loại là NodePort nhưng sẽ không có selector là my-app
Nhận các dịch vụ từ hiện tại ngữ cảnh
Nhận thông tin chi tiết về các dịch vụ
Nhận các dịch vụ có nhãn trên chúng
Nhận dịch vụ từ tất cả các không gian tên
Mô tả dịch vụ để biết thêm thông tin về nó
Nhận một dịch vụ cụ thể
Xóa dịch vụ
Tạo một tệp định nghĩa cho pod
Tạo một đối tượng
Xóa đối tượng
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
- Hiểu biết cơ bản về Kubernetes
- 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ì?
- Các lệnh quan trọngThông tin cụm
- Thông tin cấu hình
- Không gian tên
- Pod
- Triển khai
- Dịch vụ
- 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
Mã:
kubectl api-resources
Mã:
kubectl api-versions
Mã:
kubectl cluster-info
Mã:
kubectl get nodes
Mã:
kubectl get nodes master -o wide
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
Mã:
kubectl config current-context
Mã:
kubectl config use-context kubernetes-admin@kubernetes
Mã:
kubectl config get-clusters
Mã:
kubectl config get-contexts
Không gian tên
Lấy tất cả không gian tên
Mã:
kubectl get namespaces
Mã:
kubectl get namespaces -o yaml
Mã:
kubectl describe namespace default
Mã:
kubectl create namespace my-namespace
Mã:
kubectl delete namespace my-namespace
Pod
Lấy pod từ không gian tên hiện tại
Mã:
kubectl get pods
Mã:
kubectl get pods --all-namespaces
Mã:
kubectl get pods -namespace=my-namespace
Mã:
kubectl run my-pod-1 --image=nginx:latest --dry-run
Mã:
kubectl run my-pod-1 --image=nginx:latest --dry-run=client
Mã:
kubectl run my-pod-2 --image=nginx:latest --namespace=my-namespace
Mã:
kubectl run nginx --image=nginx -l --labels=app=test
Mã:
kubectl get pods --show-labels
Mã:
kubectl get pods -o wide
Mã:
kubectl get pods --sort-by=.metadata.name
Mã:
kubectl logs my-pod-1
Mã:
kubectl get pods my-pod-2 --namespace=my-namespace -o wide
Mã:
kubectl logs my-pod-2 --namespace=my-namespace
Mã:
kubectl describe pod my-pod-1
Mã:
kubectl describe pods my-pod-1 --namespace=my-namespace
Mã:
kubectl delete pod my-pod-1
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
Mã:
kubectl get deployments --namespace=my-namespace
Mã:
kubectl create deployment my-deployment-1 --image=nginx
Mã:
kubectl get deployment my-deployment-1
Mã:
kubectl get deployment my-deployment-1 --show-labels
Mã:
kubectl describe deployments my-deployment-1
Mã:
kubectl get deployment my-deployment-1 -o yaml
Mã:
kubectl set image deployment my-deployment-1 nginx=nginx:1.16.1
Mã:
kubectl rollout history deployment my-deployment-1
Mã:
kubectl rollout undo deployment my-deployment-1
Mã:
kubectl rollout undo deployment my-deployment-1 --to-revision=2
Mã:
kubectl rollout status deployment my-deployment-1
Mã:
kubectl rollout restart deployment my-deployment-1
Mã:
kubectl scale --replicas=3 deployment my-deployment-1
Mã:
kubectl scale --current-replicas=3 --replicas=5 deployment my-deployment-1
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
Mã:
kubectl expose pod my-pod --port=80 --name nginx-service --type=NodePort --dry-run=client -o yaml
Mã:
kubectl create service nodeport nginx --tcp=80:80 --node-port=30080 --dry-run=client -o yaml
Mã:
kubectl get service
Mã:
kubectl get service -o wide
Mã:
kubectl get service --show-labels
Mã:
kubectl get services --all-namespaces
Mã:
kubectl describe service nginx-service
Mã:
kubectl get service nginx-service
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 podTạo một tệp định nghĩa cho pod
Mã:
kubectl run mypod --image=nginx --dry-run=client -o yaml > my-pod.yml
Mã:
kubectl create -f my-pod.yml
Mã:
kubectl delete -f my-pod.yml