‫Một số lệnh bạn đang sử dụng cho đến nay,
‫có một chút tự động hóa đằng sau chúng được gọi
‫là máy phát điện. Máy phát điện mà bạn có thể nghĩ ra như các mẫu.
‫Về cơ bản, họ tạo thông số kỹ thuật hoặc đặc tả
‫kỹ thuật để áp dụng cho cụm Kubernetes dựa trên các tùy
‫chọn dòng lệnh của bạn.
‫Bạn nghĩ về các lệnh như chạy, phơi
‫sáng và tạo. Họ thường sẽ có các trình tạo
‫phía sau cung cấp mẫu cần thiết với tất
‫cả các trường và các giá trị mặc định mà bạn không
‫nhất thiết phải chỉ định tại dòng lệnh.
‫Về cơ bản, điểm của các trình tạo
‫này là giúp bạn sử dụng các lệnh một dòng dễ dàng hơn, giống
‫như bạn đã quen với Docker, Docker Compose và Swarm.
‫Để sử dụng các lệnh một dòng đó trong Kubernetes
‫trong khi để mặc định một số cài đặt nâng cao hơn.
‫Thực sự, Swarm cũng làm được điều này.
‫Swarm có rất nhiều giá trị mặc định khi bạn tạo các dịch vụ
‫và ngăn xếp đều diễn ra ở chế độ nền.
‫Bạn chỉ không biết nó. Những máy phát điện là như vậy.
‫Đây là một ví dụ mà chúng tôi đang tạo một Triển khai
‫bằng lệnh create và chúng tôi đang cung cấp cho
‫nó một số tùy chọn để đáp ứng các yêu cầu tối thiểu.
‫Nó sẽ điền vào phần còn lại của thông số kỹ thuật
‫bằng một trình tạo.
‫Các trình tạo này khác nhau đối với từng
‫loại thứ bạn đang tạo. Cho dù đó là một dịch vụ, hoặc triển
‫khai, hoặc một công việc, hoặc một công việc cron.
‫Những thứ khác chúng ta sẽ nói sau.
‫Những bộ tạo đó thực sự có thể thay
‫đổi theo thời gian khi mỗi phiên bản Kubernetes ra mắt.
‫Họ có thể thay đổi một hoặc hai thuộc tính của đặc
‫điểm kỹ thuật đó.
‫Vì vậy, chúng có các phiên bản.
‫Đôi khi, nếu bạn đã xem trong tài liệu, bạn có
‫thể thấy một số YAML cho Kubernetes và nó nói điều gì đó về bản beta.
‫Điều đó thường xảy ra khi một trình tạo lần đầu được tạo, nó
‫có thể có phiên bản beta và sau đó khi chuyển
‫sang trình tạo trưởng thành, nó sẽ có V1.
‫Chúng tôi thực sự không thể có được danh sách các trình tạo tại dòng
‫lệnh bởi vì nó bao gồm các lệnh khác nhau và các tùy chọn
‫khác nhau mà các trình tạo có thể được sử dụng.
‫Cách dễ nhất ở đây trong tất cả các lệnh khác
‫nhau này để xem những gì sẽ được tạo ra
‫nếu bạn nhập lệnh đó vào một cụm, là sử dụng hai tùy chọn.
‫Chạy khô, đó là một cách thực sự gọn gàng để hiển thị đầu
‫ra của những gì bạn đã nhập và chúng ta sẽ
‫thấy điều đó sau một giây. Sau đó, -o, có nghĩa
‫là đầu ra. Chúng tôi đang nói rằng chúng tôi muốn có đầu ra trong YAML.
‫Về cơ bản, chúng tôi đang nói rằng hãy chạy lệnh này nhưng không
‫thực hiện nó về mặt kỹ thuật trên cụm.
‫Chỉ cần thử nó ra để xem điều gì sẽ xảy ra nếu tôi làm điều đó.
‫Sau đó, đồng thời cho tôi xem đầu ra YAML của những
‫gì sẽ được tạo nếu tôi hoàn thành lệnh này.
‫Về cơ bản, bạn sẽ nhận được các mẫu nhỏ đẹp.
‫Bạn thậm chí có thể sử dụng nó để bắt đầu tạo YAML của riêng mình mà chúng tôi
‫sẽ sử dụng trong các bài giảng sau này.
‫Cuối cùng, máy phát điện ở đây.
‫Bạn cũng có thể coi chúng là các mặc định cố định.
‫Họ thực sự không cố chấp.
‫Chúng siêu nhỏ.
‫Chúng thường là 10 đến 15 dòng YAML.
‫Chỉ là mức tối thiểu để bắt đầu một việc.
‫Tuy nhiên, họ có ý kiến, đó là lý do tại sao họ
‫có các phiên bản. Bạn có thể thấy bản
‫cải tiến phiên bản beta và không có gì. Tôi coi họ là người cố chấp
‫nhưng họ vẫn ổn, đúng. Chúng sẽ hoạt động cho hầu hết các
‫trường hợp sử dụng khi bạn chỉ đang thử mọi thứ cho nhà phát triển và thử nghiệm.
‫Hãy xem qua một vài ví dụ để xem các
‫trình tạo này tại dòng lệnh.
‫Điều đầu tiên ở đây là Triển khai như chúng tôi đã sử dụng trước đây.
‫Việc tạo triển khai.
‫Bạn sẽ nhận thấy rằng tôi đặt --dry-run ở cuối.
‫Nếu bạn chỉ chạy một cách khô khan, nó sẽ chỉ tiết
‫ra loại tài nguyên mà nó sẽ tạo ra.
‫Điều này tương tự như tên của tài nguyên mà chúng ta thấy
‫khi chúng ta liệt kê nó ra bằng lệnh kubectl get.
‫Nếu tôi nhấn vào mũi tên lên ở đó và gõ -o yaml
‫vào cuối, nó sẽ hiển thị cho
‫tôi kết quả đầu ra YAML mà nó đã tạo bằng lệnh đó.
‫Chúng ta sẽ xem xét các thông
‫số kỹ thuật của YAML sau. Hiện tại, bạn có thể thấy các
‫phần chính của những gì đã được thực hiện trong nền khi chúng ta thực hiện
‫lệnh tạo triển khai đó.
‫Đầu tiên, nó hiển thị phiên bản API, phiên bản của
‫loại tài nguyên này.
‫Vì vậy, chúng tôi đang sử dụng phiên bản ứng dụng
‫/ v1 ở đây. Loại này là triển khai, và đó
‫là bởi vì chúng tôi đang tạo Triển khai.
‫Nếu đó là một Công việc, đó là công việc.
‫Nếu đó là một Dịch vụ, nó sẽ nói là dịch vụ.
‫Đó là một cách nghĩ. Siêu dữ liệu sẽ luôn
‫ở đó cho bất kỳ tài nguyên nào bạn tạo.
‫Nó sẽ có dấu thời gian, là tùy chọn, vì nó sẽ
‫tự động tạo ra khi bạn thực sự
‫tạo ra thứ này. Sau đó, bạn sẽ có các nhãn
‫và sau đó là thuộc tính tên ở đây mà bạn có thể chỉ định.
‫Trong trường hợp này, bạn đang thấy rằng nó chứa rất nhiều thứ
‫này với những gì tôi đã đưa ra ở dòng lệnh.
‫Tôi đã nói với nó rằng tôi muốn gọi nó là thử nghiệm.
‫Vì vậy, nó đặt cho nó một cái tên thử nghiệm.
‫Nó chỉ định nó một ứng dụng vì chúng tôi đang sử dụng Deployment
‫ở đây, nó coi nó là một ứng dụng chứ không phải một dịch
‫vụ hay thứ gì khác. Nó sẽ gọi đó là kiểm tra nhãn.
‫Đây chỉ là những mặc định bên ngoài hộp.
‫Sau đó, thông số kỹ thuật cho Triển khai
‫là bản sao của một.
‫Bộ chọn mà chúng ta sẽ đề cập sau, nhưng về cơ
‫bản đó là cách thứ này xác định để chọn các nhóm bên
‫trong Triển khai này. Về cơ bản, đó là những gì
‫khớp với Triển khai đó với các nhóm của nó.
‫Sau đó, chiến lược. Mà chúng tôi để trống.
‫Mẫu ở đây dành cho ReplicaSet.
‫Sau đó, bạn sẽ thấy dưới thông số kỹ thuật đó các vùng
‫chứa mà nó sẽ tạo. Vì vậy, có một chút về một lớp
‫thông số kỹ thuật lồng nhau đang diễn ra ở đây. Đó là do sự phức tạp của
‫các lớp này, đúng không. Chúng tôi có các nhóm, sau đó là
‫ReplicaSets và sau đó là Deployments.
‫Bạn có thể thấy rằng nó đang tạo ra tất cả những
‫thứ đó và chúng tôi sẽ áp dụng điều đó cho API khi chúng
‫tôi nhấn lệnh này.
‫Hãy tạo thêm một số ở đây. Cách thứ hai là sử dụng
‫Jobs thay vì Deployments. Nó thường được thiết kế
‫khi bạn muốn tạo một nhóm các nhóm sẽ chạy một lần.
‫Nó có xu hướng đặt chúng với một mặc định để không khởi động lại.
‫Trong trường hợp này, chúng ta sẽ sử dụng cùng một
‫hình ảnh, cùng một tên. Chúng tôi sẽ
‫chạy khô nó với -output yaml. Bạn sẽ thấy nó khác biệt như thế nào.
‫Trong trường hợp này, vì chúng tôi không có nhiều cấp độ của một
‫Triển khai với ReplicaSet được lồng vào bên trong nó, chúng tôi không
‫cần nhiều cấp độ của thông số kỹ thuật.
‫Trước tiên, bạn sẽ thấy rằng cái này ngắn hơn nhiều.
‫Điều đó phần lớn là do với Deployments,
‫nó tạo ra một ReplicaSet lồng nhau, sau
‫đó tạo nhóm. Vì vậy, có nhiều cấp độ ở đó.
‫Ở đây, chúng tôi thực sự chỉ có công việc hàng loạt này là tạo
‫nhóm trực tiếp cho chúng tôi.
‫Bạn có thể thấy ở trên cùng rằng phiên bản API và loại
‫đều đã thay đổi.
‫Siêu dữ liệu rất giống nhau, mặc dù trong trường
‫hợp này, nó không tạo nhãn ứng dụng.
‫Thông số kỹ thuật chỉ dành cho Công việc và sau đó bên dưới nó, thông
‫số kỹ thuật bên trong nó, bên trong mẫu
‫đó, là thông số kỹ
‫thuật cho mỗi nhóm chứa, đúng không.
‫Một thông số kỹ thuật này sẽ được tạo cho nhiều người tôi
‫đã yêu cầu nó tạo.
‫Chúng tôi chỉ tạo một theo mặc định.
‫Vì vậy, sẽ có một vùng chứa chạy Nginx
‫với kiểm tra tên. Bạn sẽ nhận thấy rằng chính sách khởi
‫động lại là không bao giờ. Đó là sự thay đổi,
‫thực sự, với hầu hết các cách tạo vùng
‫chứa khác trong Kubernetes. Chúng sẽ tự động cố gắng tạo lại
‫hoặc khởi động lại. Với một công
‫việc hoặc sau đó với một công việc cron, bạn sẽ thấy rằng chính sách khởi
‫động lại được đặt thành không bao giờ. Bởi vì thông thường khi một
‫công việc kết thúc, nó sẽ được hoàn thành và bạn không
‫muốn vùng chứa đó tạo lại nó. Cuối cùng, hãy thực hiện một lệnh phơi bày.
‫Mặc dù có một quá trình chạy khô ở đây, khi bạn chạy triển khai
‫lộ trình, nó sẽ kiểm tra việc triển khai đó và
‫nhận ra rằng nó không tồn tại, vì vậy nó không thể
‫cung cấp cho bạn đầu ra mẫu vì nó không thực sự có
‫đầu vào hợp lệ .
‫Trong trường hợp này, về mặt kỹ thuật, chúng tôi cần tạo một Triển khai.
‫Trong cái này, chúng ta không cần nó chạy khô
‫và xuất ra. Chúng tôi chỉ muốn nó tạo ra nó.
‫Vì vậy, chúng ta hãy làm điều đó.
‫Sau đó, hãy quay trở lại lệnh phơi bày đó
‫và thử lại. Sau đó, chạy khô
‫sẽ hoạt động trong thời gian này. Chúng tôi sẽ có phiên bản API của V1.
‫Bạn sẽ nhận thấy rằng Dịch vụ là loại bây giờ thay vì
‫Triển khai hoặc Công việc.
‫Sau đó, chúng tôi có các nhãn tương tự khác.
‫Bạn sẽ thấy rằng thông số kỹ thuật là tất cả về cổng và
‫giao thức vì đó thực sự là Dịch vụ.
‫Đó là sự kết hợp của các tuyến mạng và mạng
‫con IP và các cổng TCP hoặc UDP, và những thứ
‫tương tự như vậy. Máy phát điện không nhất thiết phải
‫là một vấn đề lớn. Bạn không cần phải ghi nhớ chúng hoặc tìm
‫hiểu sự khác biệt giữa tất cả chúng. Bởi vì bạn sẽ tìm
‫thấy rất nhiều trong số chúng bằng lệnh kubectl run sẽ biến mất, bạn sẽ
‫tìm ra sau một phút. Sau đó, trong một bài
‫giảng sau, chúng ta sẽ nói thêm về các loại cách bạn
‫tạo vùng chứa và có thể tại sao bạn sẽ không sử dụng nhiều quá trình
‫chạy và tạo trong khối lượng công việc sản xuất của mình.
‫Hãy nhớ xóa triển khai thử nghiệm nếu bạn đã tạo nó cho
‫lệnh cuối cùng của chúng tôi, nơi chúng tôi đã thử nghiệm phần triển khai.