TLS sonlandırma
- Docker & Kubernetes kursu
- İleri seviye
- Ders 5/70
- 4 dk
Ingress üzerinde TLS sonlandırmayı öğrenirsin.
TLS sonlandırma
Ingress, HTTPS bağlantısını kendisi çözer (TLS sonlandırma) ve servise düz HTTP iletir. Sertifika bir kubernetes.io/tls Secret'ında tutulur ve spec.tls ile bağlanır:
spec:
ingressClassName: nginx
tls:
- hosts:
- magaza.example.com
secretName: magaza-tls
rules:
- host: magaza.example.com
...ingress-nginx, TLS tanımlı host'larda HTTP isteklerini varsayılan olarak HTTPS'e yönlendirir.
cert-manager
Sertifikaları elle yenilemek yerine cert-manager Let's Encrypt'ten otomatik alır ve yeniler. Ingress'e bir annotation eklemek yeterlidir; cert-manager Secret'ı oluşturur:
metadata:
name: magaza
annotations:
cert-manager.io/cluster-issuer: letsencrypt
spec:
tls:
- hosts: [magaza.example.com]
secretName: magaza-tls # cert-manager doldururUygulama HTTPS'li Ingress
İki adım: önce magaza.crt ve magaza.key dosyalarından magaza-tls TLS Secret'ını oluşturan komutu yaz; ardından bir Ingress'in tls bölümünü yaz (tls: ile başlayarak): host magaza.example.com, secretName: magaza-tls.
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl create secret tls magaza-tls --cert=magaza.crt --key=magaza.key
tls:
- hosts:
- magaza.example.com
secretName: magaza-tlsBeklenen çıktı
secret/magaza-tls created ingress.networking.k8s.io/magaza configured
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 tls.hosts'taki ad, rules'daki host ile aynı olmazsa ne olur?
- Ingress silinir
- HTTP kapanır
- Fark etmez
- O host için sertifika kullanılmaz; controller varsayılan (sahte) sertifikayı sunar Doğru cevap
Açıklama: Tarayıcı "güvensiz bağlantı" uyarısı gösterir.
2 Sertifikanın Secret'ını ver.
tls:
- hosts:
- magaza.example.com
____: magaza-tls
tls:
- hosts:
- magaza.example.com
secretName: magaza-tls
Açıklama: secretName kubernetes.io/tls türünde bir Secret'tır.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
TLS sonlandırma |
HTTPS Ingress'te çözülür |
spec.tls |
Sertifika bağlama |
kubernetes.io/tls |
Secret türü |
cert-manager |
Otomatik sertifika |