Kubernetes adalah salah satu dari sedikit teknologi yang sukar ditempuh orang bukan kerana rumit dan sukar difahami, tetapi kerana ia dirancang untuk dijalankan pada perkakasan kelas pelayan dan tidak dapat disimulasikan dengan mudah pada komputer rumah biasa yang mudah. Syukurlah, terdapat pelbagai platform yang dihoskan oleh awan yang menyediakan infrastruktur yang berpatutan untuk bereksperimen dan memahami teknologi seperti Kubernetes.Sebagai prasyarat, saya mendorong anda untuk membaca catatan kami mengenai seni bina Kubernetes dan mengenai nod dan pod, blok bangunan kluster Kubernetes.Walaupun terdapat banyak penyelesaian yang dihoskan untuk Kubernetes, kami akan menggunakan segalanya dari awal pada DigitalOcean yang merupakan penyelesaian cloud-hosting yang disasarkan kepada pemaju khususnya.
Contoh VPS di platform ini dikenali sebagai titisan. Untuk menjalankan Kubernetes, anda memerlukan RAM sekurang-kurangnya 2 GB dan kami akan menggunakan titisan pilihan $ 20 / bulan untuk demo ini. Mereka juga dikenakan bayaran setiap jam, jadi jika anda bereksperimen selama beberapa jam dan kemudian menghancurkan semua titisannya, maka anda akan membayar tidak lebih dari beberapa dolar.
Sekarang kita mempunyai dua mesin, satu master berlabel dan satu lagi akan menjadi simpul pekerja. Oleh itu, mari kita konfigurasi master terlebih dahulu.
Mengkonfigurasi nod induk
Untuk mengkonfigurasi nod utama, SSH ke dalamnya menggunakan IP awam atau gunakan konsol yang disediakan oleh DigitalOcean untuk mengakses terminal sebagai pengguna root.
Perintah pertama adalah asas menjaga rumah:
$ apt kemas kini && apt upgrade -yKemudian kami mengambil kunci gpg yang diperlukan dan menambahkannya ke senarai repositori jauh kami yang dipercayai.
$ curl -s https: // pakej.awan.google.com / apt / doc / apt-key.gpg | tambah kunci apt -$ kucing < /etc/apt/sources.list.d/kubernetes.list
deb http: // apt.kubernetes.io / kubernetes-xenial utama
EOF
kemas kini $ apt
Menjalankan kemas kini apt untuk kali kedua akan membawa sistem menjadi pantas dengan repo Kubernetes rasmi. Sekarang, kami memasang pakej yang diperlukan.
$ apt pasang dok.io#Docker diperlukan untuk penggunaan aplikasi.
$ apt memasang kubelet kubeadm kubectl kubernetes-cni
Perintah terakhir memasang beberapa pakej yang masing-masing penting untuk alasan yang berbeza:
- Kubeadm: Bootstraps dan memulakan Kubernetes pada nod. Ini dapat digunakan untuk menetapkan titisan peranan nod utama, atau simpul pekerja.
- Kubelet: Ini adalah proses latar belakang yang bercakap dengan simpul induk dan melakukan tindakan yang diminta olehnya.
- Kubectl: Ini adalah alat baris perintah yang membolehkan pemaju dan kakitangan operasi berinteraksi dengan, dan mengawal, kelompok Kubernetes.
- Kubernetes-cni: Ia adalah Interface Networking Interface yang diperlukan untuk komunikasi dalaman antara pod dan komunikasi luaran juga.
Sekarang kita sudah memasang semua pakej yang diperlukan, inilah masanya untuk kita memulakan nod utama. Jalankan perkara berikut:
$ kubeadm init --pod-network-cidr = 10.244.0.0/16 --apiserver-advertise-address $ DROPLET_IP_ADDRESS
Pastikan untuk mengganti pemboleh ubah terakhir $ DROPLET_IP_ADDRESS dengan IP awam nod induk anda. Sekiranya semuanya berfungsi dengan baik, ini akan menjadi hasil anda:
Pastikan anda menyalin baris terakhir "kubeadm join -token ..." kerana mengandungi kelayakan keselamatan yang diperlukan yang diperlukan oleh simpul pekerja untuk bergabung dengan kluster.
Setiap node induk mempunyai pelayan API yang berjalan di atasnya, yang akan dinyatakan oleh perintah di atas ke rangkaian pod dan juga ke antara muka baris perintah, kubectl, dan juga UI Web pilihan.
Nota: Anda boleh menggunakan alamat IP awam titisan anda untuk kubeadm init perintah tetapi jika anda ingin mengasingkan nod induk anda dari seluruh dunia, anda mungkin ingin menggunakan ciri IP peribadi DigitalOcean yang akan digunakan oleh pod yang berlainan di pelbagai nod untuk bercakap antara satu sama lain. Anda kemudiannya hanya dapat mendedahkan perkhidmatan front-end apabila projek anda berjaya. |
Baiklah, satu langkah terakhir sebelum kita melihat laporan kesihatan di nod induk kita. Anda mungkin mahu menjalankan:
$ mkdir -p $ RUMAH /.kiub$ cp / etc / kubernetes / admin.conf $ RUMAH /.kiub
$ chown $ (id -u): $ (id -g) $ RUMAH / pentadbir.pengesahan
$ kubectl buat -f
https: // mentah.githubusercontent.com / coreos / flanel / master / Dokumentasi / kube-flanel.yml --namespace = sistem kube
Flannel dipasang pada perintah terakhir yang menyediakan fungsi rangkaian lapisan 3 yang diperlukan untuk kontena.
Sekarang kita boleh berlari,
$ kubectl dapatkan pod -all-namespaces
Yang akan menunjukkan kepada kita keadaan semua nod dan semua pod dalam kluster ini, yang pada masa ini hanya satu. Jadi sudah tiba masanya kita mengkonfigurasi titisan kedua dan mengubahnya menjadi nod pekerja Kubernetes.
Mengkonfigurasi minion atau nod pekerja
Banyak konfigurasi minion akan menjadi pengulangan dari apa yang telah kita lakukan di atas, dari mana kubeadm memerintahkan bahawa jalan akan mula menyimpang.
Oleh itu, untuk mengkonfigurasi nod pekerja anda dengan mengulangi semua arahan hingga dan termasuk pemasangan pakej,
$ apt memasang kubelet kubeadm kubectl kubernetes-cniKemudian untuk menginisialisasi titisan sebagai simpul kubernetes, jalankan perintah yang dihasilkan di nod induk, setelah selesaikubeadm init.
$ kubeadm join --token 3c37b5.08ed6cdf2e4a14c9159.89.25.245: 6443 - penemuan-token-ca-cert-hash
sha256: 52f99432eb33bb23ff86f62255ecbb
Harap maklum bahawa kandungan yang mengikuti bendera token anda, alamat IP, dan checksum sha256 semuanya akan sangat berbeza dalam kes anda. Itu sahaja! Anda mempunyai nod baru sebagai ahli kluster Kubernetes. Anda boleh mengesahkannya dengan menyenaraikan nod dan pod yang berjalan di kluster ini.
Kesimpulannya
Sekarang adalah masa untuk anda menggunakan berlabuh aplikasi dalam kluster ini dan jangan ragu untuk memunculkan lebih banyak titisan dan menggunakan kubeadm sertai untuk menambahkan ahli baru ke kluster Kubernetes anda.