Hướng dẫn Kubernetes - Hướng dẫn Toàn diện cho Kubernetes



Blog này trên Kubernetes Tutorial, sẽ hướng dẫn bạn qua tất cả các khái niệm về hệ thống điều phối vùng chứa với Thực hành.

Kubernetes là một nền tảng loại bỏ các quy trình thủ công liên quan đến việc triển khai các ứng dụng được đóng gói. Trong blog này về Hướng dẫn Kubernetes, bạn sẽ đi qua tất cả các khái niệm liên quan đến giải pháp quản lý đa vùng chứa này.

Các chủ đề sau sẽ được đề cập trong hướng dẫn này:





Bây giờ, trước khi tiếp tục blog này, hãy để tôi chỉ ngắn gọn cho bạn biết về quá trình container hóa.

Vì vậy, trước khi các container ra đời, các nhà phát triển và người thử nghiệm luôn có mối quan hệ bất hòa giữa chúng. Điều này thường xảy ra bởi vì những gì hoạt động ở phía nhà phát triển, sẽ không hoạt động ở phía kiểm tra. Cả hai đều tồn tại trong những môi trường khác nhau. Bây giờ, để tránh những tình huống như vậy, các vùng chứa đã được giới thiệu để cả Nhà phát triển và Người kiểm tra đều ở trên cùng một trang.



Xử lý một số lượng lớn các container cùng nhau cũng là một vấn đề. Đôi khi, trong khi chạy các thùng chứa, về phía sản phẩm, một số vấn đề đã được nêu ra, những vấn đề không xuất hiện ở giai đoạn phát triển. Loại kịch bản này đã giới thiệu Hệ thống điều phối vùng chứa.

Trước khi đi sâu vào hệ thống điều phối, hãy để tôi liệt kê nhanh những thách thức phải đối mặt mà không có hệ thống này.



Hướng dẫn Kubernetes: Những thách thức mà không cần sự điều phối vùng chứa

Những thách thức mà không có sự điều phối vùng chứa - Hướng dẫn Kubernetes - Edureka

charat trong java là gì

Như bạn có thể thấy trong sơ đồ trên khi nhiều dịch vụ chạy bên trong các vùng chứa, bạn có thể muốn mở rộng các vùng chứa này. Trong các ngành công nghiệp quy mô lớn, điều này thực sự khó thực hiện. Đó là bởi vì nó sẽ làm tăng chi phí duy trì các dịch vụ và sự phức tạp khi chạy chúng song song với nhau.

Bây giờ, để tránh thiết lập dịch vụ theo cách thủ công và vượt qua những thách thức, cần phải có một cái gì đó lớn. Đây là nơi Công cụ điều phối vùng chứa xuất hiện trong bức tranh.

Công cụ này cho phép chúng tôi tổ chức nhiều bộ chứa, theo cách mà tất cả các máy bên dưới được khởi chạy, các bộ chứa hoạt động tốt và được phân phối trong một môi trường được phân nhóm. Trong thế giới ngày nay, chủ yếu có hai động cơ như vậy: Thống đốc & Docker Swarm .

Hướng dẫn Kubernetes: Kubernetes vs Docker Swarm

Thống đốcDocker Swarm là các công cụ điều phối vùng chứa hàng đầu trên thị trường ngày nay. Vì vậy, trước khi sử dụng chúng trong sản phẩm, bạn nên biết chính xác chúng là gì và chúng hoạt động như thế nào.

Hơn nữa, trong blog, tôi sẽ đi sâu vào Kubernetes, nhưng để biết về Docker, bạn có thể nhấp vào .

Như bạn có thể tham khảo hình ảnh trên, Kubernetes, khi so sánh với Docker Swarm sở hữu một cộng đồng tích cực tuyệt vời và trao quyền tự động mở rộng quy mô trong nhiều tổ chức. Tương tự, Docker Swarm có một cụm dễ bắt đầu khi so sánh với Kubernetes, nhưng nó bị giới hạn ở khả năng của API Docker.

Đây không phải là điểm khác biệt duy nhất giữa các công cụ hàng đầu này. Nếu bạn muốn biết sự khác biệt chi tiết giữa cả hai công cụ điều phối vùng chứa này, bạn có thể nhấp vào

Bạn muốn biết thêm về Kubernetes?

