Logo Zephyrnet

Hướng dẫn cơ bản về Kubernetes trong sản xuất

Ngày:

Bài báo này đã được xuất bản như một phần của Blogathon Khoa học Dữ liệu.

Giới thiệu

Được thực hiện đặc biệt bằng cách sử dụng hệ thống điều phối vùng chứa và kiến ​​trúc microservice. Vào năm 2014, những tiếng vang đầu tiên của từ Kubernetes trong lĩnh vực công nghệ đã được nghe thấy và việc Kubernetes chinh phục được phần nào sự linh hoạt và uy quyền của nó. Hồi đó, mọi người xung đột về việc "Bạn thậm chí phát âm nó như thế nào?"

XNUMX năm trôi qua, và giờ đây nó là công cụ quản lý container hiệu quả nhất đang làm điên đảo thế giới. Là một giải pháp mã nguồn mở được thiết lập với hệ sinh thái phong phú, nó đã cung cấp xương sống cho nhiều dịch vụ trực tuyến nổi bật nhất thế giới.

Tuy nhiên, không nhiều người biết về nó khi Kubernetes đưa vào sản xuất. Mọi thứ có thể phức tạp hơn một chút và nhiều chủ đề cần được giải thích chi tiết.

Động lực chính đằng sau hướng dẫn này là cung cấp một cái nhìn tổng quan đơn giản về toàn bộ thế giới Kubernetes và giúp bạn bắt đầu với các nguyên tắc cơ bản của Kubernetes.

Bạn sẽ khám phá tầm quan trọng, các thành phần chính, các kiến ​​trúc khác nhau, những thách thức mà người dùng phải đối mặt và cách vượt qua chúng. Bạn sẽ học cách triển khai ứng dụng đầu tiên của mình trên một cụm Kubernetes và ở phần cuối của hướng dẫn, chúng ta sẽ xem xét kỹ hơn một số cân nhắc chính và các trường hợp sử dụng của Kubernetes.

Vì vậy, không cần tạm dừng thêm nữa, chúng ta hãy bắt đầu. Chúc vui vẻ!

Mục lục

  1. Kubernetes là gì?
  2. Tại sao Kubernetes lại quan trọng đối với tổ chức của bạn?
  3. Các khái niệm & kiến ​​trúc Kubernetes cơ bản
  4. Sự khác biệt chi tiết giữa Kubernetes và Docker
  5. Những thách thức đối với người dùng Kubernetes và các giải pháp của nó
  6. Kubernetes Lợi ích cho các công ty
  7. Cách thiết lập Docker và Kubernetes trên hệ thống Linux
  8. Các phương pháp hay nhất cho Kubernetes trong sản xuất & nâng cao năng suất cụm
  9. Ví dụ về những người khổng lồ công nghệ đang sử dụng Kubernetes để phát huy hết tiềm năng của nó
  10. Kết luận:
  11. về tác giả
  12. dự án
Kubernetes trong Sản xuất
https://unsplash.com/@carrier_lost

Kubernetes là gì?

Kubernetes (còn được gọi là k8s hoặc “Kube”) là một công cụ quản lý vùng chứa mạnh mẽ. Nó là một nền tảng điều phối di động, có thể mở rộng và mã nguồn mở, tự động hóa nhiều quy trình và dịch vụ thủ công để triển khai, xử lý và mở rộng các cụm được container hóa.

Kubernetes ban đầu được phát minh và thiết kế bởi các kỹ sư tại Google và hiện có một hệ sinh thái rộng lớn, đang phát triển nhanh chóng. RedHat là một trong những công ty hợp tác với Google trên Kubernetes khi Google đang phát triển hơn 2 tỷ đợt triển khai container mỗi tuần. Google đã tài trợ dự án Kubernetes cho Tổ chức Điện toán Bản địa Đám mây (CNCF) mới được phát triển vào năm 2015.

Tại sao Kubernetes lại quan trọng đối với Tổ chức của bạn?

Kubernetes, không nghi ngờ gì nữa, là một giải pháp phù hợp cho công ty của bạn nếu bạn sử dụng nó cho đúng nhiệm vụ và trong bối cảnh thích hợp. Đây là làn sóng lớn tiếp theo trong điện toán đám mây và là nền tảng nổi tiếng nhất để kiểm soát và điều phối các giải pháp dựa trên các thùng chứa.

