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ì?

Là viết tắt của Kubernetes (K-8 chữ cái-s).
Trang chủ của Kubernetes là https://k8s.io  hay https://kubernetes.io/

Kubernetes nghĩa là gì

Đây không phải một từ tiếng Anh, vậy nên khó đọc/viết cho cả ta lẫn tây. Kubernetes là phiên bản tiếng Anh mô phỏng theo một từ tiếng Hy Lạp: κυβερνήτης [1] có nghĩa là "pilot" [1] /"sailing master" [3] - hoa tiêu (trên tàu biển).

 

 Phát âm Kubernetes thế nào?

Đọc là "ku-bơ-ne-títs" [2] hay /koo-ber-nay'-tace/ [3], hoặc đơn giản là "K-8s": kei-eights

Các hệ thống cung cấp Kubernetes cài đặt sẵn:
Google container engine (GKE): https://cloud.google.com/container-engine/ (free 300$ cho tài khoản mới - dùng hết thì thôi cũng được)
CoreOS techtonic: https://coreos.com/tectonic/
RedHat Openshift: https://www.openshift.com/

 

Các sản phẩm dựa trên Kubernetes

Cũng là nơi ta có thể nhìn rõ hơn K8s làm được gì, hay tìm tài liệu nếu trang chủ là không đủ:
- RedHat Openshift 3: https://www.openshift.org/
- Deis Workflow - opensource platform as a service (PaaS): https://deis.com/paas/
- Rancher - container management platform: http://rancher.com/rancher/

 

Các cách để cài đặt K8s

K8s là một hệ thống, gồm nhiều thành phần tương tác với nhau. Tuy không tới nỗi phức tạp như cài một hệ thống cloud IaaS như OpenStack, nhưng cũng không phải chỉ gõ 3, 5 cái là xong. Vậy là người ta đẻ ra hàng chục cách khác nhau để cài K8s, đang kể nhất có:

- Minikube để cài 1 cluster test chơi chơi trên máy của bạn
- kubeadm đang trong giai đoạn phát triển, để cài trên hệ thống máy vật lý / máy ảo dùng Ubuntu 16.04 hay CentOS 7
- Kargo - phần mềm dựa trên Ansible để cài trên rất nhiều nơi bao gồm cả máy vật lý/máy ảo/AWS/GCE
- Dùng SaltStack để cài https://github.com/kubernetes/kubernetes/tree/master/cluster/saltbase/
- Cài bằng tay trên CoreOS Container Linux
- kops để cài trên AWS (Amazon cloud) 
- Và rất nhiều các giải pháp khác nữa xem tại đây

 

Các đối thủ cạnh tranh

- Docker Swarm https://docs.docker.com/engine/swarm/
- Apache Mesos https://mesos.apache.org/
- Google để được so sánh, ở đây không làm việc ấy 🤑

Phần sau - "đến đít" sẽ trình bày toàn bộ kinh nghiệm làm việc / vận hành hệ thống Kubernetes.

Mi và Đồ
Hãy share và tín dụng để tác giả có động lực hơn 😘
Thảo luận, hỏi đáp Python, Django, Docker, Golang, hệ thống ... vào ngay http://invite.pymi.vn/ nhập email để nhận thư mời sau 1 phút và tham gia phòng chat của PyMi
 
Tham khảo:
[0] https://coreos.com/rkt/
[1] https://en.wikipedia.org/wiki/Kubernetes#History
[2] https://www.youtube.com/channel/UCZ2bu0qutTOM0tHYa_jkIwg
[3] https://twitter.com/francesc/status/487412202932936704?lang=en


Phần sau: http://www.familug.org/2017/04/kubernetes-end.html

HVN at http://www.familug.org/ and http://pymi.vn