Nếu tôi có thể chọn lựa của mình giữa hai, thì đó sẽ phải là Kubernetes vì ​​các thùng chứa cần được quản lý và kết nối với thế giới bên ngoài cho các tác vụ như lập lịch, cân bằng tải và phân phối.

Nhưng, nếu bạn suy nghĩ một cách logic, Docker Swarm sẽ là một lựa chọn tốt hơn, vì nó chạy trên Docker phải không? Nếu tôi là bạn, tôi chắc chắn sẽ bối rối không biết sử dụng công cụ nào. Nhưng này, Kubernetes là một nhà lãnh đạo không thể tranh cãi trên thị trường và cũng chạy trên các vùng chứa Docker với các chức năng tốt hơn.

Bây giờ, bạn đã hiểu sự cần thiết của Kubernetes, đây là thời điểm tốt để tôi nói với bạn Kubernetes là gì?

Hướng dẫn Kubernetes: Kubernetes là gì?

là một nguồn mở hệ thống xử lý công việc lập lịch các vùng chứa trên một cụm máy tính và quản lý khối lượng công việc để đảm bảo chúng chạy như người dùng dự định. Là đứa con tinh thần của Google, nó cung cấp cộng đồng tuyệt vời và hoạt động xuất sắc với tất cả các nhà cung cấp đám mây để trở thành giải pháp quản lý nhiều container.

Hướng dẫn Kubernetes: Các tính năng của Kubernetes

Các tính năng của Kubernetes, như sau:

  • Lập lịch tự động: Kubernetes cung cấp bộ lập lịch nâng cao để khởi chạy vùng chứa trên các nút cụm dựa trên các yêu cầu tài nguyên và các ràng buộc khác của chúng, trong khi không hy sinh tính khả dụng.
  • Khả năng tự chữa bệnh: Kubernetes cho phép thay thế và lên lịch lại các thùng chứa khi các nút chết. Nó cũng loại bỏ các vùng chứa không phản hồi với kiểm tra tình trạng do người dùng xác định và không quảng cáo chúng cho khách hàng cho đến khi chúng sẵn sàng phục vụ.
  • Phát hành và khôi phục tự động: Kubernetes tung ra các thay đổi đối với ứng dụng hoặc cấu hình của ứng dụng trong khi theo dõi tình trạng ứng dụng để đảm bảo nó không giết tất cả các phiên bản của bạn cùng một lúc. Nếu có vấn đề gì xảy ra, với Kubernetes, bạn có thể khôi phục thay đổi.
  • Tỷ lệ ngang & Cân bằng tải: Kubernetes có thể mở rộng và thu nhỏ ứng dụng theo yêu cầu bằng một lệnh đơn giản, sử dụng giao diện người dùng hoặc tự động dựa trên mức sử dụng CPU.

Hướng dẫn Kubernetes: Kiến trúc Kubernetes

Kiến trúc Kubernetes có các thành phần chính sau:

  • Các nút chính
  • Nút Worker / Slave

Tôi sẽ thảo luận về từng cái một. Vì vậy, ban đầu hãy bắt đầu bằng cách hiểu Nút chính .

Nút chính

Nút chính chịu trách nhiệm quản lý cụm Kubernetes. Nó chủ yếu là điểm vào cho tất cả các tác vụ hành chính. Có thể có nhiều hơn một nút chính trong cụm để kiểm tra khả năng chịu lỗi.

Như bạn có thể thấy trong sơ đồ trên, nút chính có các thành phần khác nhau như Máy chủ API, Trình quản lý bộ điều khiển, Bộ lập lịch và ETCD.

  • Máy chủ API: Máy chủ API là điểm vào cho tất cả các lệnh REST được sử dụng để điều khiển cụm.
  • Người quản lý điều khiển: Là một daemon điều chỉnh cụm Kubernetes và quản lý các vòng điều khiển không kết thúc khác nhau.
  • Người lập kế hoạch: Bộ lập lịch biểu các tác vụ tới các nút phụ. Nó lưu trữ thông tin sử dụng tài nguyên cho mỗi nút phụ.
  • ETCD: ETCD là một kho lưu trữ khóa-giá trị đơn giản, phân tán, nhất quán. Nó chủ yếu được sử dụng để cấu hình chia sẻ và khám phá dịch vụ.

Nút Worker / Slave