Giả sử, nếu bạn được yêu cầu vận hành các container trong quá trình sản xuất theo cách thủ công, trong trường hợp đó, bạn có thể kết thúc với hàng trăm hoặc hàng nghìn container theo thời gian, điều này hoàn toàn giết thời gian. Nó không đủ để chạy các thùng chứa. Bạn cũng cần triển khai, quản lý, kết nối, cập nhật, tích hợp, điều phối, tăng / giảm quy mô và làm cho chúng có khả năng chịu lỗi.

Đây là điểm mà Kubernetes quyết định. Nếu bạn tạo ra một giải pháp dựa trên các thùng chứa ở quy mô lớn, K8s là công cụ được lựa chọn nếu bạn cần. Bạn có thể nhanh chóng triển khai, mở rộng quy mô nhiều phiên bản của vùng chứa, vận hành các dịch vụ khác nhau và mở rộng quy mô chúng lên và xuống chỉ với một chút thực hành.

Các khái niệm & kiến ​​trúc Kubernetes cơ bản

Khi bạn mới bắt đầu với Kubernetes, bạn nên biết trước về các thành phần thiết yếu và kiến ​​trúc chức năng của Kubernetes. Kubernetes cluster tuân theo kiến ​​trúc client-server và được tạo thành từ mặt phẳng điều khiển (chính), hệ thống lưu trữ phân tán để duy trì trạng thái cụm (etcd) nhất quán và một loạt các nút cụm (công nhân).

Kubernetes xử lý khối lượng công việc bằng cách đặt các nhóm của bạn vào các nút. Tùy thuộc vào cài đặt của bạn, một nút có thể xác định máy ảo hoặc máy vật lý. Mỗi nút sẽ bao gồm các thành phần thiết yếu để chạy nhóm. Có hai danh mục riêng biệt trong Kubernetes: nút Master và Worker.

Hãy cùng chúng tôi xem chi tiết từng danh mục dưới đây:

Mặt phẳng điều khiển hoặc nút chính

Nó là người ra quyết định toàn cầu cho cụm bao gồm máy chủ Kube-API, bộ lập lịch Kube, trình quản lý-điều khiển đám mây và trình quản lý Kube-controller. Nó kiểm soát việc lập lịch và hành vi tổng thể của cụm. Các nút có các thành phần này đang chạy không có bất kỳ vùng chứa người dùng nào đang chạy. Mặt phẳng điều khiển là thành phần chính của cụm và thường được đặt tên là các nút chính.

1. Trình quản lý bộ điều khiển đám mây (chính)

Trình quản lý bộ điều khiển đám mây chạy trong nút chính và xử lý các quy trình và vùng chứa của bộ điều khiển trong Pods. Nó cũng được sử dụng để kiểm tra xem một nút đã bị kết thúc hoặc thiết lập bộ định tuyến, bộ cân bằng tải hoặc khối lượng trong cơ sở hạ tầng đám mây. Và, nó là một trình quản lý-bộ điều khiển đám mây cho phép bạn kết nối các cụm của mình với API của nhà cung cấp đám mây cơ bản.

2. Etcd- Lưu trữ dữ liệu (chính)

Etcd là một kho lưu trữ khóa-giá trị phân tán và đơn giản được sử dụng để lưu giữ và sao chép dữ liệu cụm Kubernetes. Thông tin nó lưu trữ bao gồm số lượng nhóm, trạng thái của chúng, không gian tên, đối tượng API và các phần tử khám phá dịch vụ. Nó cũng chứa thông tin cụm trong các cặp khóa-giá trị và để chạy etcd, trước tiên bạn cần định cấu hình một công cụ dòng lệnh để giao tiếp với cụm đã nói.

3. Kube-control-manager (chính)

Trình quản lý bộ điều khiển Kubernetes là một thành phần nút chính. Nó là một cụm bộ điều khiển được đóng gói trong một tệp nhị phân duy nhất và nó hoạt động dựa trên quá trình điều khiển. Bộ điều khiển nút, bộ điều khiển sao chép và bộ điều khiển điểm cuối có trong trình quản lý này.

4. Kube-Scheduler (chính)

Kube-Scheduler là một thành phần mặt phẳng điều khiển chịu trách nhiệm chỉ định các nhóm cho các nút trong cụm của bạn dựa trên việc sử dụng tài nguyên. Bộ lập lịch sẽ sử dụng các yêu cầu tính toán, mức sử dụng bộ nhớ và các ràng buộc về phần cứng / phần mềm.

