Usr/sbin/mysqld cpu cao
Hướng dẫn này cung cấp hướng dẫn cơ bản về hệ thống điều phối cụm Kubernetes. Mỗi mô-đun chứa một số thông tin cơ bản về các tính năng và khái niệm chính của Kubernetes và bao gồm một hướng dẫn trực tuyến tương tác. Các hướng dẫn tương tác này cho phép bạn tự quản lý một cụm đơn giản và các ứng dụng được chứa trong đó Show
Sử dụng các hướng dẫn tương tác, bạn có thể học cách
Các hướng dẫn sử dụng Katacoda để chạy một thiết bị đầu cuối ảo trong trình duyệt web của bạn chạy Minikube, một triển khai cục bộ quy mô nhỏ của Kubernetes có thể chạy ở mọi nơi. Không cần cài đặt bất kỳ phần mềm nào hoặc định cấu hình bất kỳ thứ gì; Kubernetes có thể làm gì cho bạn?Với các dịch vụ web hiện đại, người dùng mong đợi các ứng dụng có sẵn 24/7 và các nhà phát triển mong muốn triển khai các phiên bản mới của các ứng dụng đó nhiều lần trong ngày. Containerization giúp đóng gói phần mềm để phục vụ các mục tiêu này, cho phép các ứng dụng được phát hành và cập nhật mà không có thời gian chết. Kubernetes giúp bạn đảm bảo các ứng dụng được đóng gói đó chạy ở đâu và khi nào bạn muốn, đồng thời giúp chúng tìm thấy các tài nguyên và công cụ cần thiết để hoạt động. Kubernetes là một nền tảng mã nguồn mở, sẵn sàng sản xuất được thiết kế với kinh nghiệm tích lũy của Google về điều phối vùng chứa, kết hợp với các ý tưởng hay nhất từ cộng đồng Bạn có thể cài đặt và sử dụng 7 trên nhiều loại máy khác nhau. máy tính xách tay của bạn, một bộ máy chủ đám mây, Raspberry Pi, v.v. Cho dù bạn đang triển khai trên đám mây hay tại chỗ, bạn có thể tích hợp 7 vào các hệ thống cung cấp như Ansible hoặc TerraformTrước khi bắt đầuĐể làm theo hướng dẫn này, bạn cần
Bạn cũng cần sử dụng phiên bản 7 có thể triển khai phiên bản Kubernetes mà bạn muốn sử dụng trong cụm mới của mìnhChính sách hỗ trợ lệch phiên bản và phiên bản của Kubernetes áp dụng cho 7 cũng như cho Kubernetes nói chung. Kiểm tra chính sách đó để tìm hiểu về phiên bản Kubernetes và 7 nào được hỗ trợ. Trang này được viết cho Kubernetes v1. 26Trạng thái tính năng tổng thể của công cụ 7 là Tính khả dụng chung (GA). Một số tính năng phụ vẫn đang được phát triển tích cực. Việc triển khai tạo cụm có thể thay đổi một chút khi công cụ phát triển, nhưng việc triển khai tổng thể sẽ khá ổn địnhGhi chú. Theo định nghĩa, bất kỳ lệnh nào trong 7 đều được hỗ trợ ở cấp độ alphamục tiêu
Hướng dẫnChuẩn bị máy chủCài đặt thời gian chạy vùng chứa và kubeadm trên tất cả các máy chủ. Để biết hướng dẫn chi tiết và các điều kiện tiên quyết khác, hãy xem Cài đặt kubeadm Ghi chú Nếu bạn đã cài đặt kubeadm, hãy chạy 8 hoặc 9 để tải phiên bản kubeadm mới nhấtKhi bạn nâng cấp, kubelet sẽ khởi động lại cứ sau vài giây khi nó đợi trong một vòng lặp sự cố để kubeadm cho biết phải làm gì. crashloop này được mong đợi và bình thường. Sau khi bạn khởi tạo mặt phẳng điều khiển, kubelet sẽ chạy bình thường Chuẩn bị các hình ảnh vùng chứa cần thiếtBước này là tùy chọn và chỉ áp dụng trong trường hợp bạn muốn 0 và 1 không tải xuống hình ảnh vùng chứa mặc định được lưu trữ tại 2Kubeadm có các lệnh có thể giúp bạn kéo trước các hình ảnh cần thiết khi tạo một cụm không có kết nối internet trên các nút của nó. Xem Chạy kubeadm không cần kết nối internet để biết thêm chi tiết Kubeadm cho phép bạn sử dụng kho lưu trữ hình ảnh tùy chỉnh cho các hình ảnh được yêu cầu. Xem Sử dụng hình ảnh tùy chỉnh để biết thêm chi tiết Đang khởi tạo nút mặt phẳng điều khiển của bạnNút mặt phẳng điều khiển là máy chạy các thành phần của mặt phẳng điều khiển, bao gồm etcd (cơ sở dữ liệu cụm) và Máy chủ API (mà công cụ dòng lệnh kubectl giao tiếp với)
Để khởi chạy nút mặt phẳng điều khiển Cân nhắc về apiserver-advertise-address và ControlPlaneEndpointMặc dù có thể sử dụng 04 để đặt địa chỉ quảng cáo cho máy chủ API của nút mặt phẳng điều khiển cụ thể này, nhưng có thể sử dụng 4 để đặt điểm cuối dùng chung cho tất cả các nút mặt phẳng điều khiển 4 cho phép cả địa chỉ IP và tên DNS có thể ánh xạ tới địa chỉ IP. Vui lòng liên hệ với quản trị viên mạng của bạn để đánh giá các giải pháp khả thi đối với việc lập bản đồ đóĐây là một ánh xạ ví dụ 6Trong đó 07 là địa chỉ IP của nút này và 08 là tên DNS tùy chỉnh ánh xạ tới IP này. Điều này sẽ cho phép bạn chuyển 09 tới 0 và chuyển cùng tên DNS tới 1. Sau đó, bạn có thể sửa đổi 08 để trỏ đến địa chỉ của bộ cân bằng tải trong trường hợp có tính khả dụng caoViệc chuyển một cụm mặt phẳng điều khiển duy nhất được tạo mà không có 4 thành một cụm có tính sẵn sàng cao không được kubeadm hỗ trợThêm thông tinĐể biết thêm thông tin về đối số 0, hãy xem hướng dẫn tham khảo kubeadmĐể định cấu hình 0 bằng tệp cấu hình, hãy xem Sử dụng kubeadm init bằng tệp cấu hìnhĐể tùy chỉnh các thành phần của mặt phẳng điều khiển, bao gồm gán IPv6 tùy chọn cho đầu dò hoạt động cho các thành phần của mặt phẳng điều khiển và máy chủ etcd, hãy cung cấp các đối số bổ sung cho từng thành phần như được ghi lại trong các đối số tùy chỉnh Để định cấu hình lại một cụm đã được tạo, hãy xem Định cấu hình lại cụm kubeadm Để chạy lại 0, trước tiên bạn phải phá bỏ cụmNếu bạn tham gia một nút có kiến trúc khác với cụm của mình, hãy đảm bảo rằng DaemonSets đã triển khai của bạn có hỗ trợ hình ảnh bộ chứa cho kiến trúc này Đầu tiên, 0 chạy một loạt kiểm tra trước để đảm bảo rằng máy đã sẵn sàng chạy Kubernetes. Những kiểm tra trước này đưa ra các cảnh báo và thoát khi có lỗi. Sau đó, 0 tải xuống và cài đặt các thành phần của mặt phẳng điều khiển cụm. Việc này có thể sẽ mất vài phút. Sau khi nó kết thúc, bạn sẽ thấy
Để làm cho kubectl hoạt động cho người dùng không phải root của bạn, hãy chạy các lệnh này, đây cũng là một phần của đầu ra 0
Ngoài ra, nếu bạn là người dùng 20, bạn có thể chạy
Cảnh báo. Kubeadm ký chứng chỉ trong 21 để có 22. 23 là một nhóm siêu người dùng siêu cấp vượt qua lớp ủy quyền (e. g. RBAC). Không chia sẻ tệp 21 với bất kỳ ai và thay vào đó cấp cho người dùng quyền tùy chỉnh bằng cách tạo cho họ tệp kubeconfig bằng lệnh 25. Để biết thêm chi tiết, hãy xem Tạo tệp kubeconfig cho người dùng bổ sungTạo một bản ghi của lệnh 1 mà đầu ra của 0. Bạn cần lệnh này để nối các nút vào cụm của mìnhMã thông báo được sử dụng để xác thực lẫn nhau giữa nút mặt phẳng điều khiển và các nút tham gia. Mã thông báo bao gồm ở đây là bí mật. Giữ an toàn vì bất kỳ ai có mã thông báo này đều có thể thêm các nút được xác thực vào cụm của bạn. Các mã thông báo này có thể được liệt kê, tạo và xóa bằng lệnh 28. Xem hướng dẫn tham khảo kubeadmCài đặt tiện ích bổ sung mạng Podthận trọng Phần này chứa thông tin quan trọng về thiết lập mạng và thứ tự triển khai. Đọc tất cả các lời khuyên này một cách cẩn thận trước khi tiếp tục Bạn phải triển khai tiện ích bổ sung mạng Pod dựa trên Giao diện mạng vùng chứa (CNI) để các Pod của bạn có thể giao tiếp với nhau. Cluster DNS (CoreDNS) sẽ không khởi động trước khi mạng được cài đặt
Ghi chú. Kubeadm phải là CNI bất khả tri và việc xác thực các nhà cung cấp CNI nằm ngoài phạm vi thử nghiệm e2e hiện tại của chúng tôi. Nếu bạn tìm thấy sự cố liên quan đến plugin CNI, bạn nên ghi một phiếu vào trình theo dõi sự cố tương ứng thay vì trình theo dõi sự cố kubeadm hoặc kubernetes Một số dự án bên ngoài cung cấp mạng Kubernetes Pod bằng CNI, một số dự án cũng hỗ trợ Chính sách mạng Xem danh sách các tiện ích bổ sung triển khai mô hình mạng Kubernetes Bạn có thể cài đặt tiện ích bổ sung mạng Pod bằng lệnh sau trên nút mặt phẳng điều khiển hoặc nút có thông tin xác thực kubeconfig 0Bạn chỉ có thể cài đặt một mạng Pod cho mỗi cụm Khi mạng Pod đã được cài đặt, bạn có thể xác nhận rằng nó đang hoạt động bằng cách kiểm tra xem CoreDNS Pod có phải là 62 trong đầu ra của 63 không. Và khi CoreDNS Pod được thiết lập và chạy, bạn có thể tiếp tục bằng cách tham gia các nút của mìnhNếu mạng của bạn không hoạt động hoặc CoreDNS không ở trạng thái 62, hãy xem hướng dẫn khắc phục sự cố cho 7Nhãn nút được quản lýTheo mặc định, kubeadm kích hoạt bộ điều khiển nhập học NodeRestriction hạn chế nhãn nào có thể được kubelets tự áp dụng khi đăng ký nút. Tài liệu về bộ điều khiển nhập học bao gồm những nhãn nào được phép sử dụng với tùy chọn kubelet 66. Nhãn 67 là nhãn bị hạn chế và kubeadm áp dụng nhãn đó theo cách thủ công bằng ứng dụng khách đặc quyền sau khi nút đã được tạo. Để làm điều đó theo cách thủ công, bạn có thể thực hiện tương tự bằng cách sử dụng 68 và đảm bảo rằng nó đang sử dụng một kubeconfig đặc quyền, chẳng hạn như kubeadm được quản lý bởi 69Cách ly nút mặt phẳng điều khiểnTheo mặc định, cụm của bạn sẽ không lên lịch cho các Nhóm trên các nút của mặt phẳng điều khiển vì lý do bảo mật. Nếu bạn muốn có thể lên lịch cho các Pod trên các nút của mặt phẳng điều khiển, chẳng hạn như đối với cụm Kubernetes của một máy duy nhất, hãy chạy 4Đầu ra sẽ trông giống như 2Thao tác này sẽ xóa dấu vết 60 khỏi bất kỳ nút nào có dấu vết đó, bao gồm cả các nút của mặt phẳng điều khiển, nghĩa là bộ lập lịch sau đó sẽ có thể lên lịch cho Pod ở mọi nơiTham gia các nút của bạnCác nút là nơi khối lượng công việc của bạn (bộ chứa và Nhóm, v.v.) chạy. Để thêm các nút mới vào cụm của bạn, hãy làm như sau cho từng máy
Nếu bạn không có mã thông báo, bạn có thể lấy nó bằng cách chạy lệnh sau trên nút mặt phẳng điều khiển Đầu ra tương tự như thế này 6Theo mặc định, mã thông báo hết hạn sau 24 giờ. Nếu bạn đang tham gia một nút vào cụm sau khi mã thông báo hiện tại đã hết hạn, bạn có thể tạo mã thông báo mới bằng cách chạy lệnh sau trên nút mặt phẳng điều khiển Đầu ra tương tự như thế này Nếu bạn không có giá trị của 63, bạn có thể lấy nó bằng cách chạy chuỗi lệnh sau trên nút mặt phẳng điều khiển 2Đầu ra tương tự như 0Ghi chú. Để chỉ định một bộ IPv6 cho 64, địa chỉ IPv6 phải được đặt trong dấu ngoặc vuông, ví dụ:. 65Đầu ra sẽ trông giống như 1Một vài giây sau, bạn sẽ nhận thấy nút này trong đầu ra từ 66 khi chạy trên nút mặt phẳng điều khiểnGhi chú. Vì các nút cụm thường được khởi tạo tuần tự, nên các CoreDNS Pods có khả năng chạy trên nút mặt phẳng điều khiển đầu tiên. Để cung cấp tính khả dụng cao hơn, vui lòng cân bằng lại CoreDNS Pods với 67 sau khi ít nhất một nút mới được tham gia(Tùy chọn) Điều khiển cụm của bạn từ các máy không phải nút mặt phẳng điều khiểnĐể có được một kubectl trên một số máy tính khác (e. g. laptop) để nói chuyện với cụm của bạn, bạn cần sao chép tệp kubeconfig của quản trị viên từ nút mặt phẳng điều khiển sang máy trạm của mình như thế này 2Ghi chú Ví dụ trên giả sử quyền truy cập SSH được bật cho root. Nếu không phải như vậy, bạn có thể sao chép tệp 21 để một số người dùng khác có thể truy cập được và thay vào đó, 69 sử dụng người dùng khác đóTệp 21 cung cấp cho người dùng các đặc quyền siêu người dùng đối với cụm. Tập tin này nên được sử dụng một cách tiết kiệm. Đối với người dùng bình thường, bạn nên tạo một thông tin xác thực duy nhất mà bạn cấp đặc quyền. Bạn có thể làm điều này bằng lệnh 21. Lệnh đó sẽ in ra một tệp KubeConfig thành STDOUT mà bạn nên lưu vào một tệp và phân phối cho người dùng của mình. Sau đó, cấp đặc quyền bằng cách sử dụng 22(Tùy chọn) Máy chủ API ủy quyền cho máy chủ cục bộNếu bạn muốn kết nối với Máy chủ API từ bên ngoài cụm, bạn có thể sử dụng 23 3Bây giờ bạn có thể truy cập Máy chủ API cục bộ tại 24Dọn dẹpNếu bạn đã sử dụng các máy chủ dùng một lần cho cụm của mình, để thử nghiệm, bạn có thể tắt các máy chủ đó và không cần dọn dẹp thêm. Bạn có thể sử dụng 25 để xóa các tham chiếu cục bộ của mình tới cụmTuy nhiên, nếu bạn muốn hủy cấp phép cụm của mình sạch sẽ hơn, trước tiên, bạn nên thoát nút và đảm bảo rằng nút đó trống, sau đó giải cấu hình nút Loại bỏ nútNói chuyện với nút mặt phẳng điều khiển với thông tin xác thực phù hợp, hãy chạy 4Trước khi xóa nút, hãy đặt lại trạng thái đã cài đặt bởi 7Quá trình đặt lại không đặt lại hoặc xóa các quy tắc iptables hoặc bảng IPVS. Nếu bạn muốn đặt lại iptables, bạn phải thực hiện thủ công 5Nếu bạn muốn đặt lại các bảng IPVS, bạn phải chạy lệnh sau Bây giờ loại bỏ nút 6Nếu bạn muốn bắt đầu lại, hãy chạy 0 hoặc 1 với các đối số phù hợpDọn dẹp máy bay điều khiểnBạn có thể sử dụng 29 trên máy chủ của mặt phẳng điều khiển để kích hoạt quá trình dọn dẹp với nỗ lực cao nhấtXem tài liệu tham khảo 29 để biết thêm thông tin về tiểu ban này và các tùy chọn của nóCái gì tiếp theoNhận xétChính sách lệch phiên bảnMặc dù kubeadm cho phép phiên bản lệch với một số thành phần mà nó quản lý, nhưng bạn nên khớp phiên bản kubeadm với phiên bản của các thành phần mặt phẳng điều khiển, kube-proxy và kubelet kubeadm nghiêng so với phiên bản Kuberneteskubeadm có thể được sử dụng với các thành phần Kubernetes có cùng phiên bản với kubeadm hoặc một phiên bản cũ hơn. Phiên bản Kubernetes có thể được chỉ định cho kubeadm bằng cách sử dụng cờ 01 của 0 hoặc trường 03 khi sử dụng 04. Tùy chọn này sẽ kiểm soát các phiên bản của kube-apiserver, kube-controller-manager, kube-scheduler và kube-proxyThí dụ
kubeadm nghiêng so với kubeletTương tự như phiên bản Kubernetes, kubeadm có thể được sử dụng với phiên bản kubelet cùng phiên bản với kubeadm hoặc một phiên bản cũ hơn Thí dụ
kubeadm nghiêng so với kubeadmCó một số hạn chế nhất định về cách các lệnh kubeadm có thể hoạt động trên các nút hiện có hoặc toàn bộ cụm do kubeadm quản lý Nếu các nút mới được tham gia vào cụm, tệp nhị phân kubeadm được sử dụng cho 1 phải khớp với phiên bản cuối cùng của kubeadm được sử dụng để tạo cụm với 0 hoặc để nâng cấp cùng một nút với 08. Các quy tắc tương tự áp dụng cho phần còn lại của các lệnh kubeadm ngoại trừ 08Ví dụ cho 1
Các nút đang được nâng cấp phải sử dụng phiên bản kubeadm giống với phiên bản MINOR hoặc một phiên bản MINOR mới hơn phiên bản kubeadm được sử dụng để quản lý nút Ví dụ cho 08
Để tìm hiểu thêm về phiên bản lệch giữa các thành phần Kubernetes khác nhau, hãy xem Chính sách lệch phiên bản Hạn chếkhả năng phục hồi cụmCụm được tạo ở đây có một nút mặt phẳng điều khiển duy nhất, với một cơ sở dữ liệu etcd duy nhất chạy trên đó. Điều này có nghĩa là nếu nút mặt phẳng điều khiển bị lỗi, cụm của bạn có thể bị mất dữ liệu và có thể phải tạo lại từ đầu cách giải quyết Khả năng tương thích nền tảngcác gói và tệp nhị phân kubeadm deb/rpm được xây dựng cho amd64, arm (32-bit), arm64, ppc64le và s390x theo đề xuất đa nền tảng Hình ảnh vùng chứa đa nền tảng cho mặt phẳng điều khiển và addon cũng được hỗ trợ kể từ v1. 12 Chỉ một số nhà cung cấp mạng cung cấp giải pháp cho tất cả các nền tảng. Vui lòng tham khảo danh sách các nhà cung cấp mạng ở trên hoặc tài liệu của từng nhà cung cấp để biết liệu nhà cung cấp có hỗ trợ nền tảng bạn đã chọn hay không |