
Bài viết được sự cho phép của tác giả Nguyễn Thành Nam Kubernetes đã trở thành một công nghệ quan trọng trong lĩnh vực điện toán đám mây và DevOps. Để chuẩn bị cho các cuộc phỏng vấn liên quan đến Kubernetes, việc nắm vững các câu hỏi phổ biến là rất cần thiết. Bài viết này TopDev sẽ tổng hợp hơn 25 câu hỏi phỏng vấn Kubernetes ở mọi cấp độ, từ cơ bản đến nâng cao, giúp bạn tự tin hơn trong quá trình tìm kiếm cơ hội nghề nghiệp trong lĩnh vực này. II. Câu hỏi phỏng vấn về Kubernetes 11. Hoàn thành file thông số cấu hình sau để làm cho nó Ingress? metadata: name: someapp-ingress spec: Thực hiện: apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: someapp-ingress spec: rules: - host: my.host http: paths: - backend: serviceName: someapp-internal-service servicePort: 8080 12. Cấu hình TLS với Ingress? Thêm tls và secretName: spec: tls: - hosts: - some_app.com secretName: someapp-secret-tls 13. Có vấn đề gì khi dùng namespace mặc định? Chỉ sử dụng namespace mặc đị [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Thành Nam I. Giới thiệu Kubernetes Kubernetes là công nghệ phân phối mã nguồn mở giúp ta lên lịch và thực thi container ứng dụng trên nhiều cụm. Kubernetes bao gồm hai kiểu tài nguyên: Master: Điều phối tất cả các hoạt động trong cụm. Ví dụ: lập lịch ứng dụng, duy trì trạng thái của ứng dụng, mở rộng ứng dụng và phát hành ra các bản cập nhật mới Node: Một nút là một phiên bản của hệ điều hành đóng vai trò là một worker trong cụm Kubernetes. Ngoài ra, Node có hai thành phần: Kubelet: Tác nhân quản lý và giao tiếp với master Tool (Docker/container): Công cụ để chạy các hoạt động container Nó được thiết kế dựa trên cơ sở là một tập hợp các container được kết hợp lỏng lẻo, tập trung vào việc triển khai, duy trì và mở rộng khối lượng công việ [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Thành Nam Để giúp bạn chuẩn bị tốt nhất cho các cuộc phỏng vấn liên quan đến Docker, TopDev đã tổng hợp danh sách TOP 35 câu hỏi phỏng vấn Docker và cách trả lời hay nhất. Bỏ túi ngay để có một buổi phỏng vấn thật thành công bạn nhé. 21. Docker volume được lưu ở đâu trong docker? Volume được tạo và quản lý bởi Docker và không thể truy cập bằng thực thể khác docker. Nó được lưu trữ trong hệ thống file host Docker ở /var/lib/docker/volumes/. 22. Lệnh docker info là gì? Lệnh lấy thông tin chi tiết về Docker được cài đặt trên hệ thống host. Thông tin có thể giống như số lượng container hoặc image và chúng đang chạy ở trạng thái nào và các thông số kỹ thuật phần cứng như tổng bộ nhớ được cấp phát, tốc độ của bộ xử lý, phiên bản kernel,... 23. Ý nghĩa của các lệnh up, run và start của docker compose? Sử [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Thành Nam Để giúp bạn chuẩn bị tốt nhất cho các cuộc phỏng vấn liên quan đến Docker, TopDev đã tổng hợp danh sách TOP 35 câu hỏi phỏng vấn Docker và cách trả lời hay nhất. Bỏ túi ngay để có một buổi phỏng vấn thật thành công bạn nhé. 11. Docker Hub là gì? Là một nền tảng đám mây được cung cấp bởi Docker cho phép lưu trữ công khai image của Docker đồng thời cho phép tìm kiếm và chia sẻ với người khác. Image có thể được đẩy lên Docker Hub bằng câu lệnh docker push. 12. Lệnh để export một docket image như một archive? Cú pháp đó là: docker save -o <exported_name>.tar <container-name> 13. Lệnh để import một Docker image đến một Docker host khác? docker load -i <export_image_name>.tar 14. Có thể xoá container bị tạm dừng khỏi Docker không? Không thể! Container phải bị dừng trạng thái trước khi ta có thể xoá chúng. 15. Lệnh [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Thành Nam Docker đã trở thành một công cụ không thể thiếu trong việc triển khai và quản lý các ứng dụng container hóa. Với sự phổ biến ngày càng tăng của Docker, việc nắm vững kiến thức và kỹ năng về Docker không chỉ là một lợi thế mà còn là một yêu cầu quan trọng đối với các kỹ sư phần mềm, DevOps và những người làm việc trong lĩnh vực công nghệ thông tin. Để giúp bạn chuẩn bị tốt nhất cho các cuộc phỏng vấn liên quan đến Docker, TopDev đã tổng hợp danh sách TOP 35 câu hỏi phỏng vấn Docker và cách trả lời hay nhất. Bỏ túi ngay để có một buổi phỏng vấn thật thành công bạn nhé. I. Giới thiệu Docker Docker là một nền tảng mã nguồn mở rất phổ biến và mạnh mẽ được sử dụng để xây dựng, triển khai và chạ [...]
Read more →
Bài viết được sự cho phép của tác giả Trần Nhật Trường Giới thiệu Kubelet là một agent trong từng node, có tác dụng quản lý tất cả container. Kubelet được giám sát, điều khiển bởi Control plane (hay còn gọi là Master), dùng để quản lý các node và các pod trong cluster. [caption id="attachment_61021" align="aligncenter" width="538"] Kiến trúc tổng quan Kubernetes[/caption] Ôn lại các kiến thức của Kubernetes, ta sẽ có một số khái niệm như cluster (cụm). Các cluster sẽ chứa các node (nút), cung cấp tài nguyên và quản lý các node. Các node chứa các pod. Các container được chạy trên các pod. Kube-apiserver là một thành phần của control plane, nó là front end của control plane, cung cấp giao diện API cho các thành phần khác giao tiếp với control plane. [caption id="attachment_61020" align="aligncenter" width="1024"] Kiến trúc của node[/caption] [caption id="attachment_61019" align="aligncenter" width="686"] Mối liên hệ giữa cluster và node[/caption] Nguyên nhân Nhìn trên kiến trú [...]
Read more →
Bài viết được sự cho phép bởi tác giả Vũ Thành Nam Trước đây mình quản lý kubernetes (k8s) qua các các command line như kubectl, sau đó thì dùng kubernetes extension trong visual studio code. Tuy nhiên các công cụ này thường không có giao diện không trực quan hoặc không đầy đủ tính năng cần thiết. Vài năm gần đây khi được các đàn anh giới thiệu thì mình biết đến Lens. Lens là một công cụ cung cấp cho chúng ta khá đầy đủ các tính năng làm việc với kubernetes thông qua giao diện và bạn có thể dễ dàng quản lý cũng như làm những tác vụ với k8s một cách mượt mà hơn. Dưới đây là một vài tính năng mà mình thấy được sau một thời gian sử dụng Lens: Hỗ trợ đầy đủ các môi trường Một điều giúp cho Lens được sử dụng rất nhiều bởi mọi người là do Lens có thể chạy trên hầu hết cá [...]
Read more →
Bài viết được sự cho phép của tác giả Tống Xuân Hoài Vấn đề Docker gần đây đang nổi đình đám trong cộng đồng IT nên ngày càng phổ biến, được nhiều người dùng hơn. Bằng chứng là tần suất từ Docker xuất hiện trong JD của nhà tuyển dụng ngày càng nhiều. Công ty của tôi sử dụng Docker, dự án của tôi cũng dùng Docker, dự án làm cho người khác cũng dùng nó… Docker xuất hiện như một giải pháp "đóng gói" quá thuận lợi cho cuộc cách mạng tự động hóa. Nhưng có một điều đã tồn tại song song với nó từ xưa đến này là vấn đề build docker image khá tốn thời gian. Dung lượng của một "hình ảnh" docker nhiều khi lên đến cả hàng GB. Docker bổng nhiên trở thành một "sát thủ ổ cứng". Nhiều câu nói đùa rằng, ông bạn có đủ ổ cứng không mà dám CI/CD với Docker? Nhưng trong bà [...]
Read more →
Bài viết được sự cho phép của tác giả Mai Đông Giang Docker là gì? Docker là một nền tảng cho các developers để develop, deploy và khởi chạy ứng dụng của mình với container. Nó cho phép tạo các môi trường độc lập và tách biệt để khởi chạy và phát triển với mỗi dịch vụ trên một hoặc nhiều container khác nhau. Khi cần deploy lên bất kỳ server nào chỉ cần run container của Docker thì ứng dụng của bạn sẽ được khởi chạy ngay lập tức. Nhờ đó chúng ta sẽ tiết kiệm được rất nhiều thời gian cho việc cài đặt môi trường. Đồng thời, các developers làm việc với nhau sẽ sử dụng thống nhất một môi trường và các hình liên quan, giúp việc teamwork trở nên đồng nhất. Docker đa phần được cài đặt và chạy trên các container nên việc gỡ các gói cài đặt hay thay đổi version,… sẽ không ảnh hưởng gì đến má [...]
Read more →
Bài viết được sự cho phép của tác giả Tống Xuân Hoài Vấn đề Bạn có đang sử dụng Docker trong số các dự án nào đang tham gia không? Nếu có thì chắc hẳn vấn đề lưu trữ và chia sẻ Images cần phải được giải quyết, đơn giản bởi vì Registry mặc định của Docker giới hạn số lượng các hình ảnh riêng tư (Private Images). Điều đó có nghĩa là nếu có nhiều dự án thì bắt buộc bạn phải public số hình ảnh đó cho cộng đồng, mà chắc chắn là không phải ai cũng muốn vì dự án của chúng ta cần tính riêng tư. Thông thường, có người sẽ chi trả khoản phí cho Docker để nhận được nhiều Private Images hơn, bên cạnh đó cũng có người chọn giải pháp tự triển khai cho mình một Registry để lưu trữ toàn bộ hình ảnh nội bộ của công ty, Docker rất "hào phóng" khi họ sẵn sàng cung cấp cho mọi người sử dụng [...]
Read more →
Bài viết được sự cho phép của tác giả Kiên Nguyễn Làm việc với các topics thì đã từ lâu nhưng từ nay Kieblog sẽ mở thêm chuyên mục mới viết các bài viết về Devops, bắt đầu với bài viết về Kubernetes Architecture nha anh em. Cảm ơn anh em đã dành thời gian đọc bài. Do bên mảng Devops tui vẫn là amateur nên có gì sai sót nhờ anh em chỉ giao chó. Nhầm, chỉ giáo cho. 1. Kubernetes là gì? Bắt đầu luôn là khái niệm. Riết nó chán nhưng thôi ráng đọc. Kubernetes architecture components or K8s components include the Kubernetes control plane and the nodes in the cluster. The control plane or master machine components include the Kubernetes API server, Kubernetes scheduler, Kubernetes controller manager, and etcd. Kubernetes node components include a container runtime engine or docker, a Kubelet service, and a Kubernetes proxy service. Kiến trúc Kubernetes hoặc K8s components bao gồm phần điều khiển của Kubernetes và các nodes ở trong một cluster. Phần điều khiển của Kubernetes bao gồm Kubernetes API Server, Kubernetest scheduler, controller manager và nhiều thứ khác nữ [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Mình đã hướng dẫn các bạn cách cài đặt FTP server trên Ubuntu. Trong bài viết này, mình sẽ hướng dẫn các bạn cài đặt FTP server sử dụng Docker các bạn nhé! Chúng ta sẽ sử dụng vsftpd Docker Image ở địa chỉ Docker Hub https://hub.docker.com/r/fauria/vsftpd/. [irp posts="14005" name="20 trường hợp sử dụng lệnh Docker cho developer"] [irp posts="7048" name="Cách thiết lập một dự án Symfony để làm việc với Docker Subdomains"] Xem thêm các chương trình tuyển dụng PHP lương cao trên TopDev Docker Image này expose nhiều biến môi trường khác nhau giúp chúng ta có thể cấu hình FTP server theo cách mình muốn, bao gồm: FTP_USER FTP_PASS PASV_ADDRESS PASV_ADDR_RESOLVE PASV_ENABLE PASV_MIN_PORT PASV_MAX_PORT XFERLOG_STD_FORMAT LOG_STDOUT FILE_OPEN_MODE LOCAL_UMASK REVERSE_LOOKUP_ENABLE PASV_PROMISCUOUS PORT_PROMISCUOUS Chi tiết ý nghĩa của mỗi biến môi trường, các bạn có thể đọc thêm tại đây. Mì [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Trong bài viết trước, mình đã hướng dẫn các bạn cách cài đặt Apache Kafka trên macOS, việc cài đặt sử dụng Docker Compose sẽ giúp chúng ta nhanh chóng start lên một Apache Kafka server mà không tốn nhiều effort, chỉ cần cài đặt Docker và tập tin docker-compose.yml. Cụ thể như thế nào? Trong bài viết này, mình sẽ hướng dẫn các bạn cách cài đặt Apache Kafka sử dụng Docker Compose các bạn nhé! [irp posts="7048" name="Cách thiết lập một dự án Symfony để làm việc với Docker Subdomains"] Xem thêm các việc làm OOP lương cao trên TopDev Mình sẽ tạo mới một tập tin docker-compose.yml với Docker Compose version như sau: version: '3.8' Chúng ta sẽ khai báo 2 service, một cho Apache Zookeeper và một cho Apache Kafka: services: zookeeper: kafka: Vì Apache Kafka muốn chạy được phải có Apache Zookeeper nên mình sẽ khai báo service zookeeper trước. Chúng ta sẽ sử dụ [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Redis là một open-source cho phép chúng ta có thể lưu trữ data trong memory. Chúng ta có thể sử dụng Redis để làm database, caching hoặc message broker. Trong bài viết này, mình hướng dẫn các bạn cách cài đặt Redis sử dụng Docker các bạn nhé! [irp posts="4174" name="Cấu hình Redis Caching để tăng tốc site WordPress của bạn"] [irp posts="11034" name="Cách tạo một Docker đơn giản cho Node.JS"] Xem thêm các chương trình tuyển dụng Redux hấp dẫn trên TopDev Đầu tiên, các bạn có thể đi đến trang official Docker Image của Redis tại https://hub.docker.com/_/redis để kiểm tra version mới nhất của Redis Image. Sau đó thì sử dụng command docker run để cài đặt Redis như sau: docker run -p 6379:6379 -d redis Ở đây, mình đang sử dụng latest version của Redis, mình cũng expose port chạy mặc định của Redis là 6379 ra bên ngoài. Kết quả: Đến đây thì Redis đã được start rồi. docker ps -a Các bạn có [...]
Read more →
Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Load balancer là một khái niệm về cân bằng tải, được sử dụng để giúp ứng dụng của chúng ta có thể handle một số lượng lớn các request từ người dùng. Chúng ta sẽ deploy ứng dụng của mình lên nhiều máy khác nhau, behind một load balancer, các request từ người dùng sẽ gọi tới load balancer và sẽ được load balancer forward tới một trong các máy này… Nginx là một trong những web server có thể hỗ trợ chúng ta hiện thực phần load balancer đó các bạn! Cụ thể như thế nào? Trong bài viết này, mình sẽ hướng dẫn các bạn deploy ứng dụng load balancer sử dụng Nginx với Docker các bạn nhé! [irp posts="11034" name="Cách tạo một Docker đơn giản cho Node.JS"] [irp posts="7048" name="Cách thiết lập một dự án Symfony để làm việc với Docker Subdomains"] Xem thêm các việc làm Java lương cao trên TopDev Để là [...]
Read more →