Nút công nhân

Một nút công nhân chạy các ứng dụng được chứa trong vùng chứa và sẽ có một phiên bản của kubelet, Kube-proxy và thời gian chạy vùng chứa nhất định. Một nút công nhân được điều khiển bởi nút chính và nó liên tục báo cáo với máy chủ api của máy bay điều khiển về tình trạng của nó.

1. Kubelet (công nhân)

Kubelet hoạt động như một tác nhân bên trong mỗi nút trong một cụm Kubernetes. Nó chịu trách nhiệm về sự vận hành lành mạnh của các chu kỳ nhóm và theo dõi các thông số kỹ thuật của nhóm mới hoặc được sửa đổi từ các nút chính. Nó đảm bảo rằng trạng thái của nhóm khớp với đặc điểm kỹ thuật của nhóm và thường xuyên trao đổi với Kubernetes API để chuyển tiếp các chi tiết về tình trạng của nhóm.

2. Kube-proxy (công nhân)

Kube-proxy là một dịch vụ proxy mạng chạy trên mỗi nút công nhân trong một cụm Kubernetes. Nó thực hiện chuyển tiếp yêu cầu đến đúng nhóm / vùng chứa và duy trì các quy tắc mạng.

Sự khác biệt giữa Kubernetes và Docker

Kubernetes và Docker là hai chủ đề thường gây nhầm lẫn cho mọi người trong các công nghệ gốc đám mây. Nếu bạn cần phải đưa ra một quyết định kinh doanh, bạn có thể tự hỏi làm thế nào hai điều này có liên quan với nhau.

Hãy cho chúng tôi hiểu sự khác biệt giữa chúng một cách chi tiết trong bảng dưới đây:

Kubernetes phu bến tàu
Định nghĩa Kubernetes là một hệ sinh thái để thao tác một cụm các vùng chứa Docker được gọi là nhóm. Docker là một nền tảng vùng chứa để xây dựng, định cấu hình và phân phối vùng chứa.
Ghi nhật ký và giám sát Kubernetes cung cấp các công cụ tích hợp để ghi nhật ký và giám sát.
Docker có các tùy chọn cho các công cụ của bên thứ 3 như ELK để ghi nhật ký và giám sát.
Kết quả

Kubernetes không phải là một giải pháp hoàn chỉnh và sử dụng các plugin tùy chỉnh cho chức năng của nó.

Docker sử dụng giải pháp phân cụm riêng cho các vùng chứa Docker được gọi là Docker Swarm.

của DINTEK Việc cài đặt phức tạp trong Kubernetes, nhưng các cụm này rất mạnh khi được thiết lập. Cài đặt nhanh chóng và dễ dàng so với Kubernetes, nhưng cụm yếu.

GUI Kubernetes có bảng điều khiển riêng. Không có GUI trong Docker.
khả năng mở rộng Kubernetes có khả năng mở rộng cao và nhanh nhẹn. Docker cũng có khả năng mở rộng cao và quy mô nhanh hơn Kubernetes gấp 5 lần.
Tự động mở rộng quy mô Kubernetes cho phép bạn thực hiện tự động mở rộng quy mô. Docker không cho phép bạn thực hiện tự động mở rộng quy mô.
Cân bằng tải Trong Kubernetes, cần có sự can thiệp thủ công để cân bằng lưu lượng tải giữa các vùng chứa khác nhau trong các Nhóm riêng biệt. Docker tự động cân bằng tải lưu lượng giữa các vùng chứa trong các cụm.
Cập nhật luân phiên & khôi phục

Kubernetes có thể triển khai các bản cập nhật liên tục và hoàn thành các bản khôi phục tự động.

Docker cũng có thể triển khai các bản cập nhật luân phiên nhưng không tự động khôi phục.
Khối lượng dữ liệu Kubernetes chỉ có thể chia sẻ dung lượng lưu trữ với các vùng chứa khác trong cùng một Pod.

Docker có thể chia sẻ dung lượng lưu trữ với bất kỳ vùng chứa nào khác.

Những thách thức mà Kubernetes phải đối mặt trong sản xuất

