Ingress ve TLS
- Docker & Kubernetes kursu
- İleri seviye
- Ders 63/70
- 4 dk
Ingress ile TLS sonlandırmayı yazarsın.
Ingress ve TLS
Web ve API tek alan adı altında yayınlanır: /api API'ye, geri kalanı web'e gider. Sertifikayı cert-manager Let's Encrypt'ten alır. Şablon, Ingress'i yalnızca ingress.enabled doğruysa üretir:
{{- if .Values.ingress.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: magaza
annotations:
cert-manager.io/cluster-issuer: letsencrypt
spec:
ingressClassName: nginx
tls:
- hosts: [{{ .Values.ingress.host }}]
secretName: magaza-tls
rules:
- host: {{ .Values.ingress.host }}
http:
paths:
- path: /api
pathType: Prefix
backend: {service: {name: api, port: {number: 8000}}}
- path: /
pathType: Prefix
backend: {service: {name: web, port: {number: 80}}}
{{- end }}Şablonu sınamak
Koşullu şablonlar her iki değerle de işlenip kontrol edilir; -s yalnızca bir şablon dosyasının çıktısını gösterir:
helm template magaza ./magaza -s templates/ingress.yaml
# (boş: ingress.enabled false)
helm template magaza ./magaza -f values-prod.yaml -s templates/ingress.yaml | head -6
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: magazaUygulama Ingress şablonunu sına
İki komut yaz: ./magaza chart'ının yalnızca templates/ingress.yaml şablonunu magaza release adıyla ve values-prod.yaml ile işle; magaza namespace'indeki Ingress'leri listele.
Başlangıç kodu
# buraya yazÖrnek çözüm
helm template magaza ./magaza -f values-prod.yaml -s templates/ingress.yaml
kubectl get ingress -n magazaBeklenen çıktı
--- # Source: magaza/templates/ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: magaza NAME CLASS HOSTS ADDRESS PORTS AGE magaza nginx magaza.example.com 203.0.113.10 80, 443 2m
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 {{- if .Values.ingress.enabled }} ... {{- end }} bloğu ne sağlar?
- Ingress'in yalnızca değer doğruysa üretilmesini Doğru cevap
- Ingress'i her zaman üretir
- Ingress'i siler
- TLS'i kapatır
Açıklama: Geliştirmede Ingress kapalı, üretimde açık olabilir.
2 Yalnızca bir şablon dosyasını işle.
helm template magaza ./magaza -f values-prod.yaml ____ templates/ingress.yaml
helm template magaza ./magaza -f values-prod.yaml -s templates/ingress.yaml
Açıklama: -s (--show-only) tek şablonu gösterir.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
{{- if }} |
Koşullu üretim |
cert-manager annotation |
Otomatik sertifika |
/api → api:8000 |
API yolu |
-s |
Tek şablon |