はじめに
3.10 系チャートの Helm インストールに基づく。コマンドは稼働中の Kubernetes クラスタ、
kubectl、helm3 を想定。
前提
kubectlで到達できる Kubernetes クラスタ。- OCI チャートを pull できる Helm 3。
インストール
先に CRD を入れ、次に本体チャートを入れる。公式ドキュメントは Helm を推奨している (Install with Helm)。
bash
helm install emissary-crds \
--namespace emissary --create-namespace \
oci://ghcr.io/emissary-ingress/emissary-crds-chart --version=3.10.0 \
--set enableLegacyVersions=false --wait
helm install emissary \
--namespace emissary \
oci://ghcr.io/emissary-ingress/emissary-ingress --version=3.10.0 \
--set waitForApiext.enabled=false --wait最初の動く構成
最小ルーティングには getambassador.io/v3alpha1 の 3 リソースが要る。待受ポート用の Listener、Host、そしてパスからサービスへの Mapping である (Quick Start)。
Listener・Host・Mappingを定義する。yamlapiVersion: getambassador.io/v3alpha1 kind: Listener metadata: name: emissary-listener namespace: emissary spec: port: 8080 protocol: HTTP securityModel: INSECURE hostBinding: namespace: from: ALL --- apiVersion: getambassador.io/v3alpha1 kind: Host metadata: name: wildcard-host namespace: emissary spec: hostname: "*" requestPolicy: insecure: action: Route --- apiVersion: getambassador.io/v3alpha1 kind: Mapping metadata: name: quote-backend namespace: emissary spec: hostname: "*" prefix: /backend/ service: quoteマニフェストを適用する。
bashkubectl apply -f routing.yaml
動作確認
ポッドが Running で、サービスに外部アドレスが付いたことを確認し、ゲートウェイ越しにリクエストを送る。
bash
kubectl get pods -n emissary
kubectl get svc -n emissary emissary-ingress
curl http://<external-ip>/backend/次に読むもの
emissary-apiext 変換 webhook の起動待ちを含む手動 YAML インストール手順は yaml-install を参照。TLS・認証・レート制限・スケーリングなど本番運用は emissary-ingress.dev の公式ドキュメントを参照。