Trong khi Kubernetes đã cung cấp một giải pháp lý tưởng cho hầu hết các vấn đề về phân phối ứng dụng microservice, mọi người vẫn phải đối mặt với nhiều vấn đề khi sử dụng hoặc triển khai vùng chứa. Khi chúng tôi triển khai Kubernetes để điều phối vùng chứa, một số thách thức là duy nhất đối với Kubernetes.

Hãy cùng tìm hiểu sâu hơn và xem cách tránh những thách thức này để khai thác toàn bộ tiềm năng:

1. Vấn đề bảo mật

Kubernetes không có nghĩa là để thực thi các chính sách; do đó bảo mật vẫn là một trong những thách thức quan trọng nhất của Kubernetes. Nói một cách dễ hiểu, nó phức tạp và nếu không được giám sát chính xác, nó có thể cản trở việc nhận ra các lỗ hổng. Việc sử dụng Kubernetes để triển khai gián tiếp cung cấp một cách dễ dàng cho tin tặc xâm nhập vào hệ thống của bạn.

Giải pháp: Để vượt qua thách thức này, các tổ chức phải cải thiện bảo mật với các mô-đun của bên thứ 3 và tích hợp bảo mật và tuân thủ trong các giai đoạn xây dựng, thử nghiệm, triển khai và sản xuất của họ. Ngoài ra, khóa riêng có thể được ẩn để bảo vệ tối đa khi bạn tách vùng chứa giao diện người dùng và phụ trợ thông qua tương tác được kiểm soát.

2. Các vấn đề về mạng

Các phương pháp tiếp cận mạng truyền thống không tương thích và nhiều tổ chức đã gặp phải một số vấn đề. Những thách thức như độ trễ cao và rớt gói mà bạn phải đối mặt tiếp tục gia tăng theo quy mô triển khai của bạn. Các vấn đề khác được thấy là phức tạp và nhiều người thuê nhà. Cuối cùng, gốc rễ của vấn đề là thiết lập lõi Linux vì hiệu suất của Kubernetes phụ thuộc nhiều vào nó. Do đó, bạn cần liên tục kiểm tra chế độ điều chỉnh tần số CPU.

Giải pháp: Gán plugin giao diện mạng vùng chứa (CNI) cho phép Kubernetes tích hợp liền mạch vào cơ sở hạ tầng và truy cập các ứng dụng trên các nền tảng đa dạng. Một cách khác để đối phó với thách thức này là tăng kích thước của bộ đệm mạng trong lõi Linux, số lượng hàng đợi trong NIC và thiết lập liên kết.

Các giải pháp này làm cho giao tiếp vùng chứa trơn tru, nhanh chóng và được bảo vệ, dẫn đến quy trình điều phối vùng chứa liền mạch.

3. Vấn đề về khả năng tương tác

Khả năng tương tác có thể là một vấn đề quan trọng, giống như mạng. Giao tiếp giữa các ứng dụng gốc có thể gây nhầm lẫn khi bạn bật các ứng dụng gốc đám mây có thể tương tác trên Kubernetes. Nó cũng ảnh hưởng đến việc triển khai các cụm và không hoạt động hiệu quả trong sản xuất như trong phát triển, đảm bảo chất lượng (QA) hoặc dàn dựng. Hơn nữa, bạn có thể phải đối mặt với nhiều vấn đề về hiệu suất, quản trị và khả năng tương tác khi chuyển sang môi trường sản xuất cấp doanh nghiệp.

Giải pháp: Người dùng có thể triển khai cùng một API, giao diện người dùng và dòng lệnh để giảm bớt các thách thức về khả năng tương tác. Ngoài ra, họ có thể tận dụng các dự án hợp tác trên các nền tảng khác nhau như Google, RedHat, SAP và IBM để cung cấp các ứng dụng chạy trên nền tảng đám mây gốc.

Kubernetes trong Sản xuất - Lợi ích

Kubernetes là dự án phát triển nhanh nhất sau Linux trong hệ sinh thái phần mềm mã nguồn mở. Có vô số lý do đằng sau đó và tại sao mọi nhà phát triển chọn Kubernetes như một giải pháp để giải quyết nhu cầu điều phối vùng chứa.

Hãy để chúng tôi nghiên cứu cụ thể từng người trong số họ dưới đây:

1. Kubernetes có thể cải thiện năng suất của nhà phát triển

Kubernetes, với các cấu trúc khai báo và cách tiếp cận thân thiện với hoạt động của nó, có thể dẫn đến tăng năng suất đáng kể nếu được triển khai đầy đủ vào quy trình công việc kỹ thuật của bạn. Bối cảnh của Tổ chức Điện toán Bản địa Đám mây (CNCF) giúp sử dụng Kubernetes dễ dàng hơn bằng cách giảm thiểu tác động tiêu cực của độ phức tạp chung của nó một cách hiệu quả. Các nhóm có thể mở rộng quy mô và triển khai nhanh hơn bằng cách dựa vào một số công cụ hiện có được tạo rõ ràng cho phần mềm gốc đám mây. Thay vì một lần triển khai mỗi tháng, giờ đây các nhóm có thể triển khai nhiều lần trong ngày và xây dựng các giải pháp mà bạn có thể tự mình nghĩ ra.

2. Kubernetes là mã nguồn mở và có thể thay thế rẻ hơn

Kubernetes là phần mềm hoàn toàn mã nguồn mở (FOSS), một dự án do cộng đồng lãnh đạo do CNCF giám sát và đôi khi có thể có giá cả phải chăng hơn các giải pháp khác (dựa trên nhu cầu ứng dụng của bạn). Mặc dù Kubernetes được phát triển và bảo trì tích cực, nhưng nó thường đắt hơn đối với các ứng dụng tối thiểu do nhu cầu tính toán chung. Với nhiều công ty nổi tiếng ủng hộ nguyên nhân của nó, không một công ty nào “sở hữu” nó hoặc có quyền đơn phương về cách nền tảng mở rộng.

3. Tính di động

Kubernetes có thể chạy trên hầu hết mọi cơ sở hạ tầng cơ bản như đám mây công cộng, đám mây riêng, phần cứng tại chỗ hoặc thậm chí là kim loại trần. Việc phát triển các ứng dụng cho Kubernetes có nghĩa là mã có thể được triển khai lại nhiều lần trên nhiều loại cấu hình cơ sở hạ tầng và môi trường khác, làm cho nó trở thành một phần mềm có tính di động cao.

XUẤT KHẨU. Khả năng mở rộng

Kubernetes giúp dễ dàng mở rộng số lượng container đang sử dụng theo chiều ngang, dựa trên các yêu cầu của ứng dụng. Bạn có thể sửa đổi số này từ dòng lệnh hoặc sử dụng Công cụ tự động cân bằng khối ngang để điều chỉnh số lượng vùng chứa dựa trên số liệu sử dụng. Nó đảm bảo ứng dụng của bạn được thiết lập và chạy rất đáng tin cậy bằng cách tung ra các bản cập nhật để điều chỉnh phần mềm của bạn mà không cần thời gian chết.

5. Tự chữa bệnh

Có một số lý do khiến các thùng chứa có thể bị lỗi. Kubernetes giữ cho việc triển khai hoạt động tốt bằng cách khởi động lại các vùng chứa bị lỗi, thay thế các vùng chứa không phản hồi, loại bỏ các vùng chứa không trả lời kiểm tra tình trạng do người dùng xác định và tạo lại các vùng chứa đứng trên một Nút phụ trợ bị lỗi trên các Nút công cộng khác. Nó không quảng cáo chúng cho người tiêu dùng cho đến khi chúng sẵn sàng phục vụ và giúp giảm thiểu điểm chung của quy trình duy trì đơn đăng ký.

Cách thiết lập Docker & Kubernetes trên hệ thống Linux

Hướng dẫn này sẽ giúp bạn thiết lập Docker, Kubernetes và các công cụ của nó trong hệ thống Linux. Mã này cũng có thể được sử dụng để thiết lập các bản phân phối Linux khác.

Lưu ý: Ví dụ này sẽ giúp bạn thiết lập Docker, Kubernetes và các công cụ thiết yếu cần thiết để triển khai các ứng dụng trên máy trạm của bạn. Nếu bạn đang tìm kiếm một hướng dẫn sẽ giúp bạn xây dựng cụm của riêng mình và triển khai các ứng dụng trên cụm, thì hãy làm theo hướng dẫn.

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

# 1. Bước đầu tiên là cài đặt Docker, vì nó được yêu cầu trên tất cả các phiên bản của Kubernetes. Mở thiết bị đầu cuối từ tài khoản người dùng gốc, cập nhật thông tin gói và đảm bảo gói apt đang hoạt động bằng cách chạy lệnh sau.

