Kontroler ialah enjin penjadualan Kubernetes sumber terbuka yang direka untuk memudahkan pengurusan Directed Acyclic Graphs (DAGs). Dengan Kontroler, anda boleh mentakrifkan aliran kerja dalam YAML, menjalankan tugas sebagai kerja dalam kontena, dan juga menggambarkannya melalui UI berasaskan web pilihan. Sama ada anda perlu melaksanakan aliran kerja mengikut jadual atau bertindak balas kepada acara masa nyata, Kontroler menawarkan penyelesaian yang fleksibel, asli Kubernetes.
Yang berkata, saya mesti amaran bahawa Kontroler kini berada dalam keadaan alfanya. Ia sesuai untuk percubaan dan prototaip tetapi mungkin belum bersedia untuk kegunaan pengeluaran. Sebagai projek sampingan, Kontroler tidak disertakan dengan sokongan, jadi gunakannya dalam pengeluaran atas risiko anda sendiri!
Jika anda ingin melihat repositori GitHub, inilah: https://github.com/GreedyKomodoDragon/Kontroler
Menguruskan aliran kerja pada Kubernetes boleh menjadi mencabar. Walaupun Kubernetes menawarkan primitif berkuasa seperti CronJobs dan Jobs, menyelaraskan aliran kerja yang kompleks dengan kebergantungan, percubaan semula dan pencetus dinamik selalunya memerlukan skrip tersuai atau alatan luaran. Kontroler memudahkan proses ini dengan menyediakan penyelesaian asli Kubernetes untuk mentakrif, menjadualkan dan mengurus aliran kerja sebagai Graf Akiklik Terarah (DAG).
Inilah yang membuatkan Kontroler menonjol:
Kontroler membolehkan anda menentukan keseluruhan aliran kerja anda—termasuk tugasan, kebergantungan, cuba semula logik dan pelaksanaan bersyarat—menggunakan fail YAML yang mudah. Pendekatan ini memastikan aliran kerja anda deklaratif, dikawal versi dan mudah dikongsi merentas pasukan.
Balutkannya dalam carta Helm dan gunakan sistem penggunaan automatik seperti ArgoCD atau FluxCD, dan anda telah menguruskan DAG anda dalam aliran kerja GitOps.
Sama ada anda memerlukan aliran kerja untuk dijalankan mengikut jadual biasa (seperti CronJobs) atau bertindak balas terhadap pencetus masa nyata (seperti mesej daripada baris gilir), Kontroler telah melindungi anda. Ia menyepadukan dengan lancar kedua-dua paradigma penjadualan, menjadikannya serba boleh untuk pelbagai kes penggunaan.
Kontroler beroperasi menggunakan DagRuns (Definisi Sumber Tersuai, atau CRD, yang Kontroler boleh pantau). Untuk melaksanakan larian DAG, anda hanya mencipta DagRun, dan Kontroler menguruskan pelaksanaan. Dengan mendedahkan fungsi ini di luar pengawal, Kontroler membenarkan penyepaduan yang lancar dengan sistem luaran. Lihat contoh DagRun di bawah:
apiVersion: kontroler.greedykomodo/v1alpha1 kind: DagRun metadata: labels: app.kubernetes.io/name: dagrun app.kubernetes.io/instance: dagrun-sample name: dagrun-sample spec: dagName: dag-sample parameters: - name: first fromSecret: secret-name-new - name: second value: value_new
Anda hanya memberikan nama DAG, secara pilihan termasuk sebarang parameter. Parameter akan menggunakan nilai lalainya jika tiada yang dinyatakan.
Sebagai aplikasi asli Kubernetes, Kontroler memanfaatkan kelebihan platform. Daripada skrip ringkas kepada aplikasi yang rumit, reka bentuk utama kontena Kontroler memastikan bahawa sebarang beban kerja boleh disepadukan dengan mudah ke dalam DAG.
Untuk mengurangkan lagi pertindihan usaha, kami menambah sokongan untuk Tugasan sebagai CRD.
Walaupun YAML sangat baik untuk infrastruktur sebagai kod, memvisualisasikan aliran kerja dan menjejaki pelaksanaannya dengan ketara boleh memudahkan penyahpepijatan dan pengoptimuman. Kontroler menawarkan UI berasaskan web pilihan untuk mencipta dan memantau DAG, menyediakan pasukan dengan cara intuitif untuk mengurus aliran kerja.
Dalam tangkapan skrin di atas ia menunjukkan kepada anda:
Di bawah hud, fungsi ini dikuasakan oleh vis-network, projek sumber terbuka untuk mencipta graf. Anda boleh mencari repositori GitHub mereka di sini. Pada mulanya, kami membangunkan alat grafik kami sendiri tetapi mendapati sukar untuk membuat skala dan mencabar untuk membuat graf kompleks boleh dibaca. Hasilnya, kami menggunakan penyelesaian sumber terbuka ini.
Templat pod Kontroler membolehkan anda menyesuaikan tugas anda dengan ciri Kubernetes lanjutan seperti rahsia, PVC, pertalian nod, konteks keselamatan dan banyak lagi. Ini memberi anda kawalan terperinci tentang cara tugasan dilaksanakan, memastikan keserasian dengan keperluan khusus kluster anda.
Salah satu cabaran utama dalam mengurus aliran kerja ialah memastikan bahawa infrastruktur asas boleh berskala mengikut keperluan anda. Kontroler menawarkan sokongan pangkalan data yang fleksibel dan keupayaan pengelogan untuk memudahkan pasukan mengurus DAG dan menangkap log pelaksanaan terperinci. Sama ada anda bekerja dengan persediaan yang ringan atau persekitaran pengeluaran yang lebih mantap, Kontroler mempunyai pilihan yang boleh memenuhi keperluan anda.
Untuk persediaan yang lebih kecil atau semasa pembangunan, SQLite ialah pangkalan data lalai yang digunakan oleh Kontroler. Ia mudah, ringan dan tidak memerlukan banyak konfigurasi. Jika anda baru memulakan atau menjalankan Kontroler untuk tujuan ujian, SQLite ialah pilihan yang mudah kerana ia berfungsi "di luar kotak" tanpa persediaan pangkalan data tambahan.
Jika anda lebih suka menggunakan SQLite, anda tidak perlu membuat sebarang perubahan tambahan pada penggunaan. Cuma ikut arahan pemasangan, dan Kontroler akan mengendalikan selebihnya.
Untuk penggunaan gred pengeluaran yang lebih besar, PostgreSQL ialah pangkalan data yang disyorkan untuk menyimpan DAG dan DagRuns. Kontroler menggunakan PostgreSQL untuk menyediakan prestasi yang lebih tinggi, skalabiliti dan kebolehpercayaan yang diperlukan untuk mengendalikan volum besar data aliran kerja. Kontroler serasi dengan PostgreSQL 16 dan ke atas
Bagi kebanyakan pengguna Kubernetes, storan log terpusat adalah keperluan penting untuk kebolehmerhatian dan penyelesaian masalah. Kontroler menyepadukan dengan lancar dengan Amazon S3 untuk penyimpanan log, menjadikannya mudah untuk mengumpul, menyimpan dan menganalisis log daripada pelaksanaan DAG. Penyepaduan ini memastikan anda boleh menangkap log terperinci, menyimpannya dalam jangka panjang untuk pengauditan dan menggunakannya untuk analisis bedah siasat apabila berlaku kesilapan.
Kami sedang menguji dengan MiniIO untuk mengelakkan kos, tetapi di bawah hud, ia menggunakan API AWS S3 dan seharusnya dapat mengesan atribut IAM anda untuk memberikan akses kepada baldi S3 anda.
Kami harap anda akan melihat Kontroler! Anda boleh menemuinya di sini: https://github.com/GreedyKomodoDragon/Kontroler.
Walaupun masih dalam alpha, Kontroler mempunyai potensi besar untuk pasukan yang ingin menyelaraskan operasi Kubernetes mereka. Semasa ia berkembang, Kontroler menyasarkan untuk menjadi alat yang berkuasa untuk mengatur aliran kerja di Kubernetes, memberikan kebolehpercayaan dan skalabiliti yang diperlukan oleh pasukan untuk mengautomasikan proses yang kompleks dengan mudah.
Kontroler sentiasa bertambah baik, jadi nantikan kemas kini masa hadapan! Jika anda ingin menyumbang kepada projek ini, kami mengalu-alukan semua bentuk sumbangan.
Atas ialah kandungan terperinci Memperkenalkan Pengawal: Enjin Penjadualan Kubernetes untuk DAG. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!