Các nút công nhân chứa tất cả các dịch vụ cần thiết để quản lý mạng giữa các vùng chứa, giao tiếp với nút chính và gán tài nguyên cho các vùng chứa đã lên lịch.

Như bạn có thể thấy trong sơ đồ trên, nút công nhân có nhiều thành phần khác nhau như Docker Container, Kubelet, Kube-proxy và Pods.

  • Docker Container: Docker chạy trên mỗi nút công nhân và chạy các nhóm đã định cấu hình
  • Kubelet: Kubelet lấy cấu hình của Pod từ máy chủ API và đảm bảo rằng các vùng chứa được mô tả đang hoạt động.
  • Ủy nhiệm Cuba: Kube-proxy hoạt động như một proxy mạng và bộ cân bằng tải cho một dịch vụ trên một nút công nhân duy nhất
  • Vỏ: Nhóm là một hoặc nhiều vùng chứa chạy cùng nhau một cách hợp lý trên các nút.

Nếu bạn muốn giải thích chi tiết về tất cả các thành phần của Kiến trúc Kubernetes, thì bạn có thể tham khảo blog trên

Muốn được chứng nhận ở Kubernetes?

Hướng dẫn Kubernetes: Nghiên cứu điển hình của Kubernetes

Y ahoo! NHẬT BẢN là nhà cung cấp dịch vụ web có trụ sở chính tại Sunnyvale, California. Khi công ty nhắm đến việc ảo hóa phần cứng, công ty bắt đầu sử dụng OpenStack vào năm 2012. Môi trường bên trong của họ thay đổi rất nhanh chóng. Tuy nhiên, do sự tiến bộ của công nghệ đám mây và container, công ty muốn capanhanh nhẹn để khởi chạy dịch vụ trên các nền tảng khác nhau.

Vấn đề: Làm thế nào để tạo hình ảnh cho tất cả các nền tảng được yêu cầu từ một mã ứng dụng và triển khai các hình ảnh đó trên mỗi nền tảng?

Để bạn hiểu rõ hơn, hãy tham khảo hình ảnh bên dưới. Khi mã được thay đổi tại sổ đăng ký mã, thì hình ảnh kim loại trần, vùng chứa Docker và hình ảnh VM được tạo bởi các công cụ tích hợp liên tục, được đẩy vào sổ đăng ký hình ảnh, sau đó triển khai cho từng nền tảng cơ sở hạ tầng.


Bây giờ, chúng ta hãy tập trung vào quy trình làm việc vùng chứa để hiểu cách họ sử dụng Kubernetes làm nền tảng triển khai. Tham khảo hình ảnh bên dưới để biết rõ kiến ​​trúc nền tảng.

Các phiên bản OpenStack được sử dụng, với Docker, Kubernetes, Calico, etcd ở trên nó để thực hiện các hoạt động khác nhau như Container Networking, Container Registry, v.v.

Khi bạn có một số cụm, thật khó để quản lý chúng phải không?

Vì vậy, họ chỉ muốn tạo một cụm OpenStack cơ bản, đơn giản để cung cấp các chức năng cơ bản cần thiết cho Kubernetes và làm cho môi trường OpenStack dễ quản lý hơn.

Bằng sự kết hợp của quy trình tạo hình ảnh và Kubernetes, họ đã xây dựng chuỗi công cụ bên dưới giúp dễ dàng từ việc đẩy mã đến triển khai.


Loại chuỗi công cụ này đảm bảo rằng tất cả các yếu tố để triển khai sản xuất như cho thuê nhiều lần, xác thực, lưu trữ, mạng, khám phá dịch vụ đã được xem xét.

cách sử dụng bộ đệm chuỗi trong java

Đó là cách mọi người, Yahoo! NHẬT BẢN đã xây dựng chuỗi công cụ tự động hóa để triển khai mã “một cú nhấp chuột” tới Kubernetes chạy trên OpenStack, với sự trợ giúp từ GoogleSolinea .

Hướng dẫn dành cho Thống đốc: Thực hành

Trong phần Thực hành này, tôi sẽ chỉ cho bạn cách tạo một triển khai và một dịch vụ. Tôi đang sử dụng phiên bản Amazon EC2, để sử dụng Kubernetes. Vâng, Amazon đã đưa ra Dịch vụ thùng chứa đàn hồi của Amazon cho Thống đốc (Amazon EKS) , cho phép họ tạo các cụm Kubernetes trên đám mây rất nhanh chóng và dễ dàng. Nếu bạn muốn tìm hiểu thêm về nó, bạn có thể tham khảo blog