Lệnh

Cách thiết lập dock

# 2. Trong dòng tiếp theo, chúng tôi thêm khóa GPG mới, một công cụ được sử dụng để ký các tệp và kiểm tra chữ ký của chúng. Sau đó, cập nhật hình ảnh gói API.

Lệnh

Lệnh - Kubernetes trong Sản xuất

# 3. Nếu tất cả các lệnh đã được thực thi thành công, bạn có thể cài đặt công cụ Docker. Tuy nhiên, điều cần thiết là phải xác minh rằng phiên bản hạt nhân bạn đang sử dụng là chính xác. Nếu không, hãy xem xét cập nhật chỉ mục gói.

Lệnh

Lệnh 2 - Kubernetes trong Sản xuất

# 4. Sau đó, chạy lệnh để cài đặt Docker Engine và Docker daemon. Xác minh xem Docker đã được cài đặt hay chưa.

Lệnh

Docker - Kubernetes trong Sản xuất

# 5. Bây giờ, hãy chạy lệnh sau để cài đặt etcd 2.0 trên Kubernetes Master Machine.

Lệnh

Lệnh 6

# 6. Bây giờ là giai đoạn cuối cùng, nơi chúng ta sẽ xây dựng Kubernetes và cài đặt nó trên tất cả các máy trong cụm. Lệnh sau sẽ tạo một _output dir trong thư mục gốc của thư mục Kubernetes. Từ đây, chúng ta có thể giải nén thư mục này vào bất kỳ thư mục nào mà chúng ta lựa chọn. Trong ví dụ của chúng tôi, chúng tôi giải nén nó trong / opt / bin.

Lệnh

Nền tảng đám mây

# 7. Bây giờ là phần kết nối mạng. Phần này sẽ tạo một mục nhập trong tệp máy chủ để bắt đầu với thiết lập nút và chủ Kubernetes. Điều này có thể được thực hiện trên máy nút.

Lệnh

Kubernetes - Kubernetes trong Sản xuất

# 8. Chúng tôi sẽ tạo các cấu hình thực tế trên Kubernetes Master bằng cách sao chép tất cả các tệp cấu hình vào vị trí hiện tại của chúng.

Lệnh

Bậc thầy Kubernetes

# 9. Sau khi sao chép tất cả các tệp cấu hình vào các vị trí cần thiết, hãy quay lại cùng thư mục mà chúng tôi đã tạo thư mục Kubernetes.

Lệnh

Kubernetes trong Sản xuất

# 10. Bây giờ, hãy cập nhật tệp cấu hình đã sao chép trong /etc.dir. Định cấu hình etcd trên master bằng cách sử dụng lệnh dưới đây.

Lệnh

lệnh 4 | Kubernetes trong Sản xuất

# 11. Bây giờ chúng ta sẽ cấu hình Kube-apiserver trên master. Sửa đổi / etc / default / kube-apiserver mà chúng tôi đã sao chép trước đây.

Lệnh

Kubernetes trong Sản xuất

# 12. Tiếp theo, chúng tôi sẽ định cấu hình Trình quản lý bộ điều khiển Kube bằng cách thêm nội dung bên dưới vào / etc / default / Kube-controller-manager.

Lệnh

Kubernetes trong Sản xuất

# 13. Định cấu hình bộ lập lịch Kube trong tệp tương ứng và chúng ta nên tiếp tục bằng cách kích hoạt Kubernetes Mater bằng cách khởi động lại Docker.

Lệnh

Lệnh

# 14. Nút công nhân sẽ chạy hai dịch vụ: kubelet và Kube-proxy. Sao chép các tệp nhị phân (chúng tôi đã tải xuống trước đó) vào các thư mục bắt buộc của chúng để định cấu hình nút công nhân.

Lệnh

Phương pháp sao chép tệp

#15. Để định cấu hình tệp kubelet và Kube-proxy, hãy mở cấu hình tại /etc/init/kubelet.conf.

Lệnh

cấu hình

# 16. Tất cả các cấu hình cho Master và Worker đã xong. Khởi động lại dịch vụ Docker và kiểm tra bằng cách chạy các lệnh sau.

Lệnh

lệnh

