Triển khai hệ thống cluster kubernetes với kubespray trong vòng 1 nốt nhạc.

k8s Mar 17, 2019

Kubespray là một công cụ triển khai hệ thống cluster kubernetes được viết bằng pythong Ansible.

  • Có thể triển khai trên AWS,GCE, Azure, OpenStack or Baremetal ...
  • Highly available cluster.
  • Có thể tuỳ chọn network plugin ( Calico, Flannel, Cilium ...)

Dưới đây là 1 vài dòng lệnh nhanh để có 1 hệ thống cluster k8s 1 cách nhanh gọn lẹ:

# Install dependencies from ``requirements.txt``
sudo pip install -r requirements.txt

# Copy ``inventory/sample`` as ``inventory/mycluster``
cp -rfp inventory/sample inventory/mycluster

# Update Ansible inventory file with inventory builder
declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5)
CONFIG_FILE=inventory/mycluster/hosts.ini python3 contrib/inventory_builder/inventory.py ${IPS[@]}

# Review and change parameters under ``inventory/mycluster/group_vars``
cat inventory/mycluster/group_vars/all/all.yml
cat inventory/mycluster/group_vars/k8s-cluster/k8s-cluster.yml

# Deploy Kubespray with Ansible Playbook - run the playbook as root
# The option `-b` is required, as for example writing SSL keys in /etc/,
# installing packages and interacting with various systemd daemons.
# Without -b the playbook will fail to run!
ansible-playbook -i inventory/mycluster/hosts.ini --become --become-user=root cluster.yml

Dưới đây là 1 file hosts.ini ví dụ:

[kube-master]
kube-master

[etcd]
kube-master

[kube-node]
kube-node01
kube-node02

[k8s-cluster:children]
kube-node
kube-master

[k8s-cluster:vars]
ansible_ssh_private_key_file=/root/.ssh/key_k8s
ansible_user=root

Bạn cũng có thể tham khảo thêm tại github kubespray để biết thêm nhiều tuỳ chọn như network plugins ... hoặc nhiều chức năng nâng cao phù hợp với hệ thống k8s bạn muốn xây dựng.

P/s: Công cụ kubespray này khá là hay và ngon :v, nhưng nếu công ty bạn có tiền và đang có ý định lên cloud hoặc đang xài cloud thì nên xài dịch vụ của cloud cung cấp hệ thống k8s cho mình như: AKS của Azure, EKS của AWS, GKS của GCE ... :)). Vì sao? Vì không phải care cụm master node chỉ cần care các worker node, các services của bạn, container, routing services ... nó cung cấp luôn cả hệ thống monitor cluster k8s v.vv..

Tags