Đề cương khóa học
Ngày 1 – Containers và Quản lý Hình ảnh
Tổng quan về Nền tảng Container
- So sánh việc triển khai ứng dụng truyền thống với triển khai dựa trên container
- Container và máy ảo
- Công cụ chạy container (container runtimes) và động cơ container (container engines)
- Vai trò của Docker, Kubernetes và OpenShift
- Kiến trúc nền tảng container phổ biến
- Linh trình phát triển, kiểm thử và sản xuất
Làm việc với Containers
- Chạy và quản lý containers
- Vòng đời của container
- Bắt đầu, dừng và xóa containers
- Thực thi lệnh bên trong containers
- Biến môi trường
- Ánh xạ cổng (port mapping)
- Logs của container
- Sử dụng tài nguyên và kiểm tra tiến trình
Xây dựng Hình ảnh Container
- Cấu trúc và các lớp (layers) của hình ảnh
- Tạo Dockerfile và Containerfiles
- Lựa chọn hình ảnh nền (base images)
- Thêm các phụ thuộc ứng dụng
- Cấu hình điểm nhập (entry points) và lệnh
- Bộ đệm hình ảnh (image caching)
- Giảm kích thước hình ảnh
- Xây dựng hình ảnh có thể tái lập
Kho lưu trữ Hình ảnh Container
- Công khai và kho lưu trữ riêng tư (public and private registries)
- Đánh dấu và quản lý phiên bản hình ảnh
- Đẩy (push) và kéo (pull) hình ảnh
- Xác thực hình ảnh
- Duy trì và dọn dẹp hình ảnh
- Cân nhắc cơ bản về bảo mật hình ảnh
Mạng và Lưu trữ của Container
- Khái niệm mạng container
- Mạng cầu nối (bridge networking)
- Exposed ports
- Giao tiếp giữa các container
- Bind mounts và volumes
- Dữ liệu container bền vững
- Cân nhắc sao lưu
Bài tập Thực hành
- Chạy và kiểm tra các container
- Xây dựng hình ảnh ứng dụng
- Cấu hình ports và biến môi trường
- Xuất bản hình ảnh lên một kho lưu trữ
- Lưu trữ dữ liệu bền vững bên ngoài container
Ngày 2 – Kiến trúc Kubernetes và Tàì công việc (Workloads)
Những điều cơ bản về Kubernetes
- Mục đích của việc điều phối container (container orchestration)
- Kiến trúc Kubernetes
- Các thành phần mặt phẳng điều khiển (control plane components)
- Các nút máy chủ công nhân (worker nodes)
- Máy chủ API (API server)
- Trình lập lịch (Scheduler)
- Các bộ điều khiển (Controllers)
- Tài nguyên trạng thái cluster và trạng thái mong muốn
- Giao tiếp với cluster bằng kubectl
Tài nguyên Kubernetes
- Pods
- ReplicaSets
- Deployments
- Tên vùng (Namespaces)
- Nhãn (Labels) và chú thích (annotations)
- Bộ chọn (Selectors)
- Mô tả tài nguyên khai báo (Declarative resource definitions)
- Manifests YAML
Triển khai Ứng dụng
- Tạo và quản lý Deployments
- Mở rộng tải công việc
- Cập nhật hình ảnh container
- Cập nhật dần (Rolling updates)
- Hoàn tác (Rollbacks)
- Lịch sử triển khai
- Khởi động lại các tải công việc
- Quản lý bản sao ứng dụng (replicas)
Cấu hình Ứng dụng
- ConfigMaps
- Secrets
- Biến môi trường
- Tệp cấu hình
- Tách mã ứng dụng khỏi cấu hình
- Quản lý cài đặt theo từng môi trường
Quản lý Tài nguyên
- Xin cấp (requests) CPU và bộ nhớ
- Giới hạn (limits) CPU và bộ nhớ
- Hạn ngạch tài nguyên (Resource quotas)
- Dải giới hạn (Limit ranges)
- Ảnh hưởng đến việc lập lịch
- Chẩn đoán các lỗi liên quan đến tài nguyên
Bài tập Thực hành
- Triển khai một ứng dụng container hóa
- Tạo và cập nhật các manifest Kubernetes
- Mở rộng quy mô ứng dụng
- Thực hiện cập nhật dần và hoàn tác
- Cấu hình ứng dụng bằng ConfigMaps và Secrets
- Áp dụng yêu cầu và giới hạn tài nguyên
Ngày 3 – Mạng, Lưu trữ và Bảo mật Kubernetes
Mạng Kubernetes
- Mô hình mạng cluster
- Giao tiếp giữa các pod
- Khám phá dịch vụ (Service discovery)
- DNS bên trong cluster
- Dịch vụ ClusterIP
- Dịch vụ NodePort
- Dịch vụ LoadBalancer
- Khái niệm Ingress
- Các mẫu tiếp cận ứng dụng
Chính sách Mạng (Network Policies)
- Kiểm soát lưu lượng giữa các tải công việc
- Lưu lượng vào (Ingress) và ra (Egress)
- Kiểm soát lưu lượng dựa trên tên vùng (namespace)
- Kiểm tra kết nối mạng
- Khắc phục sự cố giao tiếp dịch vụ
Lưu trữ Bền vững
- Lưu trữ tạm thời và lưu trữ bền vững
- Volumes
- PersistentVolumes
- PersistentVolumeClaims
- StorageClasses
- Cấp phát động (Dynamic provisioning)
- Chế độ truy cập
- Chính sách thu hồi
- Lưu trữ cho các ứng dụng có trạng thái
Kiểm soát Truy cập Kubernetes
- Khái niệm xác thực và ủy quyền
- Kiểm soát truy cập dựa trên vai trò (Role-Based Access Control)
- Vai trò (Roles) và Vai trò Cluster (ClusterRoles)
- Liên kết Vai trò (RoleBindings) và Liên kết Vai trò Cluster (ClusterRoleBindings)
- Tài khoản dịch vụ (Service accounts)
- Quyền truy cập tối thiểu (Least-privilege access)
- Kiểm tra quyền hiệu lực
Bảo mật Tải công việc (Workload Security)
- Bối cảnh bảo mật (Security contexts)
- Chạy container với quyền không phải root
- Năng lực Linux (Linux capabilities)
- Hệ thống file chỉ đọc
- Xử lý bí mật (Secrets)
- Xuất xứ hình ảnh
- Các rủi ro cấu hình phổ biến
Bài tập Thực hành
- Expose một ứng dụng bằng các dịch vụ Kubernetes
- Cấu hình ingress
- Hạn chế lưu lượng bằng chính sách mạng
- Cấp phát bộ nhớ lưu trữ bền vững
- Cấu hình quyền RBAC
- Chạy một tải công việc với bối cảnh bảo mật phù hợp
Ngày 4 – Làm việc với Môi trường OpenShift
Tổng quan về OpenShift
- OpenShift là nền tảng ứng dụng dựa trên Kubernetes
- Các tài nguyên Kubernetes trong môi trường OpenShift
- Kiến trúc cluster OpenShift
- Dự án và tên vùng (namespaces)
- Người dùng nền tảng và tài khoản dịch vụ
- Làm việc với bảng điều khiển web
- Làm việc với CLI của OpenShift
Quản lý Dự án và Truy cập
- Tạo và quản lý dự án
- Gán quyền cho người dùng
- Vai trò cấp dự án (Project-level roles)
- Quyền truy cập quản trị viên
- Hạn ngạch tài nguyên
- Dải giới hạn
- Tài khoản dịch vụ
- Kiểm tra lại các tài nguyên dự án
Triển khai Ứng dụng
- Triển khai hình ảnh container
- Tạo tải công việc ứng dụng
- Quản lý triển khai
- Mở rộng ứng dụng
- Cập nhật phiên bản ứng dụng
- Hoàn tác (Rollbacks)
- Quản lý cấu hình ứng dụng
- Làm việc với bí mật (secrets)
Tiếp cận Ứng dụng
- Dịch vụ trong OpenShift
- Routes
- Khái niệm TLS
- Truy cập ứng dụng nội bộ và bên ngoài
- Tên máy chủ (Hostnames) và chứng chỉ
- Chẩn đoán sự cố về route và dịch vụ
Lưu trữ trong OpenShift
- Yêu cầu Volume bền vững (Persistent Volume Claims)
- StorageClasses
- Gắn lưu trữ vào tải công việc
- Tải công việc có trạng thái
- Quyền truy cập lưu trữ
- Khắc phục sự cố gắn volume
Lập lịch và Quản lý Nút máy chủ (Node Management)
- Nhãn và bộ chọn
- Bộ chọn nút máy chủ (Node selectors)
- Điểm đánh dấu (Taints) và sự dung hòa (tolerations)
- Khái niệm về tính liên kết (Affinity) và không liên kết (anti-affinity)
- Vị trí đặt tải công việc
- Cô lập (Cordoning) và tháo dỡ (draining) các nút máy chủ
- Cân nhắc bảo trì nút máy chủ
Bài tập Thực hành
- Truy cập một môi trường OpenShift
- Tạo và cấu hình một dự án
- Triển khai và expose một ứng dụng
- Cấu hình quyền truy cập cho người dùng và tài khoản dịch vụ
- Gắn bộ nhớ lưu trữ bền vững
- Mở rộng và cập nhật một tải công việc đang chạy
Ngày 5 – Vận hành, Giám sát và Khắc phục Sự cố
Giaám sát Nền tảng
- Giaám sát sức khỏe của cluster và ứng dụng
- Các chỉ số tài nguyên
- Sức khỏe nút máy chủ (Node health)
- Trạng thái tải công việc
- Dung lượng và mức sử dụng tài nguyên
- Xác định các hạn chế về hiệu suất
Lịch trình sự kiện (Logging and Events)
- Logs container
- Logs pod
- Logs container trước đó
- Sự cố Kubernetes (Events)
- Các tin nhắn ứng dụng và nền tảng
- Lọc và diễn giải dữ liệu vận hành
Kiểm tra Sức khỏe
- Probes khởi động (Startup probes)
- Probe sẵn sàng (Readiness probes)
- Probe hiện diện (Liveness probes)
- Thiết lập các điểm kiểm tra sức khỏe hữu ích
- Chẩn đoán lỗi probe
- Ngăn chặn việc khởi động lại ứng dụng không cần thiết
Khắc phục Sự cố Tải công việc
- Pods ở trạng thái chờ (Pending)
- Lỗi kéo hình ảnh (Image pull failures)
- Vòng lặp sụp đổ (Crash loops)
- Biến môi trường được cấu hình sai
- Lỗi gắn kết volume
- Tài nguyên không đủ
- Lỗi quyền truy cập
- Vấn đề về kết nối dịch vụ và route
- Vấn đề DNS
- Khởi động ứng dụng thất bại
Bảo mật Vận hành
- Kiểm tra lại quyền truy cập
- Sử dụng tài khoản dịch vụ
- Xử lý an toàn thông tin xác thực
- Thực hành bảo mật hình ảnh
- Ngăn cách mạng (Network isolation)
- Kiểm toán truy cập nền tảng
- Áp dụng nguyên tắc quyền tối thiểu
Bảo trì và Quản lý Vòng đời
- Kiểm tra nền tảng định kỳ
- Bảo trì nút máy chủ (Node maintenance)
- Cân nhắc sao lưu ứng dụng
- Sao lưu cấu hình
- Lập kế hoạch cập nhật
- Quản lý thay đổi
- Kiểm thử các bản cập nhật
- Lập kế hoạch hoàn tác
- Khái niệm phục hồi thảm họa
Hội thảo Thực hành Tổng kết
Người tham gia sẽ hoàn thành một kịch bản vận hành toàn diện:
- Xây dựng và đánh dấu một hình ảnh container.
- Xuất bản hình ảnh lên kho lưu trữ.
- Triển khai ứng dụng lên Kubernetes hoặc OpenShift.
- Cấu hình cài đặt ứng dụng và thông tin xác thực.
- Expose ứng dụng.
- Gắn bộ nhớ lưu trữ bền vững.
- Cấu hình quyền truy cập.
- Thêm các điểm kiểm tra sức khỏe.
- Mở rộng và cập nhật ứng dụng.
- Chẩn đoán và giải quyết một lỗi được đưa vào.
Định dạng Khóa học
- Bài giảng tương tác và thảo luận kỹ thuật.
- Demonstration bởi giảng viên.
- Các bài tập thực hành chuyên sâu.
- Hội thảo quản trị và khắc phục sự cố dựa trên kịch bản.
- Làm việc thực tiễn trong môi trường container, Kubernetes và OpenShift.
Tùy chọn Tùy chỉnh Khóa học
- Khóa học có thể được điều chỉnh để phù hợp với cơ sở hạ tầng hiện có, nhà cung cấp đám mây và công cụ container của người tham gia.
- Tỷ lệ trọng số giữa các chủ đề Docker, Kubernetes và OpenShift có thể được điều chỉnh theo kinh nghiệm của nhóm.
- Các bài tập thực hành có thể được tùy chỉnh cho phù hợp với các ứng dụng, quy trình triển khai và yêu cầu vận hành của tổ chức.
Thông báo Nhãn hiệu
OpenShift là nhãn hiệu của Red Hat, Inc. Khóa học độc lập phát triển này không liên kết, được bảo trợ hay được phép bởi Red Hat.
Yêu cầu
Người tham gia nên có:
- Kinh nghiệm sử dụng dòng lệnh Linux.
- Kiến thức cơ bản về quản trị hệ thống hoặc DevOps.
- Hiểu biết chung về các khái niệm mạng.
- Quen thuộc với quy trình triển khai phần mềm.
Kinh nghiệm trước đây với Docker, Kubernetes hoặc OpenShift là một lợi thế nhưng không bắt buộc.
Đánh giá (7)
Reda đã giải thích và đơn giản hóa rất nhiều việc hiểu
Eric Van Wyk
Khóa học - Docker, Kubernetes and OpenShift 3 for Administrators
Dịch thuật bằng máy
Các phòng thí nghiệm là tốt nhất. Rất thực tế và cung cấp trải nghiệm thực hành. Cá nhân tôi cho rằng đây là cách hiệu quả nhất để thực sự hiểu rõ khóa học và áp dụng các khái niệm đã được đề cập.
Hishaam Johnstone
Khóa học - Docker, Kubernetes and OpenShift 3 for Administrators
Dịch thuật bằng máy
Tôi rất thích tinh thần sẵn sàng giúp đỡ và giải thích thêm khi chưa chắc chắn
Letlotlo Miffi
Khóa học - Docker, Kubernetes and OpenShift 3 for Administrators
Dịch thuật bằng máy
Adriano đã nghiên cứu chủ đề này rất sâu, đó là phong cách tôi ưa thích nhất, tức là: ít tập trung vào các lệnh mà nhiều hơn về cơ chế đằng sau nó. Các kịch bản được thảo luận được hỗ trợ tốt bởi các ví dụ thực tế, điều này giúp hiểu rõ hơn nội dung được trình bày.
Mariusz BANASZCZYK - Sopra Steria
Khóa học - Docker, Kubernetes and OpenShift for Administrators
Dịch thuật bằng máy
Kiến thức sâu sắc về Adriano. Giải thích các khái niệm cơ bản
Tomasz Szalankiewicz - LPP SA
Khóa học - Docker, Kubernetes and OpenShift for Administrators
Dịch thuật bằng máy
Tôi thường thích người trình bày.
Josif Kovacevic - ANZ
Khóa học - Docker, Kubernetes and OpenShift for Administrators
Dịch thuật bằng máy
Adrian clearly knows and enjoys this technology.
Tom Edginton - National Oceanography Centre
Khóa học - Docker, Kubernetes and OpenShift for Administrators
Dịch thuật bằng máy