Pasang Kubernetes dengan kubespray

Instruksi langkah demi langkah

Konten Halaman

Howto: menginstal Kubernetes menggunakan Kubespray, termasuk mengatur lingkungan, mengonfigurasi inventaris, dan menjalankan playbook Ansible.

pekerja menyemprot kubus di bangunan pabrik lama

Prasyarat

Persyaratan Perangkat Keras dan Perangkat Lunak

  • Pastikan Anda memiliki beberapa mesin (setidaknya 3 node: 1 master dan 2 worker) dengan spesifikasi berikut:
    • Ubuntu 16.04/18.04 atau CentOS 7 terinstal.
    • Setidaknya 2 GB RAM per mesin (lebih banyak RAM disarankan untuk klaster yang lebih besar).
    • Koneksi jaringan dan akses SSH dari mesin kontrol Kubespray ke setiap node.
    • Untuk ketersediaan tinggi, pertimbangkan node dengan 16 GB RAM, 100 GB disk, dan 6 inti CPU.

Pengaturan Mesin Kontrol

  • Instal Git jika belum terinstal:

    sudo apt install git-all
    
  • Instal Python (2.7 atau 3.5+) dan pip:

    sudo apt update
    sudo apt install python3 python3-pip
    
  • Instal Ansible dan dependensi lainnya. Kubespray menyediakan skrip untuk menangani ini:

    git clone https://github.com/kubernetes-sigs/kubespray.git
    cd kubespray
    git checkout release-2.20  # Opsional: Cek out rilis stabil
    python3 -m venv venv  # Membuat lingkungan virtual Python
    source venv/bin/activate  # Mengaktifkan lingkungan virtual
    pip install -r requirements.txt  # Menginstal Ansible dan dependensi lainnya
    

Mengonfigurasi Inventaris

  • Salin contoh inventaris:

    cp -r inventory/sample inventory/mycluster
    
  • Edit file inventory/mycluster/hosts.ini untuk menambahkan node Anda:

    [all]
    node1 ansible_host=10.10.1.3 ansible_user=ubuntu
    node2 ansible_host=10.10.1.4 ansible_user=ubuntu
    node3 ansible_host=10.10.1.5 ansible_user=ubuntu
    
    [kube-master]
    node1
    
    [kube-node]
    node2
    node3
    
  • Jika Anda memiliki pengguna yang berbeda, ganti ubuntu dengan pengguna Anda.

  • Anda juga dapat menggunakan skrip inventory_builder untuk menghasilkan file inventaris:

    declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5)
    HOST_PREFIX=dcm-cp- KUBE_CONTROL_HOSTS=3 CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
    

Menyesuaikan Konfigurasi

  • Sesuaikan pengaturan klaster Kubernetes di file inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml. Contohnya:

    kube_network_plugin: flannel
    kubeconfig_localhost: true
    
  • Untuk ketersediaan tinggi, konfigurasikan VIP dan load balancer:

    # Di inventory/mycluster/group_vars/all/all.yml
    kube_vip_arp_enabled: true
    kube_vip_enabled: true
    kube_vip_controlplane_enabled: true
    kube_vip_address: 10.7.12.250  # Perbarui dengan VIP yang benar
    kube_vip_interface: eno1  # Perbarui dengan antarmuka yang benar
    

Mendeploy Klaster

  • Jalankan playbook Ansible untuk mendeploy Kubernetes:
    ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml -b -v --become --become-user=root --private-key=~/.ssh/private_key
    

Pasca-Deploy

  • Setelah deploy selesai, Anda akan menemukan file kubeconfig di direktori inventory/mycluster/artifacts. File ini diperlukan untuk berinteraksi dengan klaster Kubernetes Anda menggunakan kubectl.
    export KUBECONFIG=inventory/mycluster/artifacts/admin.conf
    kubectl get nodes
    

Penyelesaian Masalah dan Akses

  • Untuk menyelesaikan masalah atau mengakses klaster Anda, pastikan Anda memiliki biner kubectl terinstal di mesin kontrol Anda atau mesin lain di mana Anda berencana mengelola klaster.
  • Jika Anda menghadapi masalah seperti node worker yang tidak siap atau masalah penjadwalan pod lainnya, periksa log dan sesuaikan konfigurasi sebagaimana diperlukan.

Tautan yang Berguna