[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-settings":3,"nav-course-tabs":225,"blog-article-kubernetes-la-gi":282},{"site":4,"home":19,"footer":172,"payment":214,"promo":221},{"name":5,"tagline":6,"url":7,"logoUrl":8,"primaryColor":9,"contactEmail":10,"hotline":11,"facebookUrl":12,"youtubeUrl":13,"kungfutechUrl":14,"announcement":15},"MelyDemy","Học lập trình thực chiến từ con số 0","https:\u002F\u002Fmelydemy.io.vn","\u002Fimages\u002Fbrand\u002Flogo.svg?v=3","#dc2626","techmely.creation@gmail.com","","https:\u002F\u002Fwww.facebook.com\u002Fmelydemy.techmely\u002F","https:\u002F\u002Fwww.youtube.com\u002Fc\u002FTechMely?sub_confirmation=1","https:\u002F\u002Fkungfutech.io.vn",{"enabled":16,"text":17,"link":18},true,"Ưu đãi Mely 29k — học lập trình trọn đời chỉ từ 29.000đ","\u002Fkhoa-hoc\u002F29k",{"seo":20,"hero":26,"banners":49,"sectionCopy":60,"categories":78,"features":100,"onlyMelyDemy":117,"aboutUs":130,"testimonials":142,"newsletter":167},{"title":21,"description":22,"keywords":23},"MelyDemy - Khoá học lập trình thực chiến dành cho bạn","MelyDemy cung cấp khoá học lập trình Frontend, Backend, DevOps và AI thực chiến bằng tiếng Việt, học trọn đời chỉ từ 29.000đ.",[24,5,25],"Khoá học lập trình","Thực chiến lập trình",{"badge":27,"title":28,"highlight":29,"description":30,"primaryCta":31,"secondaryCta":34,"stats":36},"Nền tảng học lập trình #1 cho người Việt","Học kỹ năng công nghệ","thực chiến, trọn đời","Hơn 40 khoá học Frontend, Backend, DevOps và AI — video bài bản, source code đi kèm, học mọi lúc mọi nơi.",{"label":32,"to":33},"Khám phá khoá học","\u002Fkhoa-hoc",{"label":35,"to":18},"Ưu đãi 29k",[37,40,43,46],{"value":38,"label":39},"40+","Khoá học",{"value":41,"label":42},"15.000+","Học viên",{"value":44,"label":45},"4.8\u002F5","Đánh giá",{"value":47,"label":48},"Trọn đời","Truy cập",[50,56],{"badge":51,"title":52,"description":53,"link":54,"color":55},"Xu hướng 2026","Lộ trình AI thực chiến","Prompt, workflow và tích hợp công cụ — học theo bài lab, áp dụng ngay vào dự án.","\u002Fkhoa-hoc\u002Fai","#7c3aed",{"badge":57,"title":58,"description":59,"link":18,"color":9},"Mely 29k","Học lập trình từ 29.000đ","Video trọn đời, source code đi kèm — bắt đầu Frontend, Backend hoặc DevOps hôm nay.",{"courses":61,"onlyMelyDemy":64,"about":67,"community":70,"blog":74},{"title":62,"subtitle":63},"Khoá học nổi bật","Các khoá học xây dựng bài bản, đáp ứng nhu cầu thực tế của thị trường",{"title":65,"subtitle":66},"Chỉ có tại MelyDemy","Khoá học chất lượng với mức giá dễ tiếp cận nhất",{"title":68,"subtitle":69},"Lộ trình học trên MelyDemy","Ba lộ trình cốt lõi — Full-stack, DevOps và AI — giúp bạn áp dụng ngay vào dự án thực tế.",{"headline":71,"title":72,"subtitle":73},"Được học viên tin tưởng","Học viên nói gì về MelyDemy","Hàng nghìn học viên đã học lập trình thực chiến — từ sinh viên, fresher đến người chuyển ngành.",{"title":75,"subtitle":76,"listPageSubtitle":77},"Blog","Tin tức, kiến thức công nghệ mới nhất từ MelyDemy","Tổng hợp tin tức AI và công nghệ mới nhất — kiến thức thực chiến cho lập trình viên.",[79,84,88,93,97],{"label":80,"to":81,"icon":82,"color":83},"Frontend","\u002Fkhoa-hoc\u002Fkhoa-hoc-frontend","i-lucide-layout-template","#f97316",{"label":85,"to":86,"icon":87,"color":9},"Backend","\u002Fkhoa-hoc\u002Fkhoa-hoc-backend","i-lucide-server",{"label":89,"to":90,"icon":91,"color":92},"DevOps","\u002Fkhoa-hoc\u002Fkhoa-hoc-devops","i-lucide-container","#0ea5e9",{"label":94,"to":54,"icon":95,"color":96},"AI","i-lucide-sparkles","#8b5cf6",{"label":57,"to":18,"icon":98,"color":99},"i-lucide-ticket-percent","#16a34a",[101,105,109,113],{"title":102,"description":103,"icon":104},"Video trọn đời","Mua một lần, học mãi mãi — cập nhật nội dung miễn phí.","i-lucide-infinity",{"title":106,"description":107,"icon":108},"Source code đi kèm","Mỗi bài học đều có code mẫu để bạn thực hành ngay.","i-lucide-code-xml",{"title":110,"description":111,"icon":112},"Tiếng Việt dễ hiểu","Giảng viên giải thích rõ ràng, ví dụ sát dự án thật.","i-lucide-languages",{"title":114,"description":115,"icon":116},"Cộng đồng hỗ trợ","Hỏi đáp nhanh cùng cộng đồng KungFuTech và mentor.","i-lucide-users-round",[118,122,126],{"title":119,"description":120,"image":121},"Giới thiệu chương trình","\u003Cp>Học lập trình với khoá học chất lượng: video bài giảng, source code và quyền truy cập trọn đời.\u003C\u002Fp>","\u002Fimages\u002Fhome\u002F49k-section-1.jpg",{"title":123,"description":124,"image":125},"Học dễ dàng, chi phí thấp","\u003Cp>Khoá học ngắn gọn, thực tế với mức giá chỉ từ 29K. Theo dõi thường xuyên để cập nhật ưu đãi.\u003C\u002Fp>","\u002Fimages\u002Fhome\u002F49k-section-2.jpg",{"title":127,"description":128,"image":129},"Chọn khoá học và bắt đầu","\u003Cp>Khám phá khoá học Frontend, Backend, DevOps, Mobile và AI — bắt đầu hành trình của bạn hôm nay.\u003C\u002Fp>","\u002Fimages\u002Fhome\u002F49k-section-3.jpg",[131,136,139],{"title":132,"description":133,"icon":134,"image":135},"Backend & Frontend","Xây dựng ứng dụng web từ giao diện đến hệ thống phía sau với công nghệ hiện đại.","i-lucide-layers","\u002Fimages\u002Fhome\u002Fabout-track-1.jpg",{"title":89,"description":137,"icon":91,"image":138},"Triển khai, vận hành và tối ưu hệ thống để ứng dụng chạy ổn định, mở rộng dễ dàng.","\u002Fimages\u002Fhome\u002Fabout-track-2.jpg",{"title":94,"description":140,"icon":95,"image":141},"Xây dựng ứng dụng tích hợp AI, tự động hoá workflow và phát triển sản phẩm thông minh.","\u002Fimages\u002Fhome\u002Fabout-track-3.jpg",[143,147,151,155,159,163],{"fullname":144,"role":145,"description":146},"Nguyễn Minh Anh","Sinh viên CNTT — Đại học Bách Khoa TP.HCM","Rất nhiều khoá học bổ ích từ Frontend, Backend đến DevOps — mình chọn lộ trình phù hợp mà không bị lạc. Video và source trọn đời, ôn lại rất tiện.",{"fullname":148,"role":149,"description":150},"Trần Hoàng Nam","Kế toán chuyển ngành IT — Hà Nội","Khoá AI giúp mình hiểu prompt, workflow và cách tích hợp công cụ vào việc học code hằng ngày. Bài ngắn, học buổi tối không bị quá tải.",{"fullname":152,"role":153,"description":154},"Lê Thị Hương","Fresher Frontend — FPT Software Đà Nẵng","Khoá TypeScript làm rõ type, interface và cách refactor code cũ — mình tự tin review PR và làm task trong dự án thật.",{"fullname":156,"role":157,"description":158},"Phạm Quốc Bảo","Kỹ sư cơ khí — tự học lập trình buổi tối","Lộ trình DevOps (CI\u002FCD, Docker) giúp mình hiểu pipeline deploy thay vì chỉ code local. Checklist từng tuần giữ nhịp học ổn định.",{"fullname":160,"role":161,"description":162},"Võ Thanh Tú","Intern Backend — startup tại TP.HCM","Khoá Node.js và thiết kế API giúp mình nắm REST, validation và database qua bài lab thực tế. Slide đính kèm tiện ôn phỏng vấn.",{"fullname":164,"role":165,"description":166},"Đặng Kim Ngân","Designer chuyển sang UI Developer","Khoá HTML\u002FCSS Grid & Flexbox giúp mình chuyển layout Figma sang markup chuẩn, responsive đúng spec.",{"title":168,"description":169,"placeholder":170,"buttonLabel":171},"Nhận tin khoá học & ưu đãi","Đăng ký email để cập nhật lộ trình mới, workshop và chương trình Mely 29k.","Email của bạn","Đăng ký",{"brandLine":173,"description":174,"columns":175},"MELYDEMY — Học lập trình từ con số 0","Nền tảng khoá học lập trình thực chiến thuộc hệ sinh thái KungFuTech.",[176,184,204],{"title":39,"links":177},[178,180,182],{"label":179,"to":33},"Tất cả khoá học",{"label":181,"to":18},"Ưu đãi Mely 29k",{"label":183,"to":54},"Khoá học AI",{"title":185,"links":186},"Tài nguyên",[187,189,192,195,198,201],{"label":75,"to":188},"\u002Fblog",{"label":190,"to":191},"Giới thiệu","\u002Fgioi-thieu",{"label":193,"to":194},"Liên hệ","\u002Flien-he",{"label":196,"to":197},"Câu hỏi thường gặp","\u002Fcau-hoi-thuong-gap",{"label":199,"to":200},"Điều khoản","\u002Fterms-and-conditions",{"label":202,"to":203},"Chính sách bảo mật","\u002Fprivacy-policy",{"title":205,"links":206},"Hệ sinh thái",[207,209,212],{"label":208,"href":14},"KungFuTech",{"label":210,"href":211},"TechMely YouTube","https:\u002F\u002Fwww.youtube.com\u002Fc\u002FTechMely",{"label":213,"href":12},"Facebook MelyDemy",{"bankName":215,"bankCode":216,"accountNumber":217,"accountName":218,"qrTemplate":219,"note":220},"MB Bank","MBBank","0680126400005","PHAM NGOC HOA","https:\u002F\u002Fqr.sepay.vn\u002Fimg?acc={accountNumber}&bank={bankCode}&amount={amount}&des={paymentCode}","Khoá học sẽ được gửi vào email của bạn sau khi thanh toán thành công.",{"promo49k":222},{"enabled":16,"displayPrice":223,"title":57,"description":224},29000,"Học lập trình trọn đời chỉ từ 29.000đ",[226,238,249,260,272],{"id":227,"name":228,"slug":229,"title":24,"canonicalSlug":230,"heroDescription":231,"seoTitle":232,"seoDescription":233,"intro":234},1,"Tất cả các khóa học","tat-ca",null,"Khám phá lộ trình Frontend, Backend, DevOps và AI — học thực chiến với video trọn đời.","Khoá học lập trình online tiếng Việt | MelyDemy","Học lập trình online cùng MelyDemy: khoá Frontend, Backend, DevOps và AI thực chiến bằng tiếng Việt, video xem trọn đời, kèm source code dự án.",[235,236,237],"MelyDemy là nền tảng khoá học lập trình bằng video tiếng Việt, tập trung vào kỹ năng làm được việc: mỗi khoá đi từ kiến thức nền tảng đến dự án thực tế, có source code đi kèm để bạn thực hành theo từng bài.","Danh mục gồm bốn nhóm chính. Frontend dành cho người muốn xây giao diện web với HTML, CSS, JavaScript, ReactJS hay Next.js. Backend dạy lập trình API, cơ sở dữ liệu và kiến trúc hệ thống với nhiều ngôn ngữ và framework. DevOps hướng dẫn Docker, CI\u002FCD, cloud và vận hành hệ thống. Nhóm AI giúp bạn dùng các công cụ và agent AI để tăng năng suất làm việc.","Bạn có thể lọc theo nhóm hoặc tìm theo tên công nghệ. Khoá học được mua một lần và xem lại không giới hạn thời gian, phù hợp cho cả người mới bắt đầu lẫn lập trình viên muốn mở rộng kỹ năng. Nếu chưa biết nên bắt đầu từ đâu, hãy chọn nhóm Frontend hoặc Backend và xem phần nội dung chi tiết của từng khoá để đánh giá độ phù hợp.",{"id":239,"name":85,"slug":240,"title":85,"canonicalSlug":241,"heroDescription":242,"seoTitle":243,"seoDescription":244,"intro":245},2,"khoa-hoc-backend","backend","API, database và kiến trúc hệ thống — từ nền tảng đến dự án thực tế.","Khoá học lập trình Backend online | MelyDemy","Học lập trình Backend bằng tiếng Việt: xây dựng API, làm việc với cơ sở dữ liệu và thiết kế hệ thống qua các khoá video thực chiến tại MelyDemy.",[246,247,248],"Lập trình Backend là phần xử lý đằng sau mọi ứng dụng: nhận yêu cầu từ giao diện, xử lý nghiệp vụ, lưu và truy vấn dữ liệu rồi trả kết quả về cho người dùng. Các khoá Backend tại MelyDemy hướng dẫn bạn xây dựng API, làm việc với cơ sở dữ liệu quan hệ và NoSQL, xác thực người dùng và triển khai ứng dụng.","Mỗi khoá bắt đầu từ nền tảng ngôn ngữ và framework, sau đó đi tới các chủ đề thực tế như thiết kế REST API, tối ưu truy vấn, bảo mật và kiểm thử. Bạn học qua video, làm theo source code và hoàn thành dự án cuối khoá để có sản phẩm đưa vào hồ sơ.","Hãy chọn ngôn ngữ phù hợp với mục tiêu công việc của bạn, xem nội dung từng chương trong trang khoá học rồi bắt đầu học theo tốc độ riêng. Học viên có thể xem lại bài giảng không giới hạn thời gian.",{"id":250,"name":80,"slug":251,"title":80,"canonicalSlug":252,"heroDescription":253,"seoTitle":254,"seoDescription":255,"intro":256},3,"khoa-hoc-frontend","frontend","HTML, CSS, JavaScript và framework hiện đại — xây giao diện responsive chuẩn doanh nghiệp.","Khoá học lập trình Frontend online | MelyDemy","Học Frontend bằng tiếng Việt: HTML, CSS, JavaScript, ReactJS, Next.js và nhiều hơn nữa, xây giao diện responsive qua khoá video thực chiến tại MelyDemy.",[257,258,259],"Lập trình Frontend là kỹ năng xây dựng phần giao diện người dùng nhìn thấy và tương tác trên web. Các khoá Frontend tại MelyDemy đi từ HTML, CSS và JavaScript nền tảng đến các framework hiện đại như ReactJS và Next.js, giúp bạn dựng giao diện responsive đạt chuẩn doanh nghiệp.","Nội dung nhấn mạnh thực hành: bạn xây dựng từng thành phần giao diện, quản lý trạng thái, gọi API, tối ưu hiệu năng và SEO, rồi hoàn thiện một dự án hoàn chỉnh. Source code được cung cấp để bạn đối chiếu và tự chỉnh sửa.","Nếu mới bắt đầu, hãy học chắc JavaScript trước khi chuyển sang framework. Nếu đã có nền tảng, bạn có thể chọn thẳng khoá ReactJS hoặc Next.js. Xem mục nội dung trong từng khoá để biết chính xác bạn sẽ học những gì.",{"id":261,"name":262,"slug":263,"title":262,"canonicalSlug":264,"heroDescription":265,"seoTitle":266,"seoDescription":267,"intro":268},4,"Devops","khoa-hoc-devops","devops","CI\u002FCD, container và vận hành hệ thống — triển khai ổn định, mở rộng dễ dàng.","Khoá học DevOps online tiếng Việt | MelyDemy","Học DevOps bằng tiếng Việt: Docker, CI\u002FCD, cloud và vận hành hệ thống qua các khoá video thực chiến, giúp triển khai ứng dụng ổn định tại MelyDemy.",[269,270,271],"DevOps kết nối phát triển và vận hành: tự động hoá việc build, kiểm thử, triển khai và giám sát để phần mềm được đưa đến người dùng nhanh và ổn định hơn. Các khoá DevOps tại MelyDemy hướng dẫn bạn làm quen với Linux, container, pipeline CI\u002FCD và hạ tầng đám mây.","Bạn sẽ thực hành trực tiếp: đóng gói ứng dụng bằng Docker, thiết lập quy trình tự động triển khai, quản lý cấu hình và theo dõi hệ thống khi chạy thật. Mỗi bài đều đi kèm ví dụ có thể làm lại trên máy hoặc máy chủ của bạn.","Nhóm khoá này phù hợp với lập trình viên muốn tự triển khai sản phẩm của mình, hoặc người muốn chuyển hướng sang vai trò DevOps và cloud. Hãy xem nội dung chi tiết từng khoá để chọn lộ trình phù hợp.",{"id":273,"name":94,"slug":274,"title":94,"canonicalSlug":274,"heroDescription":275,"seoTitle":276,"seoDescription":277,"intro":278},5,"ai","Prompt, workflow và tích hợp công cụ AI — học theo bài lab, áp dụng ngay vào dự án.","Khoá học AI ứng dụng cho lập trình | MelyDemy","Học AI ứng dụng bằng tiếng Việt: prompt, workflow tự động và agent AI qua các bài lab thực hành, áp dụng ngay vào công việc và dự án tại MelyDemy.",[279,280,281],"Các khoá AI tại MelyDemy tập trung vào việc ứng dụng: dùng công cụ AI để viết code nhanh hơn, tự động hoá công việc lặp lại và xây dựng agent hỗ trợ công việc hằng ngày, thay vì chỉ giải thích lý thuyết.","Bạn sẽ học cách viết prompt hiệu quả, thiết kế workflow kết nối nhiều công cụ, tự host agent trên máy chủ riêng và tích hợp AI vào quy trình phát triển phần mềm. Mỗi chủ đề có bài lab để bạn làm theo và áp dụng được ngay.","Nhóm khoá này phù hợp với lập trình viên, người làm nội dung và bất kỳ ai muốn tăng năng suất bằng AI. Hãy xem phần nội dung từng khoá để biết công cụ và kết quả bạn sẽ đạt được.",{"id":283,"slug":284,"title":285,"excerpt":286,"createdAt":287,"updatedAt":287,"category":288,"thumbnail":290,"content":291,"head":292,"author":299,"image":302,"same_category":303,"sameCategory":352},"f6d8e6c9-7289-4c91-a5f5-f5f66c9bc5dc","kubernetes-la-gi","Kubernetes là gì? Pod, Node, Service giải thích dễ hiểu","Kubernetes (K8s) là gì, khi nào cần, các khái niệm pod, node, deployment, service và so với Docker.","2026-11-03T15:08:20",{"name":75,"slug":289,"description":11},"blog",{"url":11,"alt":285},"\u003Cp>\u003Cstrong>Kubernetes là gì?\u003C\u002Fstrong> Kubernetes (viết tắt K8s) là nền tảng mã nguồn mở dùng để \u003Cstrong>tự động triển khai, mở rộng và quản lý ứng dụng chạy trong container\u003C\u002Fstrong> trên nhiều máy chủ. Nếu Docker giúp bạn đóng gói và chạy một container, thì Kubernetes giúp điều phối hàng trăm container: tự khởi động lại khi lỗi, phân bổ tải, cập nhật phiên bản không gián đoạn. Bài viết giải thích kiến trúc Kubernetes, các khái niệm pod, node, deployment, service và hướng dẫn chạy thử trên máy cá nhân.\u003C\u002Fp>\n\n\u003Ch2>Vì sao cần Kubernetes?\u003C\u002Fh2>\n\u003Cp>Khi chỉ có một vài container trên một server, Docker Compose là đủ. Nhưng khi hệ thống lớn lên, bạn sẽ gặp các câu hỏi:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Container bị lỗi lúc nửa đêm, ai khởi động lại?\u003C\u002Fli>\n\u003Cli>Lượng truy cập tăng gấp nhiều lần, làm sao thêm bản sao nhanh chóng?\u003C\u002Fli>\n\u003Cli>Một server hỏng, container trên đó chuyển đi đâu?\u003C\u002Fli>\n\u003Cli>Cập nhật phiên bản mới thế nào để người dùng không bị gián đoạn, và quay lại nếu có lỗi?\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Kubernetes trả lời các câu hỏi này bằng cách để bạn khai báo \u003Cstrong>trạng thái mong muốn\u003C\u002Fstrong> (ví dụ: “luôn có 3 bản sao của ứng dụng web”), và hệ thống tự liên tục điều chỉnh để đạt trạng thái đó.\u003C\u002Fp>\n\n\u003Ch2>Docker và Kubernetes khác nhau thế nào?\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>\u003C\u002Fth>\u003Cth>Docker\u003C\u002Fth>\u003Cth>Kubernetes\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Vai trò\u003C\u002Ftd>\u003Ctd>Đóng gói và chạy container\u003C\u002Ftd>\u003Ctd>Điều phối container trên cụm nhiều máy\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Phạm vi\u003C\u002Ftd>\u003Ctd>Thường một máy\u003C\u002Ftd>\u003Ctd>Nhiều máy (cluster)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Tự phục hồi\u003C\u002Ftd>\u003Ctd>Hạn chế (restart policy)\u003C\u002Ftd>\u003Ctd>Có, tự thay thế pod lỗi\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Mở rộng\u003C\u002Ftd>\u003Ctd>Thủ công\u003C\u002Ftd>\u003Ctd>Khai báo số bản sao, hỗ trợ tự động mở rộng\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Độ phức tạp\u003C\u002Ftd>\u003Ctd>Thấp\u003C\u002Ftd>\u003Ctd>Cao hơn đáng kể\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>Hai công nghệ bổ trợ cho nhau: bạn vẫn build image bằng Docker (hoặc công cụ tương đương), rồi Kubernetes chạy image đó. Nếu chưa quen container, hãy đọc \u003Ca href=\"\u002Fblog\u002Fdocker-la-gi-huong-dan-cho-nguoi-moi\">Docker là gì\u003C\u002Fa> trước.\u003C\u002Fp>\n\n\u003Ch2>Kiến trúc một cụm Kubernetes\u003C\u002Fh2>\n\u003Ch3>Control plane\u003C\u002Fh3>\n\u003Cp>Bộ não của cụm, gồm:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>kube-apiserver:\u003C\u002Fstrong> cổng giao tiếp, mọi lệnh \u003Ccode>kubectl\u003C\u002Fcode> đều đi qua đây.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>etcd:\u003C\u002Fstrong> cơ sở dữ liệu key-value lưu toàn bộ trạng thái cụm.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>kube-scheduler:\u003C\u002Fstrong> quyết định pod chạy trên node nào.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>controller-manager:\u003C\u002Fstrong> các vòng điều khiển liên tục đưa trạng thái thực tế về trạng thái mong muốn.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Worker node\u003C\u002Fh3>\n\u003Cp>Các máy chạy ứng dụng, mỗi node có:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>kubelet:\u003C\u002Fstrong> tác tử nhận lệnh và đảm bảo container chạy đúng.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>container runtime:\u003C\u002Fstrong> ví dụ containerd, trực tiếp chạy container.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>kube-proxy:\u003C\u002Fstrong> xử lý định tuyến mạng cho service.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>Các khái niệm cốt lõi\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Khái niệm\u003C\u002Fth>\u003Cth>Giải thích ngắn\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Pod\u003C\u002Ftd>\u003Ctd>Đơn vị nhỏ nhất, chứa một hoặc vài container dùng chung mạng và lưu trữ\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Deployment\u003C\u002Ftd>\u003Ctd>Quản lý số bản sao pod, cập nhật cuốn chiếu (rolling update) và rollback\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Service\u003C\u002Ftd>\u003Ctd>Địa chỉ ổn định để truy cập nhóm pod, cân bằng tải giữa chúng\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Ingress\u003C\u002Ftd>\u003Ctd>Định tuyến HTTP\u002FHTTPS từ bên ngoài vào các service theo domain, đường dẫn\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>ConfigMap \u002F Secret\u003C\u002Ftd>\u003Ctd>Tách cấu hình và thông tin nhạy cảm khỏi image\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Namespace\u003C\u002Ftd>\u003Ctd>Phân vùng logic trong cụm (dev, staging, theo nhóm)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>PersistentVolume\u003C\u002Ftd>\u003Ctd>Lưu trữ bền vững cho dữ liệu cần giữ lại\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>StatefulSet \u002F DaemonSet \u002F Job\u003C\u002Ftd>\u003Ctd>Kiểu chạy cho ứng dụng có trạng thái, chạy trên mọi node, tác vụ một lần\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\u003Ch2>Ví dụ: triển khai ứng dụng web\u003C\u002Fh2>\n\u003Cpre>\u003Ccode>apiVersion: apps\u002Fv1\nkind: Deployment\nmetadata:\n  name: web\nspec:\n  replicas: 3\n  selector:\n    matchLabels:\n      app: web\n  template:\n    metadata:\n      labels:\n        app: web\n    spec:\n      containers:\n        - name: web\n          image: nginx:1.27\n          ports:\n            - containerPort: 80\n          resources:\n            requests: { cpu: \"100m\", memory: \"128Mi\" }\n            limits: { cpu: \"500m\", memory: \"256Mi\" }\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: web\nspec:\n  selector:\n    app: web\n  ports:\n    - port: 80\n      targetPort: 80\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Áp dụng và kiểm tra:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>kubectl apply -f web.yaml\nkubectl get pods\nkubectl get svc\nkubectl scale deployment web --replicas=5\nkubectl rollout status deployment\u002Fweb\nkubectl logs -l app=web\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Thử xoá một pod bằng \u003Ccode>kubectl delete pod &lt;tên&gt;\u003C\u002Fcode>, bạn sẽ thấy Kubernetes tự tạo pod mới để giữ đủ số bản sao.\u003C\u002Fp>\n\n\u003Ch2>Chạy thử Kubernetes trên máy cá nhân\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>minikube:\u003C\u002Fstrong> tạo cụm một node trên máy, phù hợp học tập.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>kind:\u003C\u002Fstrong> chạy cụm Kubernetes bên trong container Docker, nhẹ và nhanh.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Docker Desktop:\u003C\u002Fstrong> có tuỳ chọn bật Kubernetes tích hợp.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>k3s:\u003C\u002Fstrong> bản Kubernetes gọn nhẹ, chạy được trên VPS nhỏ.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Khi chạy thật, nhiều đội chọn dịch vụ Kubernetes được quản lý như Amazon EKS, Google GKE hoặc Azure AKS để không phải tự vận hành control plane.\u003C\u002Fp>\n\n\u003Ch2>Khi nào không nên dùng Kubernetes?\u003C\u002Fh2>\n\u003Cp>Kubernetes mạnh nhưng phức tạp. Với website nhỏ, ít dịch vụ hoặc đội ngũ chưa có người vận hành, một VPS với Docker Compose hoặc dịch vụ PaaS thường đơn giản và rẻ hơn. Hãy cân nhắc Kubernetes khi bạn thực sự cần mở rộng linh hoạt, nhiều dịch vụ, nhiều môi trường và tính sẵn sàng cao.\u003C\u002Fp>\n\n\u003Ch2>Lộ trình học Kubernetes\u003C\u002Fh2>\n\u003Col>\n\u003Cli>Vững Linux, mạng và Docker.\u003C\u002Fli>\n\u003Cli>Pod, Deployment, Service, Namespace với \u003Ccode>kubectl\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>ConfigMap, Secret, volume, probe (liveness\u002Freadiness).\u003C\u002Fli>\n\u003Cli>Ingress, HTTPS, quản lý tài nguyên CPU\u002FRAM.\u003C\u002Fli>\n\u003Cli>Helm để đóng gói và tái sử dụng cấu hình.\u003C\u002Fli>\n\u003Cli>Giám sát với Prometheus, \u003Ca href=\"\u002Fkhoa-hoc\u002Fkhoa-hoc-grafana\">Grafana\u003C\u002Fa>; CI\u002FCD triển khai lên cụm.\u003C\u002Fli>\n\u003Cli>Bảo mật: RBAC, network policy, quét image.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Kubernetes là một chặng trong \u003Ca href=\"\u002Fblog\u002Flo-trinh-hoc-devops\">lộ trình học DevOps\u003C\u002Fa> tổng thể.\u003C\u002Fp>\n\n\u003Ch2>Rolling update và rollback hoạt động ra sao?\u003C\u002Fh2>\n\u003Cp>Một trong những lý do chính để dùng Kubernetes là cập nhật ứng dụng mà người dùng không bị gián đoạn. Khi bạn đổi image trong Deployment, Kubernetes không tắt toàn bộ pod cũ cùng lúc, mà lần lượt tạo pod mới, chờ pod mới sẵn sàng, rồi mới tắt bớt pod cũ. Hai tham số \u003Ccode>maxSurge\u003C\u002Fcode> và \u003Ccode>maxUnavailable\u003C\u002Fcode> quyết định mỗi lần được tạo thêm bao nhiêu pod và được phép thiếu bao nhiêu pod.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>kubectl set image deployment\u002Fweb web=nginx:1.28\nkubectl rollout status deployment\u002Fweb\nkubectl rollout history deployment\u002Fweb\nkubectl rollout undo deployment\u002Fweb   # quay lại phiên bản trước\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Để quá trình này an toàn, bạn cần khai báo \u003Cstrong>readiness probe\u003C\u002Fstrong> (kiểm tra pod đã sẵn sàng nhận request chưa) và \u003Cstrong>liveness probe\u003C\u002Fstrong> (kiểm tra pod còn “sống” không, nếu không thì khởi động lại). Thiếu readiness probe, Kubernetes có thể chuyển traffic vào pod chưa khởi động xong, gây lỗi cho người dùng ngay trong lúc deploy.\u003C\u002Fp>\n\n\u003Ch2>Quản lý cấu hình và bí mật\u003C\u002Fh2>\n\u003Cp>Không nên “nướng” cấu hình vào image. Thay vào đó, hãy tách ra ConfigMap (cấu hình thường như URL dịch vụ, chế độ log) và Secret (mật khẩu database, API key), rồi gắn vào pod dưới dạng biến môi trường hoặc file.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>kubectl create configmap web-config --from-literal=LOG_LEVEL=info\nkubectl create secret generic db-pass --from-literal=PASSWORD=doi-mat-khau-that\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Lưu ý: Secret mặc định chỉ được mã hoá base64, không phải mã hoá thật. Trong môi trường production, hãy bật mã hoá etcd, giới hạn quyền đọc Secret bằng RBAC, hoặc dùng các giải pháp quản lý secret chuyên dụng của nhà cung cấp cloud.\u003C\u002Fp>\n\n\u003Ch2>Tự động mở rộng\u003C\u002Fh2>\n\u003Cp>Horizontal Pod Autoscaler (HPA) có thể tự tăng giảm số bản sao pod dựa trên mức sử dụng CPU, bộ nhớ hoặc metric tuỳ chỉnh. Để HPA hoạt động, pod cần khai báo \u003Ccode>resources.requests\u003C\u002Fcode> và cụm cần có metrics-server. Ngoài ra, Cluster Autoscaler trên cloud có thể tự thêm hoặc bớt node khi tài nguyên thiếu hoặc dư. Kết hợp hai cơ chế này giúp hệ thống chịu được lúc cao điểm mà vẫn tiết kiệm chi phí lúc vắng khách.\u003C\u002Fp>\n\n\u003Ch2>Lệnh kubectl hay dùng khi vận hành\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Lệnh\u003C\u002Fth>\u003Cth>Tác dụng\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>\u003Ccode>kubectl get pods -A\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Xem pod ở mọi namespace\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ccode>kubectl describe pod &lt;tên&gt;\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Xem chi tiết và sự kiện của pod, rất hữu ích khi pod không khởi động được\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ccode>kubectl logs -f &lt;tên&gt;\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Theo dõi log của pod\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ccode>kubectl exec -it &lt;tên&gt; -- sh\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Mở shell bên trong container\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ccode>kubectl port-forward svc\u002Fweb 8080:80\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Truy cập service từ máy cá nhân để kiểm tra\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ccode>kubectl get events --sort-by=.lastTimestamp\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Xem các sự kiện gần nhất trong cụm\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>Khi pod ở trạng thái \u003Ccode>CrashLoopBackOff\u003C\u002Fcode>, hãy xem log của lần chạy trước bằng \u003Ccode>kubectl logs --previous\u003C\u002Fcode>. Khi pod ở trạng thái \u003Ccode>Pending\u003C\u002Fcode>, thường là do thiếu tài nguyên hoặc không có node phù hợp, lệnh \u003Ccode>describe\u003C\u002Fcode> sẽ cho biết lý do. Trạng thái \u003Ccode>ImagePullBackOff\u003C\u002Fcode> thường do sai tên image hoặc thiếu quyền truy cập registry.\u003C\u002Fp>\n\n\u003Ch2>Câu hỏi thường gặp\u003C\u002Fh2>\n\u003Ch3>Vì sao Kubernetes gọi là K8s?\u003C\u002Fh3>\n\u003Cp>Vì giữa chữ “K” và “s” có 8 ký tự, cách viết tắt này giúp gọi tên ngắn gọn.\u003C\u002Fp>\n\u003Ch3>Pod và container khác nhau thế nào?\u003C\u002Fh3>\n\u003Cp>Container là tiến trình được đóng gói. Pod là lớp bao bọc của Kubernetes, có thể chứa một hoặc vài container chạy cùng nhau, chia sẻ địa chỉ mạng và volume.\u003C\u002Fp>\n\u003Ch3>Học Kubernetes có khó không?\u003C\u002Fh3>\n\u003Cp>Kubernetes có nhiều khái niệm và cần nền tảng Linux, mạng, container. Nếu học theo thứ tự và thực hành trên cụm thử nghiệm, bạn sẽ nắm được dần.\u003C\u002Fp>\n\u003Ch3>Kubernetes có thay thế Docker không?\u003C\u002Fh3>\n\u003Cp>Không. Kubernetes điều phối container; bạn vẫn cần công cụ để build image như Docker.\u003C\u002Fp>\n\n\u003Ch2>Kết luận\u003C\u002Fh2>\n\u003Cp>Kubernetes là nền tảng điều phối container phổ biến cho các hệ thống cần mở rộng và độ ổn định cao. Hãy nắm vững Docker trước, sau đó thực hành các khái niệm pod, deployment, service trên minikube hoặc kind. Để học bài bản từ cơ bản đến thực chiến, tham khảo \u003Ca href=\"\u002Fkhoa-hoc\u002Fkhoa-hoc-kubernetes\">khoá học Kubernetes\u003C\u002Fa> và \u003Ca href=\"\u002Fkhoa-hoc\u002Fkhoa-hoc-docker\">khoá học Docker\u003C\u002Fa> của MelyDemy.\u003C\u002Fp>\n",{"description":286,"keywords":293},[294,295,296,297,298],"Kubernetes","Pod,","Node,","Service","giải",{"fullname":300,"avatar":11,"position":301,"quote":11},"Mely Demy","Editor",{"url":11,"alt":285},[304,312,320,328,336,344],{"id":305,"slug":306,"title":307,"excerpt":308,"createdAt":309,"updatedAt":309,"category":310,"thumbnail":311},"9aa1bf78-82ec-4bf0-b0ff-7b0a7bf4b22a","hoc-ai-bat-dau-tu-dau","Học AI bắt đầu từ đâu? Lộ trình cho dev và người mới","Lộ trình học AI: dùng công cụ AI, Python, toán nền, machine learning, deep learning, LLM và AI agent.","2026-11-03T15:09:31",{"name":75,"slug":289,"description":11},{"url":11,"alt":307},{"id":313,"slug":314,"title":315,"excerpt":316,"createdAt":317,"updatedAt":317,"category":318,"thumbnail":319},"f3ad15b5-1753-46e0-ab87-ab9f767c8030","chung-chi-aws-nen-thi-cai-nao","Chứng chỉ AWS nên thi cái nào? Lộ trình từ cơ bản","So sánh Cloud Practitioner, Solutions Architect Associate\u002FProfessional, Developer Associate; lộ trình và cách ôn.","2026-11-03T15:09:08",{"name":75,"slug":289,"description":11},{"url":11,"alt":315},{"id":321,"slug":322,"title":323,"excerpt":324,"createdAt":325,"updatedAt":325,"category":326,"thumbnail":327},"d7e50156-ec43-4afc-b097-1979e02e8d8a","typescript-la-gi","TypeScript là gì? Vì sao dev JavaScript nên học","TypeScript là gì, khác JavaScript thế nào, kiểu dữ liệu, interface, generic và cách dùng với React.","2026-11-03T15:08:43",{"name":75,"slug":289,"description":11},{"url":11,"alt":323},{"id":329,"slug":330,"title":331,"excerpt":332,"createdAt":333,"updatedAt":333,"category":334,"thumbnail":335},"59f770d8-1fad-4707-99e0-780fc7b997e1","lo-trinh-hoc-devops","Lộ trình học DevOps bắt đầu từ đâu cho người mới","DevOps bắt đầu từ đâu: Linux, Git, Docker, CI\u002FCD, Kubernetes, cloud AWS và giám sát với Grafana.","2026-11-03T15:07:57",{"name":75,"slug":289,"description":11},{"url":11,"alt":331},{"id":337,"slug":338,"title":339,"excerpt":340,"createdAt":341,"updatedAt":341,"category":342,"thumbnail":343},"94151f16-08e8-47d6-95f1-599aeceaec4c","hoc-sql-co-ban","Học SQL cơ bản: SELECT, JOIN, GROUP BY kèm ví dụ","SQL cơ bản cho người mới: truy vấn, lọc, JOIN, GROUP BY, index và bài tập với MySQL.","2026-11-03T15:07:33",{"name":75,"slug":289,"description":11},{"url":11,"alt":339},{"id":345,"slug":346,"title":347,"excerpt":348,"createdAt":349,"updatedAt":349,"category":350,"thumbnail":351},"57b73d1f-a064-4f1e-a57b-0dc9817e8841","cursor-ai-la-gi-huong-dan-su-dung","Cursor AI là gì? Cách dùng Cursor để code nhanh hơn","Cursor AI là gì, khác VS Code ra sao, tính năng Tab, Chat, Agent và cách dùng an toàn trong dự án.","2026-11-03T15:07:10",{"name":75,"slug":289,"description":11},{"url":11,"alt":347},[353,356,359,362,365,368],{"id":305,"slug":306,"title":307,"excerpt":308,"createdAt":309,"updatedAt":309,"category":354,"thumbnail":355},{"name":75,"slug":289,"description":11},{"url":11,"alt":307},{"id":313,"slug":314,"title":315,"excerpt":316,"createdAt":317,"updatedAt":317,"category":357,"thumbnail":358},{"name":75,"slug":289,"description":11},{"url":11,"alt":315},{"id":321,"slug":322,"title":323,"excerpt":324,"createdAt":325,"updatedAt":325,"category":360,"thumbnail":361},{"name":75,"slug":289,"description":11},{"url":11,"alt":323},{"id":329,"slug":330,"title":331,"excerpt":332,"createdAt":333,"updatedAt":333,"category":363,"thumbnail":364},{"name":75,"slug":289,"description":11},{"url":11,"alt":331},{"id":337,"slug":338,"title":339,"excerpt":340,"createdAt":341,"updatedAt":341,"category":366,"thumbnail":367},{"name":75,"slug":289,"description":11},{"url":11,"alt":339},{"id":345,"slug":346,"title":347,"excerpt":348,"createdAt":349,"updatedAt":349,"category":369,"thumbnail":370},{"name":75,"slug":289,"description":11},{"url":11,"alt":347}]