Harbor - registri untuk keluar dari wadah Docker kotak

Pada 31 Juli, CNCF mengumumkan adopsi proyek Open Source baru, yang digambarkan sebagai "cloud native registry," di kotak pasirnya (yaitu, pada tahap dukungan paling awal), Harbour . Di situs webnya, mereka menjelaskan kepada kami bahwa produk itu dibuat untuk mengelola gambar wadah Docker di lingkungan yang aman.



Tampaknya sudah ada Docker Registry (atau, katakanlah, Quay dari CoreOS), tetapi jelas bahwa solusi baru tidak muncul dan tidak matang untuk aplikasi produksi begitu saja - terutama solusi Open Source ... dan bahkan lebih lagi, jatuh ke dalam CNCF. Artikel ulasan ini dimaksudkan untuk menjelaskan alasan kemunculan Harbour, fitur dan fitur utamanya.

Fokus pertama Harbour: jaringan dan perusahaan


Sejarah proyek dimulai pada 2016, pada bulan Maret di mana rilis publik pertama terjadi - 0.1.0. Di belakang penciptaannya adalah para insinyur VMware yang menggambarkan proyek tersebut sebagai "server registri kelas perusahaan," yang, berdasarkan pengembangan Docker, "memperluas kemampuan Registry Docker dengan menambahkan lebih banyak fitur ke dalamnya yang biasanya diperlukan oleh perusahaan".

Pada saat itu, penekanannya lebih pada kemungkinan menggunakan registri ini di dalam perusahaan, khususnya, berpotensi meningkatkan produktivitas dengan menyimpan gambar di jaringan perusahaan: โ€œ[Pelabuhan] sangat berguna bagi pengguna kontainer yang tidak memiliki koneksi internet yang baik. Sebagai contoh, Harbour meningkatkan produktivitas pengembang Cina dengan menghilangkan kesulitan mengunduh gambar dari Internet publik โ€ (dari README ke Harbour 0.1.0 ) .

Catatan : Orientasi Harbour ke China, yang dikonfirmasi oleh kehadiran lokalisasi yang sesuai sejak rilis pertama, tidak disengaja: penciptaan proyek dengan demikian diprakarsai oleh divisi perusahaan China (VMware China R&D).

Apa yang telah menjadi kejadian sehari-hari untuk ekosistem asli cloud, Harbour ditulis dalam bahasa Go sejak awal dan dilisensikan di bawah ketentuan Apache License 2.0. Jika kita berbicara tentang kemampuan fungsional proyek, maka dalam rilis pertama penulis meletakkan beberapa fitur yang relevan hingga hari ini, seperti:

  • kontrol akses berbasis peran ( RBAC , yang memungkinkan Anda untuk mengatur pengguna dan repositori sebagai "proyek" dan memberikan hak yang berbeda untuk gambar dalam proyek ini), serta dukungan LDAP dan AD untuk otentikasi pengguna;
  • Antarmuka pengguna berbasis web untuk melihat repositori, mencari mereka, mengelola proyek;
  • audit semua operasi;
  • API REST untuk manajemen.


Manajemen Proyek di Harbour Web UI

Evolusi Pelabuhan: Keamanan


Pada 2017, VMware menemukan aplikasi logis untuk proyek barunya - integrasi dengan solusi perusahaan lain untuk kontainer. Secara khusus, vSphere Integrated Containers (VIC), yang, tidak menjadi PaaS penuh (Platform sebagai Layanan) atau CaaS (Kontainer sebagai Layanan), secara aktif berkembang, menawarkan semacam landasan untuk bekerja dengan wadah. Hari ini, misalnya, Mesin Kontainer Terintegrasi vSphere , yang merupakan runtime kontainer untuk vSphere, telah berkembang dari mereka. Dan inilah bagaimana solusi engineer VMware (Nate Reid) menggambarkan VIC pada saat itu:

โ€œVIC mengambil kerangka kerja satu host Docker dan menskalanya ke beberapa host ESXi. Arsitektur yang diusulkan untuk orkestrasi mirip dengan Swarm, Kubernetes (K8s) dan Mesos. Namun, ada beberapa nuansa, dan tidak ada tugas untuk mengganti semua produk ini. VIC menyediakan jaringan untuk wadah, memungkinkan Anda untuk mendapatkan nama mereka, menawarkan RBAC, panel kontrol HTML5 (Admiral; baca lebih lanjut tentang hal itu dalam ulasan GUI kami untuk Docker - kira - kira Terjemahkan. ), Registri tingkat perusahaan (Harbour), banyak perintah Docker serupa, Integrasi dengan alat vSphere. [..]

Jika Anda memerlukan dukungan orkestrasi Kubernetes dan / atau kemampuan CI / CD berbasis VMware IaaS dari VMware, Anda harus melihat VMware PKS dan / atau Pivotal Cloud Foundry. Ini sudah merupakan solusi CaaS dan PaaS. โ€