Kết luận: Bây giờ bạn đã cài đặt thành công Docker và Kubernetes trên hệ thống của mình. Sau bước này, bây giờ bạn đã sẵn sàng triển khai các ứng dụng của mình trên Kubernetes cluster. Cái này hướng dẫn tại đây có thể giúp bạn tìm hiểu Cách triển khai ứng dụng đầu tiên của bạn trên cụm.

Các phương pháp hay nhất cho Kubernetes trong sản xuất

Kubernetes cải tiến một giải pháp vùng chứa tương lai để nâng cao năng suất và nó đã trở thành công cụ phổ biến nhất trong miền DevOps, theo khảo sát năm 2020 của CNCF.

Với sự phổ biến, sự phức tạp để quản lý và xử lý cụm của bạn cũng tăng lên. Để sử dụng hết tiềm năng của các cụm Kubernetes, tôi khuyên bạn nên làm theo các phương pháp hay nhất được đề cập trong hướng dẫn này.

1. Luôn xác nhận bạn đang sử dụng phiên bản mới nhất

Với các bản cập nhật phiên bản thường xuyên, bạn phải luôn đảm bảo rằng bạn đang sử dụng phiên bản Kubernetes ổn định mới nhất trong cụm sản xuất của mình vì Kubernetes phát hành các tính năng mới, sửa lỗi và nâng cấp nền tảng với các bản cập nhật định kỳ. Tải xuống các phiên bản mới nhất sẽ đảm bảo rằng bạn không bỏ lỡ các bản vá bảo mật cập nhật giúp trì hoãn các vectơ tấn công tiềm ẩn trong khi sửa chữa các lỗ hổng được báo cáo. Cập nhật bảo mật là rất quan trọng; do đó tốt hơn là nên cập nhật cụm trên phiên bản Kubernetes mới nhất.

2. Sử dụng kiểm soát phiên bản cho tệp COnfigurations

Sử dụng GitOps, quy trình làm việc dựa trên Git, để lưu trữ các tệp cấu hình được liên kết với việc triển khai, nhập, dịch vụ và dữ liệu quan trọng khác của bạn. Nó nên được thực hiện trước khi đẩy dữ liệu vào cụm của bạn, vì nó sẽ giúp bạn theo dõi những người đã thực hiện các thay đổi. Ngoài ra, việc thích ứng với quy trình làm việc dựa trên git giúp cải thiện năng suất bằng cách giảm thời gian triển khai, cải thiện khả năng truy tìm lỗi và tự động hóa quy trình làm việc CI / CD.

3. Các thành phần máy bay điều khiển màn hình

Một sai lầm phổ biến mà nhiều học viên mắc phải là quên theo dõi bộ não của cụm Kubernetes (máy bay điều khiển). Một số thành phần quan trọng của bảng điều khiển là:

  • Dịch vụ API Kubernetes
  • kubelet
  • người điều khiển-quản lý
  • vvd
  • proxy Kube
  • Kube-DNS.

Các thành phần này là trung tâm của cụm Kubernetes của bạn và việc giám sát chúng giúp xác định các vấn đề / mối đe dọa trong cụm và tăng độ trễ của nó.

4. Kiểm tra nhật ký của bạn trên cơ sở thường xuyên

Nhật ký của bất kỳ cụm nào có rất nhiều điều để kể và tất cả các bản ghi được lưu trữ tại /var/log/audit.log phải được kiểm tra thường xuyên. Kiểm tra nhật ký giúp:

  • Xác định mối đe dọa
  • Giám sát mức tiêu thụ tài nguyên
  • Ghi lại nhịp tim sự kiện chính của cụm Kubernetes

Chính sách kiểm tra của cụm Kubernetes có tại /etc/Kubernetes/audit-policy.yaml và bạn có thể tùy chỉnh nó theo yêu cầu của mình.

5. Sử dụng hình ảnh vùng chứa nhỏ

Hầu hết các nhà phát triển nhầm lẫn khi sử dụng hình ảnh cơ sở, thường bao gồm tới 80% các gói và thư viện mà họ không cần. Bạn nên sử dụng các hình ảnh docker nhỏ hơn để chiếm ít dung lượng lưu trữ hơn và cho phép bạn tạo các bản dựng nhanh hơn. Tìm kiếm Hình ảnh Alpine, nhỏ hơn gần 10 lần so với hình ảnh cơ sở và thêm các thư viện và gói cần thiết khi di chuyển nếu cần cho ứng dụng của bạn.

