‫Được rồi. Một vài bài giảng cuối cùng này bạn
‫đã bắt đầu thấy tất cả các lĩnh vực khác nhau của Kubernetes đang
‫được mở rộng, đúng không. Nếu bạn nghĩ về
‫nó giống như một quả địa cầu nhỏ ở trung tâm này chỉ gồm
‫các mã nhị phân và cơ sở
‫hạ tầng cơ sở của Kubernetes, các vòng cứ ngày càng lớn hơn,
‫đúng không. Với mẫu
‫Ingress và Operator cũng như các định nghĩa tài nguyên tùy chỉnh.
‫Nó chỉ tiếp tục lớn hơn.
‫Bây giờ, tôi muốn nói với bạn về việc nó thậm
‫chí còn lớn hơn như thế nào. Trên thực tế, đây có lẽ là một lĩnh vực
‫mà nó hơi điên rồ.
‫Đó là trong lĩnh vực ý kiến xung quanh
‫cách triển khai YAML cho các tài nguyên này, phải không.
‫Cho đến nay, bạn đã thấy kubectl được áp dụng.
‫Chà, điều đó sẽ giúp bạn bắt đầu và điều đó có thể giúp bạn
‫thực hiện lần đầu tiên triển khai bộ điều phối vùng chứa,
‫đúng không. Bạn sẽ ... cho dù
‫bạn đang sử dụng Swarm hay Kubernetes, bạn sẽ nhận được YAML đó và
‫bạn sẽ có một repo, và bạn sẽ lưu trữ nó ở đó, và điều
‫đó sẽ có ý nghĩa.
‫Khi bạn bắt đầu mở rộng điều này, và bạn có các nhóm,
‫và bạn có quyền cũng như
‫các loại quyền khác nhau và những người phải quản
‫lý hoặc phê duyệt mọi thứ, mọi thứ sẽ trở nên phức tạp hơn.
‫Điều gì đã xảy ra trong thế giới này về cách triển
‫khai các ứng dụng của bạn trên Kubernetes
‫và về cơ bản thì đó chính là vấn đề. Chúng ta sẽ nói về thực tế là
‫hiện nay đã có hơn 60, thực sự thì có khoảng 80, nhưng rất nhiều
‫trong số đó không còn là dự án thực nữa hoặc chúng đã chết
‫hoặc đã được lưu trữ.
‫Nhưng có ít nhất 60 cách
‫để thêm các công cụ trên Kubernetes đơn giản
‫để triển khai các ứng dụng của bạn trên Kubernetes.
‫Có rất nhiều ý kiến, đúng.
‫Đây là lúc các ý kiến bắt đầu đưa ra về
‫cách bạn nên làm điều này. Mọi thứ từ Jenkins X đến Helm và
‫hơn thế nữa. Vâng, có tất
‫cả những điều và ý kiến khác nhau này, Kubernetes
‫không phải là một cơ sở hạ tầng cố định, vì vậy chúng tôi cần ý
‫kiến để hướng dẫn mọi người trong quá
‫trình triển khai và cập nhật ứng dụng của họ.
‫Vì vậy, mọi người đều có một. Nếu bạn đã đọc
‫bất cứ điều gì về cách thực hiện điều này trong
‫Kubernetes, bạn có thể đã nghe nói về Helm. Helm to Kubernetes về cơ
‫bản là Kubernetes tới các thùng chứa. Helm là cách thực tế mà mọi
‫người dùng để tạo mẫu
‫và sử dụng các tiêu chuẩn tạo mẫu để triển khai
‫ứng dụng của bên thứ ba hoặc tạo biểu đồ
‫Helm tùy chỉnh của riêng họ.
‫Đó là những gì chúng được gọi là biểu đồ.
‫Về cơ bản nó là một YAML được tạo khuôn mẫu,
‫nhưng nó cho phép Helm tạo hoặc
‫nhổ ra YAML sau đó sẽ đi vào cụm
‫Kubernetes cho bạn. Nhưng, đó không phải là ý kiến duy nhất, đúng.
‫Tôi đã nói rằng ít nhất là hơn 60 trong lần cuối cùng tôi nhìn.
‫Thực ra có một Trang tính Google mà tôi đưa vào các
‫liên kết tham khảo. Nó hơi lỗi thời, nhưng đó là danh sách cuối cùng
‫được biết đến về tất cả những nơi bạn có thể tìm
‫thấy những cách khác nhau này để triển khai. Bản thân Docker có ý kiến riêng của họ
‫rất thú vị, đặc biệt nếu bạn muốn tham gia chặt chẽ vào
‫hệ sinh thái Docker. Đó
‫là Soạn trên Kubernetes.
‫Nếu bạn có Docker Desktop, hôm nay bạn
‫có thể kích hoạt Kubernetes, điều mà bạn có thể đã thực hiện
‫cho phần này của khóa học. Bạn có thể sử dụng triển
‫khai ngăn xếp docker và thay vì nó đến Swarm, bạn có
‫thể gửi nó đến Kubernetes.
‫Nếu bạn xem lệnh triển khai ngăn xếp docker và xem trợ
‫giúp cho việc đó, bạn sẽ thấy rằng có một tùy
‫chọn ở đó để chỉ định bộ điều phối
‫mà bạn muốn sử dụng. Trên thực tế, trong
‫cài đặt của Docker Desktop, bạn có thể yêu cầu nó thích hoặc mặc
‫định thành Kubernetes cho các lệnh triển khai ngăn xếp.
‫Điều đó khá thú vị vì tôi nghĩ rằng Soạn YAML
‫khác với Kubernetes YAML.
‫Chà, đó là những gì Soạn trên Kubernetes hiện nay.
‫Về cơ bản, đó là một công cụ của bên thứ ba.
‫Đó là một cách kiên quyết, từ Docker, cách triển khai,
‫hoặc diễn giải, hoặc dịch về mặt kỹ thuật,
‫YAML của Soạn, định dạng Soạn, sang định
‫dạng YAML của Kubernetes.
‫Vì vậy, tôi đã đặt một liên kết ở đây
‫để bạn kiểm tra điều đó nếu bạn là người sẽ coi
‫Docker Enterprise là công cụ doanh nghiệp của bạn cho Kubernetes và
‫Swarm và Docker nói chung.
‫Sau đó, bạn chắc chắn nên kiểm tra điều này bởi vì điều
‫đó có sẵn. Một trong những điều thú
‫vị về tính năng đó là quy trình làm việc vẫn
‫cực kỳ đơn giản. Về cơ bản, bạn đang
‫sử dụng Soạn YAML của mình trong toàn bộ quy trình và bạn có thể sử
‫dụng nó trong Ops và Dev. Nó không bắt buộc bạn
‫phải nói, OK đối với các nhà phát triển, bạn phải có
‫YAML cho Soạn thảo và đối với sản xuất và máy chủ, bạn phải có
‫Kubernetes YAML này, và chúng không tương thích, đúng không.
‫Ý tưởng với Docker là họ nghĩ rằng điều này quá
‫phức tạp. Hãy đơn giản hóa nó.
‫Hãy chỉ sử dụng một tiêu chuẩn YAML cho toàn bộ
‫đường ống điều khiển.
‫Và tôi thích nó. Vấn đề với nó là
‫nó không hỗ trợ mọi thứ dưới ánh nắng mặt trời
‫mà Kubernetes có thể làm, đúng không. Ý tôi là rõ ràng,
‫chúng tôi có một trang trong Docker Docs để liệt kê tất cả các
‫tính năng của một tệp Soạn. Tuy nhiên, Kubernetes YAML phức
‫tạp đến mức chúng ta phải tìm hiểu nhiều lệnh và tham chiếu
‫API và tất cả những điều đó, đúng không.
‫Vì vậy, rõ ràng, nó không thể làm tất cả.
‫Điều thú vị là trên trang web Compose for Kubernetes,
‫họ nói về các tính năng khác nhau mà nó hỗ
‫trợ trong GitHub.
‫Đó là quy tắc 80/20.
‫Nói cách khác, nó hỗ trợ 20% các tính
‫năng của Kubernetes mà 80% chúng ta có thể cần.
‫Vì vậy, bạn có thể bắt đầu với điều đó và xem liệu quy trình làm việc
‫đó có phù hợp với bạn hay không. Một điều thú vị
‫khác là vào cuối năm 2018, họ mở mã nguồn Soạn trên
‫Kubernetes để bạn có thể triển khai nó trên bất kỳ cơ sở hạ
‫tầng Kubernetes nào mà bạn có và nó chỉ hoạt động
‫như một loại trình thông dịch. Nó dịch bất cứ lúc
‫nào bạn sử dụng Soạn tệp từ Docker và sử dụng
‫các lệnh Docker, nó sẽ kết nối cụm Kubernetes của
‫bạn cho bạn, dịch tự động thành Kubernetes YAML và
‫bạn sẽ đi. Thực tế, tại thời
‫điểm đó, bạn có thể bỏ qua rất nhiều Kubernetes YAML cho
‫các ứng dụng của mình. Bạn biết đấy, có thể
‫bạn sử dụng Kubernetes YAML cho những thứ cơ sở hạ tầng
‫mà bạn không triển khai hàng ngày. Tuy nhiên, có thể để
‫các nhà phát triển của bạn giúp họ viết Soạn YAML dễ dàng
‫hơn và đưa mọi thứ vào sản xuất nhanh hơn, bạn chọn sử dụng
‫Soạn trên Kubernetes làm quy trình làm việc.
‫Sau đó, có thể bạn sử dụng biểu đồ
‫Helm, một loại tiêu chuẩn cạnh tranh cho cơ sở hạ
‫tầng chính của bạn. Bởi vì điều về
‫Helm là nó có sẵn rất nhiều mẫu biểu đồ này
‫để bạn có thể triển khai ghi nhật
‫ký Prometheus hoặc Elasticsearch bằng ELK hoặc tương tự như vậy.
‫Nó sẽ đi kèm với những mẫu đó ngay lập
‫tức cho phép bạn bắt đầu nhanh hơn.
‫Ngoài ra, chỉ cần nhớ rằng tất cả đều là tùy chọn, phải không.
‫Bạn có thể chơi Kubernetes với YAML tiêu chuẩn mà bạn đang
‫chơi cho đến nay, và điều đó không sao cả.
‫Nó không yêu cầu những thứ khác.
‫Chúng chỉ là công cụ tùy chọn của bên thứ ba.
‫Theo truyền thống, khi nhóm phát triển, khi bạn nhận
‫được nhiều cụm Kubernetes sản xuất và có nhiều nhóm
‫tham gia, thì mọi thứ sẽ trở nên khó khăn
‫hơn và có thể bạn sẽ gặp nhiều hơn
‫một giải pháp. Bạn có thể kết thúc với Helm trên một số cụm nhất định.
‫Bạn có thể kết thúc với Soạn trên Kubernetes cho các nhà phát triển
‫của bạn hoặc tương tự như vậy.
‫Hoặc, một trong số 60 công cụ cộng khác trong
‫hệ sinh thái.
‫Điểm cuối cùng là vì Helm thực sự là người dẫn đầu trong không gian
‫này ngay bây giờ, nên hầu hết mọi
‫bản phân phối đều sử dụng nó, hoặc hỗ trợ nó, hoặc thậm
‫chí đi kèm với nó. Chỉ cần cân nhắc rằng
‫khi bạn đang xem xét những công cụ này, bạn có thể không thể
‫tránh được Helm trong một môi trường rộng lớn.
‫Bạn chỉ cần sử dụng nó.
‫Điều tốt đẹp là ngày nay nó đã lên 3. 0 và có rất nhiều
‫tùy chọn triển khai đơn giản hơn cho nó
‫trong 3. 0 so với 1. 0 và
‫2. 0. Vì vậy, mọi thứ đang trở
‫nên tốt hơn và dễ dàng hơn mọi lúc. Rất nhiều công cụ triển khai
‫này thực sự chỉ giúp bạn tạo mẫu YAML của mình theo nhiều cách
‫khác nhau. Bản thân Kubernetes đã
‫không thực sự có bất cứ thứ gì trong thời gian dài nhất.
‫Trong các bản phát hành gần đây, bây giờ nó đã xuất hiện
‫với một thứ gọi là Kustomize với chữ K.
‫Khi bạn bắt đầu nhìn thấy từ đó với chữ K, bạn biết rằng đó
‫là một tính năng đặc biệt.
‫Nó cho phép bạn làm những việc tương tự như Helm
‫và các giải pháp triển khai khác, nhưng nó
‫không thực sự mạnh mẽ
‫như Helm, đúng không.
‫Vì vậy, Helm vẫn là trưởng nhóm.
‫Kustomize là một đứa trẻ mới trong khối, nhưng nó rất khác
‫biệt với mọi thứ bạn làm trong Kubernetes.
‫Lệnh kubectl hỗ trợ nó.
‫Thực sự nó là gì nó chỉ lấy,
‫thay vì một YAML khuôn mẫu, nó chỉ lấy YAML mà bạn đã
‫có đó là Kubernetes YAML tiêu chuẩn và sau đó bạn có
‫thể lấy tệp đó rồi chạy thứ gì đó khác lên
‫trên và thay đổi nó bằng ghi đè của các loại.
‫Tương tự như cách chúng tôi làm trong Swarm.
‫Chúng tôi thực sự có trong Swarm và Compose, chúng tôi có ghi đè
‫lên các tệp và những thứ tương tự.
‫Giờ đây, họ đã có sẵn sản phẩm này.
‫Nó có rất nhiều tính năng.
‫Tôi nghĩ, dù ít hay nhiều, nó không hoàn toàn ở đó về bộ
‫tính năng của những gì Helm có, nhưng ít nhất
‫nó cũng xuất sắc.
‫Hãy nhớ rằng, nếu bạn có Docker, bản phát
‫hành mới nhất, 19. 03 hoặc mới hơn của
‫Docker, hiện có lệnh phụ ứng dụng docker, tự tạo mẫu
‫của Soạn YAML và thực sự rất
‫có thể so sánh với tùy chọn tùy chỉnh này
‫cho Kubernetes. Một lần nữa, nếu
‫bạn sẽ tiếp tục theo dõi Docker và bạn sẽ
‫xem xét Docker Enterprise hoặc bạn thực sự thích cách Docker tập trung vào quy
‫trình làm việc của nhà phát triển, hãy xem
‫lệnh phụ của ứng dụng docker và cả repo ứng dụng docker, Tôi sẽ
‫đưa các tài nguyên vào đây.
‫Bởi vì họ có tài liệu về cách bạn
‫có thể sử dụng Soạn YAML, trích xuất những thứ như biến môi
‫trường và những thứ khác. Gói tất cả thành một hình ảnh
‫duy nhất và sau đó gửi YAML của bạn dưới dạng hình ảnh.
‫Có nghĩa là bây giờ bạn có thể phiên bản YAML của
‫mình và triển khai nó với một dòng duy nhất
‫mà không cần phải làm như kéo YAML xuống rồi gõ các lệnh dài.
‫Đó là một cách khá thú vị để làm điều đó.
‫Nó đang sử dụng một thứ mới gọi là tiêu chuẩn CNAB, mà
‫chúng ta sẽ không đi sâu vào đây, nhưng đó
‫là C N A B.
‫Đó là một thông báo mà Docker và Microsoft đã đưa
‫ra vào năm 2018.
‫Bạn có thể kiểm tra tất cả những điều đó trên trang web
‫ứng dụng Docker trong phần tài nguyên. Một lần nữa, tất cả nội
‫dung này là về các cách tùy chọn của bên thứ ba để tùy chỉnh
‫và mở rộng YAML mặc định để giúp nhóm của bạn dễ dàng hơn
‫khi bạn phát triển.