hongkong

Kustomisasi: ambil langkah pertama Anda

Kustomisasi manifes Kubernetes dengan overlay file untuk digunakan di lingkungan yang berbeda

jika Anda bekerja dengan Kubernetes dan masih belum tahu Sesuaikan, Anda dapat yakin. Setelah membaca artikel ini, Anda akan memiliki pedang baru pada Pisau Tentara Swiss Anda untuk penggunaan langsung dalam kehidupan sehari-hari. Pengetahuan ini juga akan membantu Anda memahami proyek yang lebih kompleks yang menggunakan Kustomize untuk aplikasi manifes. YAML.

Masalah apa yang diselesaikan Kustomize?

Nama alat itu sendiri mengacu pada tujuannya: menyesuaikan manifes untuk digunakan kembali di lingkungan yang berbeda, dengan melapisi file. Dengan cara ini, Anda dapat membuat manifes yang akan berfungsi sebagai dasar untuk klaster yang berbeda dan lainnya, dengan hanya penyesuaian masing-masing khusus untuk lingkungan tersebut. Dengan itu, Anda tidak perlu menulis ulang manifes sepenuhnya, cukup khawatir tentang bidang yang berubah sesuai dengan cluster. Secara umum, ini adalah alat yang membantu Anda dalam pengiriman perangkat lunak di Kubernestesmelalui template.

Kustomisasi vs Helm vs Kubectl

tidak bisa bicara tentang Sesuaikan tanpa membandingkannya dengan alat terkait lainnya, seperti yang terkenal Kemudi. Keduanya mengusulkan untuk memecahkan masalah yang sama dan memiliki poin positif dan negatifnya. menganalisis papan perbandingan di bawah ini untuk melihat yang terbaik dari masing-masing.

Bagaimana cara menginstal Kustomize?

Kustomize adalah biner yang ditulis dalam PERGILAH, dengan sumber terbuka. Anda dapat mengunduhnya langsung dari rilis di GitHub atau gunakan skrip di Kerang, disediakan oleh dokumentasi resmi.

curl -s “https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash

Untuk menguji perintah, setelah instalasi, lihat versi mana yang dikembalikan dengan perintah berikut:

kustomize version

Contoh untuk mengasimilasi alat

Di bagian ini saya akan menempatkan dua contoh untuk mengilustrasikan penggunaan alat. Dengan mengotori tangan Anda, akan menjadi lebih intuitif untuk memvisualisasikan potensi Anda. Untuk mengikuti dan melakukan langkah yang sama pada mesin Anda, mengkloning repositori demo ke folder di sistem Anda:

git clone https://github.com/mmmarceleza/devops.git

Langkah selanjutnya adalah mengubah konteks terminal Anda ke folder yang berisi contoh:

cd devops/kubernetes/kustomize/examples/

Contoh 1

Pertimbangkan bahwa Anda perlu mengunggah penerapan dan layanan, sesuai folder 1 yang ada di repositori kloning. Untuk demonstrasi, kami akan menggunakan cluster lokal dengan Jenis.

kind create cluster — name exemplo-01

Di bawah Berikut adalah manifes yang digunakan dalam demo:

  • penyebaran
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
  • melayani
apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
app: nginx
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
name: http
type: LoadBalancer
selector:
app: nginx

HAI Sesuaikan bekerja di atas file bernama kustomisasi.yamlyang berisi spesifikasi deklaratif yang manifesnya perlu diimpor dan modifikasi mana yang perlu dilakukan. di folder inifile tidak ada dengan sengaja, hanya untuk mengilustrasikan perintah pertama, menggunakan biner Kustomize:

cd 01/
kustomize create — autodetect

Perhatikan bahwa file baru muncul dan di dalamnya ada daftar dengan dua manifes yang ada di folder. Jika ada subfolder dengan manifes tambahan, Anda harus melewati parameter untuk melintasi semua subdirektori. Dengan demikianperintah akan memiliki sintaks berikut:

cd 01/
kustomize create — autodetect — recursive

Dengan Kustomize sendiri, dimungkinkan untuk memainkan, dalam output standar terminal Anda, penyatuan semua manifes yang ada di kustomisasi.yamldan mengevaluasinya sebelum membuat objek di cluster.

kustomize build .

Pada versi 1.14, Kustomize telah dimasukkan sebagai parameter tambahan (-k) dalam biner dari kubectl. Oleh karena itu, untuk pemasangan manifes yang tercantum dalam kustomisasi.yaml, dihasilkan pada langkah sebelumnya, jalankan perintah kedua:

kubectl apply -k .

Manifes yang terdaftar telah diinstal dan dapat diverifikasi di lingkungan:

kubectl get all

Untuk menghapus objek yang dibuat dengan Kustomize, prosesnya serupa. ITU kubectl mencari kustomisasi.yaml untuk mengidentifikasi fitur mana yang akan dihapus:

kubectl delete -k .

Contoh 2

Di perusahaan Anda, mereka berada di bawah tanggung jawab Anda dua cluster Kubernetes, satu untuk menguji aplikasi (pementasan) dan satu lagi untuk produksi (produksi). Anda perlu mengunggah aplikasi hanya dengan satu penyebaran ini adalah sebuah melayani. em memanggungkan, hanya dua replika yang cukup untuk pengujian, sedangkan dalam produksi, empat replika yang diinginkan. Untuk contoh ini, kami akan terus menggunakan yang sama jenis cluster dibuat untuk contoh sebelumnya, memisahkan lingkungan dengan ruang nama dengan namanya masing-masing.

Di bawah mengikuti hierarki folder dan manifes yang dibuat untuk contoh ini:

├── base  
│ ├── deployment.yaml
│ ├── kustomization.yaml
│ └── service.yaml
└── overlays
├── production
│ ├── deployment.yaml
│ ├── kustomization.yaml
│ └── namespace.yaml
└── staging
├── deployment.yaml
├── kustomization.yaml
└── namespace.yaml

Untuk mempermudah, file kustomizations.yaml telah dibuat di semua folder. Untuk kasus tumpang tindih, dalam lapisan pasta, ada beberapa kekhasan. Manifes menyajikan parameter khusus untuk penambahan ke cluster, bersama dengan aturan file mana yang akan ditimpa. Periksa semua file untuk melihat semua detail. Di bawah ini adalah file untuk lingkungan produksi.

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
commonLabels:
env: production
resources:
- ../../base
- namespace.yaml
namespace: production
patchesStrategicMerge:
- deployment.yaml

Seperti dapat dilihat di atas, label akan ditambahkan ke manifes, a ruang nama akan dibuat dan file overlay adalah penyebaran.

pasta dasar

Untuk melihat manifes, dengan hanya mempertimbangkan file dasar, jalankan perintah berikut:

cd ../02/
kustomize build base/

Pementasan pasta

Untuk melihat file yang akan diterapkan ke lingkungan staging, jalankan perintah berikut:

kustomize build overlays/staging/

Perhatikan bahwa label, namespace dan jumlah replika sama dengan 2 disertakan dalam output dari perintah ini. Sekarang dapat diterapkan ke cluster:

kubectl apply -k overlays/staging/

Identifikasi fitur baru yang diinstal:

kubectl get all -n staging

Hapus objek yang diinstal:

kubectl delete -k overlays/staging/

Produksi pasta

Untuk melihat file yang akan diterapkan ke lingkungan produksi, jalankan perintah berikut:

kustomize build overlays/production/

Perhatikan bahwa label, namespace, dan jumlah replika yang sama dengan 3 disertakan dalam output dari perintah ini. Sekarang dapat diterapkan ke cluster:

kubectl apply -k overlays/production/

Identifikasi fitur baru yang diinstal:

kubectl get all -n production

Hapus objek yang diinstal:

kubectl delete -k overlays/production/

Pertimbangan akhir

Menggunakan beberapa contohadalah mungkin untuk membangun kerangka kerja untuk penerapan manifes di lingkungan yang berbeda, secara deklaratif dan tanpa kerumitan template, seperti yang digunakan dalam Kemudiyang juga saya gunakan setiap hari, tetapi Kustomize adalah pilihan untuk Anda.

HAI Sesuaikan memiliki berbagai opsi yang belum tercakup dalam artikel ini, jadi saya sarankan membaca dokumentasi untuk membayangkan semua parameter yang mungkin digunakan dalam file kustomisasi. Dengan menerapkan teknik ini pada pengiriman perangkat lunak di lingkungan Anda, dikombinasikan dengan praktik mendaftarkan semua manifes dalam repositori git, Anda akan sejalan dengan praktik yang baik dari GitOps.

Itu saja untuk saat ini, teman-teman! Anda dapat menulis kepada saya jika Anda memiliki pertanyaan atau ingin memberikan komentar: marcelo@getup.io.

Jika Anda menyukai artikelnya, bagikan konten dan bantuannya Bangun menyebarkan kata-kata di sekitar!

A Bangunadalah ahli dalam Kubernetes penghasil Kubicastdan pendukung proyek Hapus Distribusi distribusi untuk dikelola beberapa clusterKubernet.


Kustomize: dando os primeiros passos awalnya diterbitkan di Getup on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Bermain bocoran hk akurat melalui smartphone tentunya lebih praktis dan mudah. Seiring dengan pertumbuhan teknologi dimasa kini di mana mudahnya manfaatkan internet, sebabkan para togelers bermain togel secara online. Bermain togel online juga lebih menambahkan banyak keuntungan ketimbang bermain togel secara offline. Bermain togel hongkong dan togel singapore secara online anda mampu beroleh banyak diskon dan promo yang di sajikan oleh bandar togel online tersebut.