BerandaComputers and TechnologyTunjukkan HN: Kubernetes di Raspberry Pi Anda dalam 15 menit (langsung)

Tunjukkan HN: Kubernetes di Raspberry Pi Anda dalam 15 menit (langsung)

Berikut adalah sesuatu yang dapat Anda lakukan sebelum bekerja, dengan kopi pagi Anda, atau sambil menunggu makan malam untuk memasak malam. Dan tidak pernah ada waktu yang lebih baik untuk menginstal Kubernetes ke Raspberry Pi, dengan penurunan harga pada model 2GB – sempurna untuk container.

Image for post

Image for post

Anda dapat membeli satu RPi dan masih bersenang-senang, di sini saya membeli 4x Node 2 GB

Saya akan menunjukkan cara menginstal Kubernetes ke Raspberry Pi Anda dalam 15 menit termasuk pemantauan dan cara menerapkan kontainer.

Tagihan bahan

Saya akan membuat ini cukup sederhana.

  • Raspberry Pi 4, dengan RAM 2GB atau 4GB – 2GB adalah nilai terbaik, 4GB adalah yang terbaik jika Anda tidak tidak berencana melakukan pengelompokan.
  • Kartu SD – disarankan 32 GB, lebih besar terserah Anda, tetapi Kubernetes banyak menulis ke disk dan dapat mematikan kartu, jadi saya cenderung lebih suka membeli kartu yang lebih kecil.
  • Catu daya – Anda memerlukan pasokan resmi, saya tahu harganya mahal, tapi itu karena suatu alasan. Jangan murah karena Anda akan membeli dua kali.

Jika Anda menginginkan beberapa tautan, Anda dapat menemukannya di pos laboratorium rumah saya: Kubernetes Homelab dengan Raspberry Pi dan k3sup .

Flash OS awal

Ada e begitu banyak cara untuk menginstal Sistem Operasi, tetapi saya merekomendasikan Raspbian dan edisi Lite yang dikirimkan tanpa sebuah UI.

Setelah Anda mengunduh gambar , kamu bisa memakai Etcher.io dari teman kita di Balena untuk mem-flash-nya bahkan tanpa membuka ritsletingnya. Betapa kerennya itu?

Sebelum Anda mem-boot RPi itu, pastikan Anda membuat file bernama ssh di partisi boot. Jika di Mac Anda akan melihat itu terpasang untuk Anda segera setelah Anda mengeluarkan dan memasukkan kembali kartu SD.

Hubungkan untuk boot pertama

Sekarang sambungkan ke Raspberry Pi melalui jaringan lokal Anda, itu akan muncul sebagai raspberry.local , tetapi jika Anda tidak dapat terhubung karena alasan tertentu, maka instal nmap dan lari nmap -sP 192.168.0.0/24 untuk menjalankan pemindaian jaringan.

  • Ubah kata sandi dengan passwd pi .
  • Lari raspi-config dan ubah memori dibagi menjadi 16mb , sehingga kami memiliki semua RAM untuk Kubernetes, percayalah, itu membutuhkannya.

Dapatkan alat CLI Anda

Anda lakukan tidak perlu login lagi ke Raspberry Pi Anda. Semua alat akan diinstal pada klien Anda (yaitu laptop Anda) dan RPi akan diakses dari jarak jauh sebagai server.

  • kubectl – Kubernetes CLI
  • k3sup – penginstal Kubernetes (k3s) yang menggunakan SSH untuk mem-bootstrap Kubernetes
  • arkade – cara yang tidak merepotkan untuk mendapatkan aplikasi Kubernetes dan CLI
  curl -ssL  https: // dapatkan .k3sup . de v | sudo sh  

pemasangan k3sup dapat digunakan untuk menginstal k3s sebagai server, untuk memulai cluster node tunggal baru (itulah yang akan kita lakukan hari ini). Jika Anda memiliki beberapa node, maka perintah k3sup join memungkinkan Anda tambahkan agen atau pekerja tambahan untuk memperluas kapasitas.

arkade menginstal aplikasi dengan cara yang mudah, menggunakan bagan helm upstream mereka, tetapi menyembunyikan detail yang berdarah dan membosankan.

  curl -sSL  https://dl.get-arkade.dev  | sudo sh  

arkade juga dapat digunakan untuk menginstal CLI seperti kubectl dan kubectx

  arkade dapatkan kubectl  # Atau: 
arkade dapatkan kubectl --version $ VERSION

Instal Kubernetes dengan k3sup dan k3s

k3s adalah edisi ringan Kubernetes yang dibuat oleh Rancher Labs, cocok untuk produksi, tetapi juga cocok untuk perangkat kecil seperti Raspberry Pi kami. Persyaratan memorinya sekitar 500MB untuk server vs. sekitar 2GB untuk kubeadm (Kubernetes upstream)

  ekspor IP="192.168.0.1" # temukan dari ifconfig di RPi 
pemasangan k3sup --ip $ IP --pengguna

Dalam beberapa saat Anda akan menerima file kubeconfig ke direktori lokal Anda, dengan instruksi bagaimana menggunakannya.

Temukan node, dan periksa apakah sudah siap

  ekspor KUBECONFIG=`pwd` / kubeconfig   kubectl dapatkan node -o wide  

Anda dapat menambahkan - w ke sebagian besar perintah kubectl untuk "menonton" atau "streaming" file status keluaran, sehingga Anda dapat menghemat pengetikan.

Secara default, k3s dilengkapi dengan server metrik , yang digunakan untuk penskalaan otomatis Pod dan mendapatkan memori / CPU untuk pod dan node:

  node atas kubectl 
kubectl pod atas - semua-namespaces

Sekarang mari instal satu atau dua aplikasi, jalankan pemasangan arkade untuk melihat apa yang tersedia, tetapi tidak semua proyek dalam lanskap CNCF berfungsi pada perangkat ARM

  pemasangan arkade - bantuan   Perintah yang Tersedia:   manajer-sertifikat Instal manajer-sertifikat 
bagan Pasang bagan helm yang ditentukan
konektor-cron Pasang konektor-cron untuk OpenFaaS
Crossplane Instal Crossplane
buruh pelabuhan- registri Menginstal registri Docker
docker-registry-ingress Menginstal masuknya registri dengan TLS
info Temukan info tentang aplikasi Kubernetes
operator saluran masuk Instal operator saluran masuk

istio Instal istio
konektor kafka Instal konektor kafka untuk OpenFaaS
kubernetes-dashboard Instal kubernetes-dashboard
linkerd Instal linkerd metrik-server Instal metrik-server
minio Instal minio
mongodb Instal mongodb
nginx -ingre ss Instal nginx-ingress
openfaas Instal openfaas
openfaas-ingress Instal openfaas ingress dengan TLS
postgresql Instal postgresql

Mari kita coba dasbor Kubernetes?

  arkade menginstal kubernetes-dashboa rd   

Skrip penginstalan mencetak cara menggunakan aplikasi, dan info arkade dapat menunjukkan kepada kita informasi yang sama nanti.

  # Untuk meneruskan dasbor ke mesin lokal Anda   proxy kubectl   # Untuk mendapatkan Token Anda untuk masuk   kubectl -n kubernetes-dashboard mendeskripsikan rahasia $ (kubectl -n kubernetes-dashboard get secret | grep admin-pengguna-token | awk '{print $ 1}')   # Setelah Proksi Anda dapat menavigasi ke bawah   http: // localhost: 8001 / api / v1 / namespaces / kubernetes-dashboard / services / https: kubernetes-dashboard: / proxy / # / login  

Tempel di token Anda

Image for post

Image for post

Sekarang nikmati dasbor:

Image for post

Image for post

Image for post

Image for post

Ayo instal lagi r aplikasi populer, openfaas. OpenFaaS memberi kita cara sederhana untuk menerapkan fungsi dan layanan mikro ke Kubernetes dengan penskalaan otomatis bawaan.

  arkade menginstal openfaas  

Berikut informasi pasca-pemasangan:

  # Dapatkan faas-cli   curl -SLsf https://cli.openfaas.com | sudo sh   # Jika dasar auth diaktifkan, Anda sekarang dapat masuk ke gateway Anda:   PASSWORD=$ (kubectl get secret -n openfaas basic-auth -o jsonpath="{. Data.basic-auth-password}" | base64 --decode; echo)  

IP RPi saya adalah 192.168.0.201, jadi saya dapat mengakses OpenFaaS menggunakan NodePort 31112.

  ekspor OPENFAAS_URL= http://192.168.0.201 : 31112   echo -n $ PASSWORD | faas-cli login --username admin --password-stdin   daftar toko faas-cli --platform armhf   faas-cli store deploy figlet --platform armhf   daftar faas-cli  

Sekarang buka OpenFaaS UI dan periksa fungsi figlet Anda menggunakan http://192.168.0.201 : 31112 atau yang setara.

Image for post

Image for post

Image for post

Image for post

Anda juga dapat membangun fungsi Anda sendiri dengan Python, Go, JavaScript, dan banyak bahasa lainnya.

Jika Anda memiliki login Docker Hub, Anda dapat mencoba yang berikut ini, tetapi Anda harus menjalankannya di Raspberry Pi terpisah, dengan buruh pelabuhan diinstal ( curl -sSL https://get.docker.com | sudo sh )

  ekspor USERNAME=alexellis2 
login buruh pelabuhan -u $ USERNAME
toko template faas-cli tarik golang-http
faas-cli new --lang golang-http --prefix=$ USERNAME my-api
f aas-cli up -f my-api.yml # Sekarang aktifkan fungsi Anda faas-cli panggil my-api -f my-api.yml

Anda juga dapat mengedit kode fungsi dan kemudian menjalankan faas-cli up lagi:

Isi dari: my-api / handler.go

  fungsi paket   impor (
"net / http"
"github.com/openfaas-incubator/go-function-sdk"
)
func Handle (req handler.Request) (handler.Response, error) {
return handler.Response {
Isi: [] byte (` Jalankan k3s pada RPi Anda! `),
Kode status: http.StatusOK,
}, nihil
}

Cari tahu lebih lanjut tentang Image for post OpenFaaS di openfaas.com

Anda juga dapat melihat fungsi Anda di Dasbor Kubernetes:

Image for post

Dapatkan IP publik untuk cluster Anda

Anda bisa mendapatkan IP publik untuk cluster Anda melalui terowongan menggunakan Open Source yang populer proyek saluran masuk .

Cari tahu caranya dalam tutorial ini - w hich menggabungkan manajer sertifikat, nginx-ingress (atau Traefik) dan operator saluran masuk .

Menyelesaikan dan langkah selanjutnya

Jika Anda ingin melangkah lebih jauh, Anda dapat mulai menambahkan node tambahan ke dalam cluster, untuk memperluas kapasitasnya dan memberikan redundansi.

Anda dapat terhubung dengan komunitas OpenFaaS – untuk membicarakan tentang Kubernetes, ARM, kluster Raspberry Pi, dan tanpa server. Bergabunglah dengan ruang kerja Slack kami hari ini .

Read More

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments