2. Agenda
Bối cảnh
Nhắc lại về Docker
Giới thiệu Kubernetes
Kiến trúc Kubernetes
Các thành phần cơ bản trong Kubernetes
Rancher 2.0
Harbor – Docker registry
Demo
3. Agenda
Bối cảnh
Nhắc lại về Docker
Giới thiệu Kubernetes
Kiến trúc Kubernetes
Các thành phần cơ bản trong Kubernetes
Rancher 2.0
Harbor – Docker registry
Demo
8. Agenda
Bối cảnh
Nhắc lại về Docker
Giới thiệu Kubernetes
Kiến trúc Kubernetes
Các thành phần cơ bản trong Kubernetes
Rancher 2.0
Harbor – Docker registry
Demo
14. HyperVisor Type 2 Docker
Virtualization Type Vitualization Machine Container
Weight of the created virtual
systems
Heavy Very lightweight
Startup time for created
machine
A few minutes A few seconds
Isolation level for created
vitural systems
Full Partial
Guaranteed Resources at
Hardware Level ?
Yes No
Can create machines with
different OS ?
Yes No
17. Agenda
Bối cảnh
Nhắc lại về Docker
Giới thiệu Kubernetes
Kiến trúc Kubernetes
Các thành phần cơ bản trong Kubernetes
Rancher 2.0
Harbor – Docker registry
Demo
21. Kubernetes
Manage application, not machine
Kubernetes là một Platform tự động hoá việc quản lý,
scaling container
Kubernetes còn gọi là Container orchestration engine.
Kubernetes by Google dựa trên kinh nghiệm quản lý
sử dụng các container
23. Kubernetes vs Docker Swarm
https://platform9.com/blog/kubernetes-docker-swarm-compared/
24. Kubernetes làm được những gì
Việc quản lý hàng loạt docket host
Container Scheduling
Rolling update
Scaling/Auto Scaling
Monitor vòng đời và tình trạng sống chết của container.
Self-healing trong trường hợp có lỗi xãy ra. (Có khả năng phát hiện và tự correct lỗi)
Service discovery
Load balancing
Quản lý data
Quản lý work node
Quản lý log
Infrastructure as Code
Sự liên kết và mở rộng với các hệ thống khác
25. Kubernetes liên kết với hệ sinh thái
Ansible: Deploy container tới Kubernetes
Apache Ignite: Sử dụng Service Discovery của Kubernetes, tự động tạo và scaling k8s
clkuster
Fluentd: gửi log của container trong Kubernetes
Jenkins: Deploy container đến Kubernetes
OpenStack:Cấu trúc k8s liên kết với Cloud
Prometheus: Monitor Kubernetes
Spark: Thực thi native job trên Kubernetes(thay thế cho YARN)
Spinnaker:Deploy container đến Kubernetes
v.v
26. Các môi trường Kubernetes
Local Kubermetes
Công cụ hỗ trợ thiết lập môi trường Kubernetes
Quản lý Kubernetes trên public cloud
28. Công cụ hỗ trợ thiết lập môi trường Kubernetes
kubeadm
Rancher
29. Quản lý Kubernetes trên public cloud
Google Kubernetes Engine(GKE)
Azure Container Service(AKS)
Elastic Container Service for Kubernetes(EKS)
GKE AKS
31. Agenda
Bối cảnh
Nhắc lại về Docker
Giới thiệu Kubernetes
Kiến trúc Kubernetes
Các thành phần cơ bản trong Kubernetes
Rancher 2.0
Harbor – Docker registry
Demo
32.
33.
34.
35.
36. Agenda
Bối cảnh
Nhắc lại về Docker
Giới thiệu Kubernetes
Kiến trúc Kubernetes
Các thành phần cơ bản trong Kubernetes
Rancher 2.0
Harbor – Docker registry
Demo
42. Kubernetes Resource
Phân Loại Resource Mô tả
Workloads Resource liên quan đến thực thi container
Discovery&Load
balancer
Resource cung cấp Endpoint - cho phép truy cập
Container từ bên ngoài Cluster
Config&Storage Resources liên quan đến settings, confidential
information, persistent volumes vv
Cluster Resources liên quan đến security và quota
Metadata Resource cho việc quản lý Resource
56. container
container
container
container
container
container
Node Node Node
Pod Pod
container
container
container
Pod
container
container
container
Pod
container
container
container
Pod
container
container
container
Pod
container
container
container
Pod
Depends on each node’s resource availability
and each pod’s resource requirement
99. Cronjob = Job + schedule
schedule
same cron format
http://www.nncron.ru/help/EN/working/cron-
format.htm
Setting
concurrencyPolicy
Allow(default): Không hạn chế đối với việc thực thi
đồng thời
Forbid: Job trước đó thực hiện chưa xong thì
không tạo Job mới.(không thực hiện đồng thời)
Replace: Trong trường hợp Job cũ đang chạy, huỷ
Job cũ và tạo Job mới
1
2
3
100. Cronjob = Job + schedule
schedule
Setting
startingDeadlineSeconds
Thời gian trễ cho phép để run job
successfulJobsHistoryLimit
Số lượng Job thành công được duy trì
failedJobsHistoryLimit
Số lượng Job thất bại duy trì.
Job
1
2
3
125. Agenda
Bối cảnh
Nhắc lại về Docker
Giới thiệu Kubernetes
Kiến trúc Kubernetes
Các thành phần cơ bản trong Kubernetes
Rancher 2.0
Harbor – Docker registry
Demo
129. Agenda
Bối cảnh
Nhắc lại về Docker
Giới thiệu Kubernetes
Kiến trúc Kubernetes
Các thành phần cơ bản trong Kubernetes
Rancher 2.0
Harbor – Docker registry
Demo
144. Đã làm được
Hiểu được tổng quan về kiến trúc và các thành phần của K8s
Workload resource (Pod, ReplicaSet, Deployment, Job…etc..)
Service (ClusterIP, NodePortIP, LoadBalancer, etc..)
Xây dựng được K8s cluster, thử nghiệm các loại resouce
Trãi nghiệm các loại môi trường K8s
Minikube, Docker for MAC
K8s with tool Rancher
GCE
Kết hợp được với các công cụ hỗ trợ cho K8s
Rancher 2.0
Harbor
Xây dựng demo kết hợp các thành phần + công cụ hỗ trợ K8s
145. Đã làm được
Hiểu sâu hơn về kiến trúc dự án GMO POINT hiện tại
Viết blog và chia sẻ
[Nhập môn Kubernetes P1] - Tại sao Kubernetes là cần thiết?
[Nhập môn Kubernetes P2] - Các môi trường Kubernetes
[Nhập môn Kubernetes P3] - Sử dụng Rancher 2.0, Cấu trúc môi trường Kubernetes
[Nhập môn Kubernetes P4] - Nền tảng Kubernetes
[Nhập môn Kubernetes P5] - Kubernetes Workloads Resource (1)
[Nhập môn Kubernetes P6] - Kubernetes Workloads Resource (2)
[Nhập môn Kubernetes P9] - Kubernetes Config&Storage Resource (1)
[Nhập môn Kubernetes P11] - Quản lý Container Images bảo mật với Harbor
146. Chưa làm được
Chưa tìm hiểu hết được các resource trong K8s
148. Chưa làm được
Chưa tìm hiểu hết được các resource trong K8s
Demo còn nhỏ, chưa thể hiện được sự phức tạp và phát huy sức mạnh của
K8s
Chưa kết hợp với Ansible để cấu trúc và deploy k8s resource
149. Hướng phát triển
Tìm hiểu về các resource còn lại
Kết hợp với Ansibe
Tìm hiểu MetalLB để Loadbalancer
Sử dụng công cụ hỗ trợ
Prometheus – Grafana: system & time series database
Elasticsearch – Fluent – Kibana: log collect and monitoring
Editor's Notes
Với việc sử dụng docker, mỗi môi trường phần mềm sẽ được đóng gói lại một cách gọn nhẹ, di động, và hoạt động độc lập đồng thời chạy nhất quán trên hầu hết nền tảng phần cứng.
Bằng cách sử dụng công nghệ container, vấn đề triển khai hệ thống phần mềm đã được giải quyết, giảm được độ phức tạp của việc triển khai nxm lần xuống còn n lần đóng gói phần mềm vào container.