CodeBlanks Logo Icon CodeBlanks

Ingress ve TLS

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: magaza

Uygulama 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

terminal
# buraya yaz

Örnek çözüm

terminal
helm template magaza ./magaza -f values-prod.yaml -s templates/ingress.yaml
kubectl get ingress -n magaza

Beklenen çı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.

Soru
helm template magaza ./magaza -f values-prod.yaml ____ templates/ingress.yaml
Cevap
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

İleri seviye bölümündeki tüm dersler