Công nghệ Giants sử dụng Kubernetes trong Sản xuất

Nhiều kỹ sư từ Google, Amazon, Red Hat và những người khác đã hiểu rõ sức mạnh của Kubernetes. Hãy để chúng tôi xem họ đang sử dụng nó như thế nào:

1 Amazon

Amazon EC2, một dịch vụ AWS được xếp hạng hàng đầu, sử dụng Kubernetes để quản lý các cụm, phiên bản máy tính và chạy các vùng chứa trên các phiên bản này. EC2 sử dụng các quy trình triển khai, bảo trì và mở rộng quy mô cho phép bạn chạy bất kỳ loại ứng dụng nào bằng cách sử dụng bộ công cụ tại chỗ và trong đám mây giống hệt nhau. Ngoài ra, rất ít người biết rằng amazon đã hợp tác với cộng đồng của Kubernetes. Nó đóng góp vào cơ sở mã của nó, hỗ trợ người dùng tận dụng các thành phần và dịch vụ của AWS. Amazon EKS là một tuân thủ được chứng nhận được sử dụng để xử lý mặt phẳng điều khiển Kubernetes.

2. Microsoft

AKS là một dịch vụ được quản lý hoàn toàn sử dụng Kubernetes trong Azure mà không quản lý các cụm của nó riêng lẻ. Azure có thể xử lý tất cả những điều phức tạp của Kubernetes, trong khi một người tập trung vào các cụm. Một số tính năng cần thiết là Chỉ trả tiền cho các nút, nâng cấp cụm dễ quản lý hơn và tích hợp Kubernetes RBAC và Azure Active Directory.

3. Tia lửa Apache

Spark là một khung máy tính phân tán mã nguồn mở miễn phí xử lý nhiều tập dữ liệu với sự trợ giúp của một nhóm máy móc. Nhưng nó không điều khiển thiết bị. Đây là nơi Kubernetes hỗ trợ. Nó thiết kế trình điều khiển của riêng mình để chạy trong Kubernetes Pod. Trình điều khiển tạo các trình thực thi cũng chạy trong Kubernetes pods. Nó kết nối chúng và thực thi các đoạn mã.

Kubernetes trong Sản xuất - Những suy nghĩ cuối cùng

Ở đây chúng tôi đang ở cuối. Tôi hy vọng hướng dẫn này đã cung cấp cho bạn kiến ​​thức nền tảng và thông tin về các định nghĩa, thành phần, sự khác biệt và kiến ​​trúc chính của Kubernetes. Mục tiêu của hướng dẫn này là giới thiệu tóm tắt cho bạn về thế giới Kubernetes để bắt đầu sử dụng nó trong nhóm của bạn ngay lập tức.

Vui lòng cho tôi biết thông tin Kubernetes quan trọng nhất mà chúng tôi vẫn còn thiếu trong phần bình luận bên dưới.

Tôi là Nhà khoa học dữ liệu có bằng Cử nhân khoa học máy tính chuyên về Máy học, Trí tuệ nhân tạo và Thị giác máy tính. Mrinal cũng là một blogger, tác giả và một người đam mê tự do với năm năm kinh nghiệm trong công việc của mình. Với nền tảng làm việc thông qua hầu hết các lĩnh vực khoa học máy tính, tôi hiện đang theo học Thạc sĩ về Máy tính Ứng dụng với chuyên ngành AI từ Đại học Windsor và tôi là một nhà viết nội dung tự do và nhà phân tích nội dung.

dự án

1. https://kubernetes.io/docs/tutorials/kubernetes-basics/

2. https://www.redhat.com/en/topics/containers/what-is-kubernetes

3. https://www.tutorialspoint.com/kubernetes/index.htm

4. https://auth0.com/blog/kubernetes-tutorial-step-by-step-introduction-to-basic-concept/

5. https://github.com/kubernetes/kubernetes

6. https://en.wikipedia.org/wiki/Kubernetes

7. https://cloud.google.com/learn/what-is-kubernetes

Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định riêng của Tác giả. 

tại chỗ_img

Tin tức mới nhất

tại chỗ_img

Trò chuyện trực tiếp với chúng tôi (chat)

Chào bạn! Làm thế nào để tôi giúp bạn?