Thành thật mà nói, tôi không biết nên hướng sự tức giận của mình vào ai, nhưng có một vấn đề lớn với việc sử dụng Ubuntu Server làm nền tảng cho Kubernetes ngay bây giờ Show Tôi đã cố gắng thiết lập Kubernetes trên Ubuntu Server 22. 04 trong vài ngày qua, nhưng dù tôi có thử bao nhiêu lần thì nó vẫn không thành công. Như tôi đã làm vô số lần trước đây, giờ đây tôi có thể dễ dàng cài đặt Kubernetes trên Ubuntu Server; . Tuy nhiên, mỗi khi tôi cố gắng khởi tạo cụm, tôi lại gặp lỗi [kubelet-check] Thời gian chờ 40 giây đã hết Thật không may, một lỗi đã xảy ra hết thời gian trong khi chờ đợi hoàn cảnh Lỗi này có lẽ được gây ra bởi - Cấu hình sai của nút (các nhóm bắt buộc bị vô hiệu hóa) đã khiến kubelet không hoạt động bình thường
Sự cố đã dẫn tôi đến một lỗ hổng dường như chỉ ra rằng việc cài đặt phiên bản containerd mới nhất trên Ubuntu Server có vấn đề, nhưng ngay cả sau khi thử triển khai mới với phiên bản containerd cũ hơn, tôi vẫn gặp phải sự cố tương tự Một cụm Kubernetes chạy trên Ubuntu Server 22 đủ để nói rằng tôi thất vọng với kết quả của thử nghiệm nhỏ này. 04 lẽ ra phải rõ ràng, nhưng không phải vậy. Mặc dù tôi có thể triển khai thành công một ứng dụng với một phiên bản duy nhất và chạy ứng dụng đó, nhưng khi tôi muốn sử dụng một cụm, mọi thứ trở nên sai lầm khủng khiếp Xem chi tiếtĐiều thú vị về lỗi đó là kubelet đang chạy _10 Tôi nhận thấy những sai lầm như thế này ________Đầu tiên
Các. /kube/config file là chủ đề của lỗ thỏ sau. Tôi gặp sự cố ngay cả sau khi kiểm tra quyền của tệp một lần nữa, vì vậy tôi đã sửa chúng và khởi động lại kubelet với
Đoán xem? Bắt đầu kéo tóc Tôi đã chạy lệnh init để xem thêm thông tin khắc phục sự cố sau khi máy khởi động lại để xem liệu nó có thể loại bỏ bất kỳ sự khó chịu nào vẫn còn hay không _15 Đoán xem? _16 _17
_19 ________mười
________thứ mười hai
Điều đó rõ ràng là không giúp được gì, và cho dù tôi có dành bao nhiêu thời gian với người bạn Google của mình, thì dường như tôi vẫn không thể tìm ra giải pháp cho các vấn đề của mình Một cài đặt khác và kết quả giống hệt nhau. trở lại với bản vẽ. Ngoài ra, tài liệu Kubernetes chính thức tất nhiên là không hỗ trợ Bạn có thể làm gì (khi Ubuntu Server là mục tiêu của bạn) và bạn có thể rút ra kết luận gì từ điều này? Đó là tất cả về DockerĐiều gì đã thay đổi so với những ngày thiết lập cụm Kubernetes trên Ubuntu Server cực kỳ đơn giản và hiếm khi (nếu có) thất bại? In một từ… Docker Bạn có thể làm gì trong thực tế là việc triển khai một cụm trên Ubuntu Server đã trở thành một cơn ác mộng hoàn toàn kể từ khi Kubernetes loại bỏ hỗ trợ Docker?
Mặc dù cài đặt nhanh chậm hơn và ít phản hồi hơn so với cài đặt tiêu chuẩn, như kiến thức phổ biến, khi ở Rome Sau khi cài đặt xong, hãy thêm người dùng của bạn vào nhóm được yêu cầu bằng cách sử dụng
Quyền của thư mục kube có thể được thay đổi bằng cách sử dụng
Chạy lệnh sau khi bạn đăng xuất rồi đăng nhập lại
Tất cả đều đang hoạt động và tôi có thể khởi chạy ứng dụng NGINX với
À, nhưng đừng lo lắng, microk8s đã bảo vệ bạn; . Gửi lệnh đến nút điều khiển
Bất kỳ máy nào khác mà bạn đã cài đặt Microk8s sẽ nhận được lệnh tham gia giống như thế này
Ồ, nhưng tôi cho rằng điều đó cũng sẽ khiến bạn thất bại với thứ gì đó như
Không có niềm vui sau khi khởi động lại cả hai máy và chạy lệnh thêm nút lần thứ hai với tùy chọn -skip-verify Đảm bảo rằng cả hai máy đều được đặt tên máy chủ tương ứng, chúng được ánh xạ trong /etc/hosts và thời gian trên mỗi máy là chính xác Quá trình này mất nhiều thời gian hơn mức cần thiết và tôi cho rằng đó là do sử dụng phiên bản snap của dịch vụ, nhưng sau lần khởi động lại thứ hai của cả hai máy, vì bất kỳ lý do gì, nút đã có thể tham gia bộ điều khiển Bây giờ tôi có thể thấy cả hai nút trên cụm của mình sau khi thực hiện microk8s kubectl get nodes Huzzah Tại sao làm cho nó khó khăn?Nghiêm túc mà nói, những người có liên quan, điều này không quá khó khăn. Kubernetes đã là một nền tảng đầy thách thức để sử dụng. Để làm cho việc thiết lập và chạy nó trở nên khó khăn như vậy mà không gặp sự cố, hãy gửi ngay cho tôi sự đơn giản của Docker Swarm Đừng hiểu sai ý tôi, tôi không bận tâm đến microk8, nhưng nó sẽ không hoạt động với những thứ như Portainer (đây là mục đích của tôi cho những thứ này), vì vậy tôi có thể chuyển sang máy chủ dựa trên RHEL cho . Tôi phải làm điều đó bằng cách bao gồm tiện ích bổ sung Portainer với
Chuyện gì đang diễn ra bây giờ? . nhưng không
Tuy nhiên do mình dùng Microk8s chưa cài kubectl nên phải sửa lệnh như sau
Sau đó, các lệnh phải được thực thi (một lần nữa, thay đổi phần sau để bao gồm microk8)
Lệnh cuối cùng sẽ xuất địa chỉ truy cập của Portainer Làm thế nào tuyệt vời nếu điều đó làm việc? Đoán xem? Tôi hiểu rằng có thể có sự thù địch giữa Kubernetes và Canonical, nhưng khi điều đó lan sang không gian người dùng, sự thất vọng thực sự đổ lên đầu các quản trị viên và nhà phát triển chịu trách nhiệm về những phần công nghệ này Khắc phục các sự cố này càng sớm càng tốt để những người thích Ubuntu Server có thể sử dụng Kubernetes dễ dàng như trước đây Tôi có một xương để chọn với ai đó. Thành thật mà nói, tôi không biết nên hướng sự tức giận này về phía ai, nhưng hiện tại có một vấn đề lớn với việc sử dụng Ubuntu Server làm cơ sở cho Kubernetes Trong vài ngày qua, tôi đã cố gắng hết lần này đến lần khác để thiết lập và chạy Kubernetes trên Ubuntu Server 22. 04, và cho dù tôi đã thử bao nhiêu lần, nó vẫn không thành công. Bây giờ, tôi có thể cài đặt Kubernetes trên Ubuntu Server mà không gặp vấn đề gì, như tôi đã làm rất nhiều lần trước đây. Điểm khác biệt duy nhất là bây giờ, thay vì sử dụng Docker, tôi phải sử dụng một runtime như containerd. Tuy nhiên, khi cố gắng khởi tạo cụm, tôi (lần nào) cũng gặp lỗi [kiểm tra kubelet] Thời gian chờ ban đầu là 40 giây đã qua Thật không may, một lỗi đã xảy ra hết thời gian chờ điều kiện Lỗi này có khả năng gây ra bởi - Kubelet không hoạt động tốt do cấu hình sai của nút theo một cách nào đó (các nhóm bắt buộc bị vô hiệu hóa)
Sự cố đã khiến tôi rơi vào một hố thỏ hứa hẹn rằng phiên bản mới nhất của containerd gặp sự cố khi cài đặt trên Ubuntu Server, nhưng ngay cả sau khi thử triển khai mới với phiên bản containerd cũ hơn, tôi vẫn gặp vấn đề tương tự Chỉ cần nói rằng, tôi đã rời khỏi thí nghiệm nhỏ này một cách thất vọng. Một cụm Kubernetes trên Ubuntu Server 22. 04 nên là một người không có trí tuệ. Nó không thể. Mặc dù tôi có thể có một phiên bản duy nhất chạy tốt và thậm chí triển khai một ứng dụng với phiên bản đó. Nhưng lần thứ hai tôi muốn đi theo lộ trình cụm, mọi thứ trở nên nghiêm trọng Xem chi tiếtĐiều thú vị về lỗi đó là kubelet đang chạy. Tuy nhiên khi chạy
Tôi thấy các lỗi như thế này
Lỗ thỏ tiếp theo liên quan đến ~. /kube/tập tin cấu hình. Ngay cả sau khi kiểm tra lại các quyền trên tệp đó, tôi vẫn gặp sự cố. Đã khắc phục sự cố và khởi động lại kubelet với
Đoán xem? Bắt đầu kéo tóc Khởi động lại hệ thống nhanh chóng để xem liệu nó có thể loại bỏ bất kỳ thứ gì khó chịu còn sót lại hay không. Khi máy khởi động lại, tôi chạy lệnh init để có thể xem thêm thông tin khắc phục sự cố như vậy
Đoán xem?
Rõ ràng, đó là sự giúp đỡ bằng không. Và cho dù tôi có dành bao nhiêu thời gian với người bạn Google của mình, tôi vẫn không thể tìm ra câu trả lời cho điều khiến tôi khó chịu trở lại với bản vẽ. Một cài đặt khác và kết quả tương tự. Và, tất nhiên, tài liệu Kubernetes chính thức hoàn toàn không giúp được gì Kết luận được rút ra là gì và bạn có thể làm gì (khi Ubuntu Server là lựa chọn của bạn)? Đó là tất cả về DockerNgày xửa ngày xưa, việc triển khai cụm Kubernetes trên Ubuntu Server cực kỳ đơn giản và hiếm khi (nếu có) thất bại. sự khác biệt là gì? Nói một cách ngắn gọn… Docker Kubernetes thứ hai đã loại bỏ hỗ trợ Docker, triển khai một cụm trên Ubuntu Server trở thành một cơn ác mộng tuyệt đối. Với ý nghĩ đó, bạn có thể làm gì?
Tất nhiên, như mọi người đều biết, quá trình cài đặt nhanh có thể mất một chút thời gian và nó gần như không phản hồi nhanh như cài đặt tiêu chuẩn. Tuy nhiên… khi ở Rome Sau khi cài đặt hoàn tất, hãy thêm người dùng của bạn vào nhóm cần thiết với
Thay đổi quyền của. thư mục kube với
Đăng xuất và đăng nhập lại rồi chạy lệnh
Bùng nổ bada lớn, tất cả đều hoạt động. Tôi có thể triển khai ứng dụng NGINX với
Nhưng đây không phải là một cụm. Ah, nhưng microk8s đã bảo vệ bạn. Trên nút điều khiển, ra lệnh
Bạn sẽ được cung cấp một lệnh tham gia để chạy trên bất kỳ máy nào khác mà bạn đã cài đặt microk8 trên đó giống như thế này
Ồ, nhưng đoán rằng điều đó cũng sẽ xảy ra với bạn với một cái gì đó như
Đã khởi động lại cả hai máy, chạy lại lệnh add-node bằng lệnh –skip-verify và không có xúc xắc Đảm bảo đặt tên máy chủ cho cả hai máy, rằng các tên máy chủ đó được ánh xạ trong/etc/hosts và kiểm tra kỹ xem thời gian có chính xác trên cả hai máy không. Không thỏa thuận Tuy nhiên, sau lần khởi động lại thứ hai của cả hai máy, vì bất kỳ lý do gì, nút đã có thể tham gia bộ điều khiển. Quá trình này mất nhiều thời gian hơn mức cần thiết, nhưng tôi liên kết điều đó với việc sử dụng phiên bản snap của dịch vụ Sau khi chạy các nút kubectl get của microk8s, bây giờ tôi có thể thấy cả hai nút trên cụm của mình Huzzah Tại sao làm cho nó khó khăn?Đối với những người liên quan… điều này không quá khó. Nghiêm túc. Kubernetes đã là một nền tảng đầy thách thức để sử dụng. Để làm cho việc thiết lập và chạy nó trở nên khó khăn như vậy mà không gặp sự cố, hãy gửi ngay cho tôi sự đơn giản của Docker Swarm Chắc chắn rồi, tôi có thể di chuyển sang một máy chủ dựa trên RHEL để triển khai Kubernetes của mình, nhưng Ubuntu Server đã là mục tiêu của tôi trong nhiều năm. Đừng hiểu sai ý tôi, tôi không bận tâm đến microk8, nhưng nó sẽ không hoạt động với những thứ như Portainer (đây là lựa chọn của tôi cho những thứ này). Để làm được điều đó, tôi phải thêm addon Portainer với
Xuất sắc…chỉ không. Vấn đề bây giờ là gì?
Nhưng chờ đã… kubectl chưa được cài đặt vì tôi đang sử dụng microk8s. Tôi phải sửa đổi lệnh như vậy
Sau đó, bạn phải chạy các lệnh (một lần nữa, sửa đổi lệnh tiếp theo để bao gồm microk8)
Lệnh cuối cùng sẽ báo cáo địa chỉ được sử dụng để truy cập Portainer Sẽ không tuyệt sao nếu điều đó hiệu quả? Đoán xem? Đối với những người chịu trách nhiệm về những phần công nghệ này, điều này không quá khó. Tôi nhận ra rằng có thể có mâu thuẫn giữa Kubernetes và Canonical, nhưng khi điều đó lan ra không gian người dùng, sự thất vọng thực sự đổ lên đầu các quản trị viên và nhà phát triển Làm ơn, làm ơn, làm ơn, khắc phục những sự cố này để những người thích Ubuntu Server có thể sử dụng Kubernetes của họ một cách dễ dàng như trước đây K8 có tốt hơn Docker không?Kubernetes là một nền tảng điều phối vùng chứa mã nguồn mở để quản lý, tự động hóa và thay đổi quy mô các ứng dụng được chứa trong vùng chứa. Kubernetes là tiêu chuẩn thực tế cho việc điều phối vùng chứa vì tính linh hoạt và khả năng mở rộng quy mô cao hơn , mặc dù Docker Swarm cũng là một công cụ điều phối.
Kubernetes có cạnh tranh với Docker không?Docker và Kubernetes không phải là đối thủ cạnh tranh “hoặc/hoặc” – chúng là hai công nghệ bổ sung cho nhau . Docker là một công ty cung cấp một bộ công cụ để xây dựng và chia sẻ hình ảnh container cũng như chạy các container ở cả quy mô nhỏ và lớn.
Lợi thế của Kubernetes so với Docker là gì?Bộ chứa Docker là một quy trình trên mỗi bộ chứa. Kubernetes đặc biệt hữu ích cho các nhóm DevOps vì nó cung cấp khám phá dịch vụ, cân bằng tải trong cụm, triển khai và khôi phục tự động, tự phục hồi các vùng chứa bị lỗi và quản lý cấu hình.
Kubernetes vẫn có nhu cầu?Sẽ có nhu cầu cấp thiết đối với các kỹ năng Kubernetes – và các khả năng dựa trên đám mây nói chung – trong tương lai gần . Và nhu cầu đó gần như chắc chắn sẽ vượt cung một lần nữa vào năm 2022.
|