Kubernetes gizli dizilerini anlama

Tamamlandı

Dağıtılmış uygulamalarla çalışırken dikkat edilmesi gereken en önemli noktalardan biri, parolalar, bağlantılar ve benzer veriler gibi hassas bilgilerin nasıl yönetileceğini öğrenmektir. Kubernetes, gizli dizi adlı bir kaynakla bu verilerin güvenliğini sağlamanızı sağlar.

Gizli dizileri anlama

Kubernetes'te Gizli Diziler, gizli bilgileri podlarda ve dağıtımlarda düz metin biçiminden daha güvenli bir şekilde depolamanıza olanak sağlar. Gizli diziler, parolaları ve diğer hassas verileri depolamak için tasarlanmıştır.

Kubernetes Gizli Dizileri verilerini base64 biçiminde kodlar. Base64 bir şifreleme algoritması olmasa da Kubernetes, bilgilerin kodlandığını görebilir ve bu bilgileri gibi kubectl describekomut çıkışlarından gizleyebilir. Bu işlem düz metin yapılandırmasıyla gerçekleşmez. Gizli diziler, hassas verilerin kümedeki diğer iş yüklerine eklenmesini önlemek için her zaman tek bir ad alanı kapsamındadır.

Gizli dizi türleri

Farklı gizli dizi türleri vardır. En yaygın ve varsayılan tür, Opaquekullanıcı tanımlı, rastgele verileri tutan türüdür. Diğer yaygın türler şunlardır:

  • kubernetes.io/service-account-token: Bir Hizmet Hesabı Belirteci tanımlar ve yeni bir Hizmet Hesabı oluşturulduğunda otomatik olarak oluşturulur.
  • kubernetes.io/basic-auth: Temel kimlik doğrulaması için kimlik bilgileri.
  • kubernetes.io/tls: Örneğin, giriş kaynağı içinden HTTPS bağlantıları sunmak için kullanılan TLS istemci veya sunucu verileri.

İpucu

Daha fazla bilgi için resmi Kubernetes Gizli Dizileri belgelerine bakın.

Gizli Dizi oluşturma ve kullanma

Resmi Kubernetes Gizli Dizileri belgelerine göre, gizli dizileri üç farklı şekilde kullanabilirsiniz:

  • Pod veya dağıtım içindeki kapsayıcılarda bulunan bir birime dosya olarak bağlanabilir.
  • Pod veya dağıtım belirtiminde ortam değişkeni olarak başvurulabilir.
  • Kubelet tarafından pod belirtimindeki imagePullSecret anahtarı aracılığıyla özel kayıt defterlerinden görüntü çekilirken kullanılabilir.

YAML bildirim dosyasını veya kubectl komutu kullanarak diğer kubernetes kaynakları gibi Gizli Diziler oluşturabilirsiniz. Gizli dizi belirtimi şu şekildedir:

apiVersion: v1
kind: Secret
metadata:
  name: secret-name
  namespace: secret-namespace
type: Opaque
data:
  key_name: "key value in base64 format"

Bu belirtimi içeren bir Gizli Dizi için, Gizli Diziyi oluşturmadan önce değerleri kodlamanız gerekir. Düz metin değeriyle bir Gizli Dizi oluşturmak ve Kubernetes'in bunu otomatik olarak kodlamasına izin vermek istiyorsanız yerine kullanın stringDatadata:

apiVersion: v1
kind: Secret
metadata:
  name: secret-name
  namespace: secret-namespace
type: Opaque
stringData:
  key_name: "key value in plain format"

Uygulama kodlanmış gizli dizi dizesini kodlanmış dize yerine ona geçirilen değer olarak alır.

Gizli dizi güncelleştirmeleri

Bir pod içinde birim olarak bağlanan tüm Gizli Diziler, değerleri değiştikten sonra otomatik olarak güncelleştirilir. Bu değişiklik Kubelet yapılandırması nedeniyle hemen gerçekleşmeyebilir, ancak podu yeniden başlatmaya gerek kalmaması için otomatik olarak gerçekleşir.

Gizli dizilerin ortam değişkenlerine bağlı olduğu durumlarda bunlar otomatik olarak güncelleştirilmez ve değişikliklerin etkili olması için Pod'un yeniden başlatılmasını zorunlu hale getirir.

Bilgilerinizi kontrol edin

1.

Kubernetes gizli dizileri neden düz metin değerlerden daha güvenlidir?

2.

Gizli diziler bir uygulamada nasıl kullanılabilir?

3.

base64, gizli dizilerde nasıl kullanılır?