New FAMILUG

The PyMiers

Showing posts with label container. Show all posts
Showing posts with label container. Show all posts

Saturday, 7 November 2020

Kiến trúc Docker, phỏng vấn, best practice

Bài này không giới thiệu về docker, "lúc nào rảnh" chắc sẽ có bài đó.

Bài này nói về kiến trúc của docker, các công nghệ liên quan phía dưới mà docker sử dụng - thường có tác dụng lớn khi 1) chém gió lên mặt 2) phỏng vấn.

Ngoài ra có kèm theo một số best-practice khi build docker image để có size nhỏ/build nhanh hơn.

Photo by Andy Li on Unsplash

Kiến trúc của Docker

Docker là một phần mềm viết bằng Golang, theo kiến trúc client-server.

Nghe hình thức thì vậy, mô hình này nham nhảm khắp nơi khi dùng các database: mysql sẽ có mysqld và mysql client (cli, GUI) ... redis có redis-server và redis-cli...

Docker có dockerd và docker-cli.

Monday, 3 April 2017

Kubernetes - rồi cũng đến đít

Gần 1 tháng sau bài "từ đầu" ra đời http://www.familug.org/2017/03/kubernetes.html
mình vẫn chưa động vào Kubernetes. Vậy nên viết nhanh phần đến đít, không mai kia rơi vãi hết.

Bài này KHÔNG PHẢI HƯỚNG DẪN DÙNG K8s, ai cần hướng dẫn thì vào trang chủ xem.

Bài này tổng kết về kinh nghiệm sử dụng K8s: Khái niệm, kiến trúc, troubleshoot, ...
dựa trên trí nhớ mong manh còn sót lại chút ít sau những cơn lụt ở Sài Gòn...


Kubernetes

Các khái niệm trong K8s

K8s đưa ra một lô 1 lốc các khái niệm. Vậy nên muốn dùng k8s, phải nắm chắc các khái niệm.
Xem thì có vẻ nhiều, nhưng đó là những thứ mà nếu như k8s không đưa ra, thì một ngày nào đó, bạn cũng lại tự "phát minh" ra (và 99,96 % là tệ / tạm bợ hơn nhiều).

Pod

Pod là một khái niệm rộng hơn container, nhưng đa số trường hợp thì đánh đồng nó với container cũng không sao. Pod là 1 nhóm (1 trở lên) các container thực hiện một mục đích nào đó (chạy software nào đó - pod có nhiều container là khi các app có quan hệ rất chặt chẽ - theo ví dụ K8s đưa ra là trang upload ảnh và trang hiển thị ảnh.)

Nếu k8s chỉ có mỗi khái niệm pod, thì dùng k8s giống như dùng docker bình thường. Tức
muốn thêm tính năng gì thì ta phải tự kiến trúc/ thiết kế/ thực hiện.

96% thông tin bạn cần về pod, nằm trong output của lệnh : describe pod PODNAME
$ kubectl get pods --selector='app=audit'
NAME                                READY     STATUS    RESTARTS   AGE
audit-deployment-3585156150-mlcv3   1/1       Running   0          14d
$ kubectl describe pod audit-deployment-3585156150-mlcv3
Name:        audit-deployment-3585156150-mlcv3
Namespace:    default
...

Service (svc)

Service đưa ra khái niệm về - service 😂

Friday, 10 March 2017

Kubernetes từ đầu ...

Một công nghệ xây dựng dựa trên 15 tinh hoa vận hành hệ thống Google.
Một sản phẩm của chính Google, viết trên ngôn ngữ lập trình phát triển tại Google (Golang).
Một công nghệ mới được công bố từ giữa năm 2014, nhưng đã chiếm lĩnh thị phần không nhỏ trên các hệ thống cloud.
Một từ khoá nóng nhất mà các sysadmin/devops đều muốn có trong danh sách kỹ năng của mình.
Đó là Kubernetes !


Kubernetes là gì

Kubernetes hay K8s là một hệ thống để quản lý các "container".
Theo Kubernetes GitHub repository:
Kubernetest - Production-Grade Container Scheduling and Management
Kubernetes is an open source system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications.
Nói một cách dễ hiểu, nếu bạn biết dùng Docker hoặc rkt [0] để chạy các container, thì K8s là giải pháp để quản lý chúng (quản lý bao gồm: tạo, sửa, xoá, xếp lịch(schedule), hay mở rộng (scale)...) trên nhiều máy. Như vậy, để có thể sử dụng được K8s, bạn phải biết dùng Docker.

Ai cần Kubernetes?

- Các doanh nghiệp lớn, có nhu cầu thực sự phải scaling hệ thống nhanh chóng, và đã sử dụng container (Docker).
- Các dự án cần chạy >= 5 container CÙNG LOẠI cho 1 dịch vụ. (Ví dụ dùng >=5 máy cùng để chạy code website XYZ). Còn nhỏ hơn thì tốt nhất không dùng - đừng mang dao mổ trâu đi giết gà.
- Các startup hiện đại, chịu đầu tư vào công nghệ, để nhỡ về sau có to ra, thì to rất dễ 🙄
- Các sysadmin/DevOps muốn tăng lương, nhảy việc, vọc công nghệ mới 🤑

K8s là gì?