Bước 1: Đầu tiên tạo một thư mục bên trong đó bạn sẽ tạo triển khai và dịch vụ của mình. Sau đó, sử dụng trình chỉnh sửa và mở tệp Triển khai .

mkdir handsOn cd tayOn vi Deploy.yaml

Bước 2: Khi bạn mở tệp triển khai, hãy đề cập đến tất cả các thông số kỹ thuật cho ứng dụng bạn muốn triển khai. Ở đây tôi đang cố gắng triển khai một httpd ứng dụng.

apiVersion: apps / v1 # Xác định loại Phiên bản API: Tham số Deployment #Kinds xác định đó là loại tệp nào, ở đây là siêu dữ liệu Triển khai: name: dep1 # Lưu trữ tên của thông số triển khai: # Trong Thông số kỹ thuật, bạn đề cập đến tất cả thông số kỹ thuật cho bản sao triển khai: 3 # Số bản sao sẽ là 3 bộ chọn: matchLabels: app: httpd # Tên nhãn sẽ được tìm kiếm là httpd mẫu: siêu dữ liệu: nhãn: app: httpd # Tên bản sao sẽ là httpd spec: # Under Thông số kỹ thuật, bạn đề cập đến tất cả các thông số kỹ thuật cho các thùng chứa container: - name: httpd #Tên các thùng chứa sẽ là httpd hình ảnh: httpd: mới nhất # Hình ảnh phải tải xuống là httpd: các cổng mới nhất: - containerPort: 80 # Ứng dụng sẽ được hiển thị trên cổng 80

Bước 3: Sau khi bạn ghi tệp triển khai của mình, hãy áp dụng triển khai bằng lệnh sau.

kubectl apply -f Deploy.yaml

Đây -f là một tên cờ được sử dụng chotanh ấy nộp hồ sơTên.

Bước 4: Bây giờ, khi việc triển khai được áp dụng, hãy lấy danh sách các nhóm đang chạy.

kubectl lấy pod-rộng

Ở đây, -o wide được sử dụng để biết việc triển khai đang chạy trên nút nào.

Bước 5: Sau khi bạn đã tạo một triển khai, bây giờ bạn phải tạo một dịch vụ. Đối với điều đó một lần nữa, hãy sử dụng trình chỉnh sửa và mở một khoảng trống dịch vụ. tệp yaml .

vi service.yaml

Bước 6: Khi bạn mở tệp dịch vụ, hãy đề cập đến tất cả các thông số kỹ thuật của dịch vụ.

apiVersion: v1 # Xác định loại Phiên bản API: Tham số Dịch vụ #Kinds xác định loại tệp nào, ở đây là siêu dữ liệu Dịch vụ: name: netsvc # Lưu trữ tên của đặc điểm dịch vụ: # Trong Thông số kỹ thuật, bạn đề cập đến tất cả các thông số kỹ thuật cho loại dịch vụ: Bộ chọn NodePort: ứng dụng: httpd các cổng: -protocol: Cổng TCP: 80 targetPort: 8084 # Số cổng mục tiêu là 8084

Bước 7: Sau khi bạn ghi tệp dịch vụ của mình, hãy áp dụng tệp dịch vụ bằng lệnh sau.

kubectl apply -f service.yaml

Bước 8: Bây giờ, khi dịch vụ của bạn được áp dụng để kiểm tra xem dịch vụ có đang chạy hay không, hãy sử dụng lệnh sau.

kubectl lấy svc

Bước 9: Bây giờ, để xem thông số kỹ thuật của dịch vụ và kiểm tra Điểm cuối đó làliên kết với, sử dụng lệnh sau.

kubectl mô tả svc

Bước 10: Bây giờ vì chúng tôi đang sử dụng phiên bản ec2 của amazon, để tìm nạp trang web và kiểm tra kết quả, hãy sử dụng lệnh sau.

cuộn địa chỉ ip

Nếu bạn thấy blog Hướng dẫn Kubernetes này có liên quan, hãy xem của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu.

Có một câu hỏi cho chúng tôi? Hãy đề cập đến nó trong phần bình luận của ” Hướng dẫn Kubernetes ”Và tôi sẽ liên lạc lại với bạn.