Pasukan Kubernetes aaS daripada Mail.rumenterjemah nota ringkas tentang cara menjana rahsia Helm secara automatik apabila mengemas kini. Berikut ialah teks daripada pengarang artikel - pengarah teknikal Intoware, sebuah syarikat yang membangunkan penyelesaian SaaS.
Bekas adalah sejuk. Pada mulanya saya anti-bekas (saya malu untuk mengakuinya), tetapi sekarang saya menyokong sepenuhnya penggunaan teknologi ini. Jika anda membaca ini, semoga anda berjaya mengharungi lautan Docker, menyedari manfaat Kubernetes dan menjadikan hidup anda lebih mudah dengan Helm.
Walau bagaimanapun, beberapa perkara jelas lebih sukar daripada yang sepatutnya.
Bagaimana untuk menjana rahsia secara automatik semasa mengemas kini?
Rahsia Kubernetes ialah sumber yang mengandungi pasangan kunci/nilai yang ingin anda gunakan dalam kod anda. Ini boleh menjadi rentetan sambungan pangkalan data, kata laluan e-mel dan sebagainya. Dengan menggunakan rahsia, anda mencipta pemisahan yang jelas antara kod dan tetapan, membolehkan anda menyesuaikan penggunaan yang berbeza dengan mudah tanpa mengubah pangkalan kod.
Situasi biasa ialah apabila dua modul mesti berkomunikasi menggunakan kunci biasa. Tiada sesiapa di luar kluster harus mengetahui kunci ini, kerana ia bertujuan untuk komunikasi satu-dengan-satu dalam kluster.
Membuat rahsia
Biasanya, untuk mencipta rahsia dalam Helm anda perlu:
Rahsia Kubernetes mudah menggunakan nilai daripada values.yml
Tetapi katakan anda tidak mahu menyatakan rahsia anda dalam fail nilai.
Terdapat banyak pilihan apabila penggunaan memerlukan kunci dikongsi, yang mesti dijana semasa pemasangan.
Dalam contoh komunikasi modul-ke-modul di atas, adalah tidak diingini untuk berkongsi rahsia di luar penempatan. Oleh itu, adalah sangat wajar Helm mempunyai mekanisme untuk menjana rahsia secara automatik tanpa perlu menyatakannya secara langsung.
cangkuk
Cangkuk membolehkan anda menjalankan kod di lokasi tertentu semasa proses pemasangan. Mungkin terdapat kerja konfigurasi yang perlu dijalankan selepas pemasangan pertama, atau mungkin pembersihan perlu dilakukan sebelum melakukan sebarang kemas kini.
Untuk menyelesaikan masalah kami menambah kunci yang dijana semasa pemasangan, cangkuk prapemasangan adalah sesuai. Tetapi ada tangkapan: anda tidak boleh menjana rahsia secara automatik sekali pada kemas kini. Hooks akan berfungsi pada setiap kemas kini.
Jika anda telah menjana rahsia anda dan pemasangan pertama anda masih belum berlaku kemudian berhenti membaca, cangkuk prapasang akan berfungsi dengan baik untuk anda.
Tetapi jika rahsia itu adalah sebahagian daripada kemas kini (mungkin ciri baharu yang tidak ada semasa pemasangan), maka memalukan bahawa anda tidak boleh membuat cangkuk prapemasangan yang hanya berfungsi sekali.
Fungsi
Fungsi helm membolehkan anda menambah pelbagai elemen skrip pada skrip penggunaan anda.
apiVersion: v1
kind: Secret
metadata:
name: my-super-awesome-api-key
type: Opaque
stringData:
apiKey: {{ uuidv4 | quote }} #Generate a new UUID and quote it
Contoh ini menunjukkan bahawa nilai rahsia apiKey akan menjadi UUID baharu yang dijana semasa pemasangan.
Helm termasuk perpustakaan ciri yang benar-benar luas yang memanfaatkan ciri templat GO yang menakjubkan dan pustaka ciri Sprig untuk membuat penggunaan tersuai.
Fungsi carian
Ditambah dalam Helm 3.1 Fungsi carian, yang membolehkan anda meminta penggunaan sedia ada dan:
menyemak kewujudan sumber;
mengembalikan nilai sumber sedia ada untuk kegunaan kemudian.
Dengan menggunakan kedua-dua keupayaan ini, kita boleh mencipta satu rahsia yang dijana secara dinamik!
Setiap kali kemas kini baharu digunakan pada pelayan, Helm akan sama ada menjana nilai rahsia baharu (jika tiada rahsia lagi) atau menggunakan semula nilai sedia ada.
Semoga Berjaya!
Apa lagi yang perlu dibaca mengenai topik tersebut: