Skip to main content

K8S-101 - Các khái niệm trong Kubernetes

Kubernetes là gì?

Kubernetes là một nền tảng mã nguồn mở giúp tự động triển khai, scale và vận hành các ứng dụng container trên cụm các host, cung cấp cơ sở hạ tầng tập trung container
Với kubernetes ta có thể giải quyết các nhu cầu của khác hàng nhanh chóng và rất hiệu quả
  • Deploy ứng dụng nhanh
  • Scale ứng dụng mà không ảnh hưởng tới các thành phần khác
  • Liên tục có những tính năng mới
  • Tối ưu việc sử dụng tài nguyên

Các khái niệm

Cluster
Một cluster là một tập các máy vật lý hay máy ảo hoặc những tài nguyên cơ sở hạ tầng khác được sử dụng bởi Kubernetes để chạy các ứng dụng
Node
Một node là một máy ảo hoặc máy vật lý chạy Kubernetes, nơi mà các pod có thể được schedule tới đó.
Pod
Một pod là một nhóm các container và volume có liên quan tới nhau
Label
Một label là một cặp key/value gắn với một tài nguyên (resource) như một pod, để truyền tải các thuộc tính mà người dùng định nghĩa ra. Các label có thể được sử dụng để tổ chức và lựa chọn các tập con của nhiều resource khác nhau.
Selector
Một Selector là một biểu thức mà phù hợp với label để xác định các resource liên quan. Ví dụ: Những pod nào là backend của một load balancer
Replication Controller
Một replication controller đảm bảo rằng số lượng các pod replicas đã định nghĩa luôn luôn chạy tại bất kì thời điểm nào. Nhiệm vụ là xử lý việc tạo lại những pod này khi máy chủ đó bị reboot hoặc lỗi.
Service
Một service định nghĩa một tập các pod và cách để truy cập vào chúng, ví dụ như một địa chỉ IP hoặc 1 tên miền
Volume
Một volume đơn giản là một thư mục, có thể có dữ liệu bên trong, nó được truy cập bởi một container.
Secret
Một secret chứa dữ liệu nhạy cảm, như token. Nó sẽ nằm bên trong container khi có yêu cầu.
Name
Tên của resource
Namespace
Một namespace như một prefix cho tên của một resource. Namespace giúp cô lập các project, team hay các khách hàng trên cùng 1 cluster với nhau. Namespace cũng tránh việc trùng lặp tên giữa các team.
Annotation
Một cặp key/value - có thể lưu giữ lượng dữ liệu lớn hơn (khi so sánh với label) và có thể người dùng không đọc hiểu được dữ liệu đó.

Comments

Popular posts from this blog

Merge AVHDX Hyper-V Checkpoints

When you create a snapshot of a virtual machine in Microsoft Hyper-V, a new file is created with the  .avhdx  file extension. The name of the file begins with the name of its parent VHDX file, but it also has a GUID following that, uniquely representing that checkpoint (sometimes called snapshots). You can see an example of this in the Windows Explorer screenshot below. Creating lots of snapshots will result in many  .avhdx  files, which can quickly become unmanageable. Consequently, you might want to merge these files together. If you want to merge the  .avhdx  file with its parent  .vhdx  file, it’s quite easy to accomplish. PowerShell Method Windows 10 includes support for a  Merge-VHD  PowerShell command, which is incredibly easy to use. In fact, you don’t even need to be running PowerShell “as Administrator” in order to merge VHDX files that you have access to. All you need to do is call  Merge-VHD  with the  -Path  parameter, pointing to the  .avhdx  file, and the  -Des

Openstack manila phần 4: Native GlusterFS Driver

Tiếp tục loạt bài về Openstack Manila hôm nay tôi sẽ cấu hình backend sử dụng GlusterFS Yêu cầu phiên bản GlusterFS >= 3.6. Với glusterfs nếu cluster của bạn không hỗ trợ snapshot thì trên manila cũng sẽ mất đi tính năng này. Để cấu hình snapshot ta sẽ cấu hình Thin Provision theo bài hướng dẫn link Với bài lab của mình có 2 node và chạy kiểu replicate. Mình sẽ tạo các thinly provisioned và tạo volume trên đó. Mô hình cài đặt Cài đặt glusterfs-v3.7 add-apt-repository ppa:gluster/glusterfs-3.7 -y apt-get update apt-get install glusterfs-server -y Tham khảo script tạo thin LV và gluster volume Script tạo thinly provisioned chạy trên 2 node apt-get install xfsprogs -y pvcreate /dev/sdb vgcreate myVG /dev/sdb lvcreate -L 8G -T myVG/thinpool for ((i = 1;i<= 5; i++ )) do mkdir -p /manila/manila-"$i" for (( j = 1; j<= 5; j++)) do lvcreate -V "${i}"Gb -T myVG/thinpool -n vol-"$i"-"$j" mkfs.xfs /dev/my

Zabbix, AWS and Auto Registration

One of the things I love the most with AWS is  auto-scaling . You choose an AMI, set some parameters and AWS will spin instances up and down whenever a threshold is breached. But with all these instances spinning up and down there are some unknowns. For example, what is the IP address of the new instance? Its host name? This can be critical when other components of your infrastructure are dependent on knowing these parameters. I had this problem when I started to use  Zabbix  as the monitoring system. At first it seemed like a complicated one, but Zabbix has a wonderful feature called  Auto Registration  which can be used exactly for this situation. I will try to show how to configure auto registration both on the client (EC2 instance running Ubuntu 14.04) and on the Zabbix server (Zabbix Server 2.4.2). Zabbix-agent Installation and Configuration Let’s start with installing zabbix-agent on the Ubuntu client: 1 2 $ sudo apt-get update $ sudo apt-get install -y zab