Pada saat yang sama, masalah keamanan untuk gambar Docker menjadi semakin relevan. Pada awal 2018, para insinyur "persaudaraan" untuk perusahaan VMware Pivotal mengutip sebuah studi yang menyatakan bahwa bahkan versi terbaru dari gambar yang diposting di Docker Hub (baik dari komunitas dan resmi) mengandung banyak kerentanan (rata-rata 70 per gambar).

Saat itulah Harbour muncul dengan misi berorientasi keselamatan yang baru, dan sudah berada di "tanah" CaaS yang disebutkan di atas - dalam Layanan Kontainer Penting (PKS) :

โ€œ[Kerentanan dan masalah keamanan lainnya dalam gambar Docker] ini adalah alasan kami telah memasukkan begitu banyak add-on yang berguna yang membuat PKS dapat diandalkan dan aman!โ€ [..]

Karena Kubernetes sendiri tidak menangani masalah seperti [manajemen gambar aman], kami bekerja dengan teman-teman VMware untuk memasukkan Harbour dalam PKS. โ€

Apa yang begitu aman ditambahkan ke Harbour (selain RBAC dan audit sudah dilaksanakan dalam proyek)? Dua arah utama ditunjukkan:

  1. Pemindaian Kerentanan Untuk melakukan ini, Harbour mengimplementasikan CVE dari basis data terkenal (NVD NIST, Pelacak CVE Ubuntu, Data Keamanan Red Hat, dll.) Dan secara otomatis memindai setiap gambar kontainer untuk kehadiran mereka saat melakukan operasi push dan pull. Jika kerentanan ditemukan, operasi dibatalkan tergantung pada pengaturan keamanan, dan gambar itu sendiri ditandai, yang akan terlihat oleh administrator registri. Untuk mewujudkan peluang ini, Harbour berintegrasi dengan Clair dari CoreOS.
  2. Tanda tangan dari gambar . Ini juga menggunakan pencapaian proyek lain - Notaris (kami sebutkan di artikel ini ) , yang membuat tanda tangan saat mendorong gambar, dan kemudian memvalidasi tanda tangan tersebut dengan setiap tarikan.

Aplikasi umum Harbour di PKS adalah sebagai berikut:



Pelabuhan hari ini


Jadi, dengan menawarkan registrasi gambar kontainer untuk digunakan di tempat dan memberikan keamanan dalam berbagai aspek bekerja dengan mereka, hari ini Harbour telah berevolusi ke arsitektur berikut, yang tampaknya menggabungkan fungsi dari proyek Open Source lainnya:



Selain Docker Registry, Clair dan Notaris yang telah disebutkan, yang mengimplementasikan fitur-fitur utama Harbour, Anda juga dapat melihat dua DBMS dalam skema ini:

  1. PostgreSQL ( sebelumnya MySQL / MariaDB ada di sini), yang digunakan untuk menyimpan metadata tentang proyek, pengguna dan peran mereka, gambar;
  2. Redis - untuk sesi penyimpanan .


Database dalam Arsitektur Pelabuhan

Anda juga dapat menemukan beberapa detail tentang perangkat internal Harbour umum dari halaman wiki ini , yang terkait dengan dokumentasi resmi proyek (namun, ada kecurigaan bahwa beberapa detail pada arsitektur mungkin sudah ketinggalan zaman di beberapa tempat) . Di sana Anda juga dapat menemukan tautan ke petunjuk pemasangan Harbour dan penerapannya ke Kubernetes . Yang terakhir, bagaimanapun, dinyatakan usang (berdasarkan versi yang lebih lama, tidak mendukung Clair dan Notaris), dan sebaliknya diusulkan untuk menggunakan Helm-chart .

Versi Harbor saat ini adalah v1.5.2 , dirilis pada akhir Juli. Persyaratan untuk mesin Linux di mana rilis registri terbaru diinstal adalah Docker versi 17.03.0-ce (atau lebih tinggi) dan Docker Compose 1.10.0+, serta Python dan OpenSSL.

Dukungan untuk grafik Helm terlihat seperti inovasi yang sangat menarik untuk versi Harbour yang akan datang ( v1.6.0-rc1 telah dirilis): โ€œHarbour, mulai dari versi 1.6.0, akan menjadi registry asli cloud gabungan yang akan mendukung manajemen gambar dan manajemen grafikโ€ . Rencana pengembangan lainnya termasuk dukungan OAuth 2.0 untuk otentikasi pengguna, kemampuan untuk menyebar ke beberapa situs untuk toleransi kesalahan dan penyeimbangan muatan, mengumpulkan statistik tentang repositori, dan utilitas untuk bermigrasi ke Harbor.

Alih-alih sebuah kesimpulan


Harbour adalah contoh proyek sukses dari dunia cloud modern, yang berhasil menemukan ceruknya dan membangun dirinya sendiri, sambil mengintegrasikan kemampuan alat Open Source lainnya. Bukti keberhasilannya tidak hanya dimasukkannya CNCF dalam daftar proyek, tetapi juga 5000+ bintang di GitHub , dan komunitas pengembang yang cukup aktif.

PS


Baca juga di blog kami:

Source: https://habr.com/ru/post/id419727/


All Articles