Cilium Service Mesh Ingress & Gateway クイズ
このクイズでは、Cilium Ingress Controller、Gateway API、TLS termination、EKS 統合パターンについての理解を確認します。
クイズ問題
1. Cilium Ingress Controller の loadbalancerMode オプションにおける「shared」モードとは何を意味しますか?
A. 各 Ingress 用に個別の load balancer を作成する B. すべての Ingress が 1 つの load balancer を共有する C. load balancer を使用せず NodePort のみを使用する D. internal traffic のみを処理する
回答を表示
回答: B. すべての Ingress が 1 つの load balancer を共有する
解説: loadbalancerMode: shared 設定により、すべての Ingress リソースが単一の共有 load balancer を使用します。これはコスト効率に優れており、dedicated モードでは各 Ingress 用に個別の load balancer が作成されます。
2. Gateway API の HTTPRoute における parentRefs フィールドの役割は何ですか?
A. 親 Pod を定義する B. この route が接続する Gateway を指定する C. 親 namespace を参照する D. 継承する policy を定義する
回答を表示
回答: B. この route が接続する Gateway を指定する
解説: parentRefs は、HTTPRoute が接続する Gateway を指定します。Gateway の名前と namespace を参照することで、route が適用される listener を決定します。
3. Cilium Ingress で TLS passthrough を有効にする annotation はどれですか?
A. ingress.cilium.io/tls-mode: passthrough B. ingress.cilium.io/tls-passthrough: "true" C. cilium.io/tls: passthrough D. nginx.ingress.kubernetes.io/ssl-passthrough
回答を表示
回答: B. ingress.cilium.io/tls-passthrough: "true"
解説:ingress.cilium.io/tls-passthrough: "true" annotation は、TLS traffic を termination せずに直接 backend service へ転送します。これは backend が TLS を処理する必要がある場合に役立ちます。
4. Gateway API の Gateway リソースで複数の protocol をサポートするために使用されるフィールドはどれですか?
A. protocols B. listeners C. endpoints D. handlers
回答を表示
回答: B. listeners
解説: Gateway の listeners フィールドには複数の listener を定義でき、HTTP、HTTPS、TCP、TLS などのさまざまな protocol をサポートします。各 listener では、protocol、port、hostname などを個別に設定できます。
5. EKS 上の Cilium Ingress で NLB を使用するために必要な annotation はどれですか?
A. service.kubernetes.io/load-balancer-type: nlb B. service.beta.kubernetes.io/aws-load-balancer-type: "nlb" C. eks.amazonaws.com/load-balancer: nlb D. aws.load-balancer/type: network
回答を表示
回答: B. service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
解説: AWS EKS で Network Load Balancer を使用するには、service に service.beta.kubernetes.io/aws-load-balancer-type: "nlb" annotation を追加します。scheme、target-type などの追加 annotation により、NLB の動作をさらに設定できます。
6. Gateway API の HTTPRoute で URL rewriting を設定するために使用される filter type はどれですか?
A. PathRewrite B. URLRewrite C. RequestTransform D. PathModifier
回答を表示
回答: B. URLRewrite
解説: HTTPRoute の filters セクションでは、type: URLRewrite を使用して request URL を書き換えます。path と hostname の両方を変更できます。
7. Cilium Gateway API で cross-namespace routing を許可するために必要な Gateway 設定はどれですか?
A. allowedRoutes.namespaces.from: All B. allowedRoutes.namespaces.from: Selector C. crossNamespace: true D. routes.scope: cluster
回答を表示
回答: B. allowedRoutes.namespaces.from: Selector
解説: Gateway の listeners で allowedRoutes.namespaces.from: Selector を設定すると、selector を使用して特定の label を持つ namespace からの route のみを許可します。'All' はすべての namespace を許可し、'Same' は同じ namespace のみを許可します。
8. CiliumEnvoyConfig で service health check を設定するために使用される Envoy resource type はどれですか?
A. envoy.config.listener.v3.Listener B. envoy.config.cluster.v3.Cluster C. envoy.config.route.v3.Route D. envoy.config.endpoint.v3.Endpoint
回答を表示
回答: B. envoy.config.cluster.v3.Cluster
解説: health check 設定は、Cluster resource の health_checks フィールドで定義します。HTTP health check、TCP health check、interval、threshold などを設定できます。
9. Gateway API で HTTP から HTTPS へ redirect する場合に推奨される statusCode はどれですか?
A. 302 (Found) B. 307 (Temporary Redirect) C. 301 (Moved Permanently) D. 303 (See Other)
回答を表示
回答: C. 301 (Moved Permanently)
解説: HTTP から HTTPS への permanent redirect には、status code 301 が推奨されます。これにより URL が恒久的に変更されたことが browser と search engine に通知され、caching と SEO に有効です。
10. Cilium と AWS Load Balancer Controller の主な違いは何ですか?
A. Cilium は L4 のみをサポートする B. AWS LBC はより低い latency を提供する C. Cilium は追加の LB コストなしで node resource のみを使用する D. AWS LBC は Gateway API を完全にサポートする
回答を表示
回答: C. Cilium は追加の LB コストなしで node resource のみを使用する
解説: Cilium Ingress/Gateway は node の eBPF と Envoy を使用して external traffic を処理するため、AWS load balancer の個別コストはかかりません。一方、AWS LBC は ALB/NLB を provision するため、追加コストが発生します。
11. Gateway API における TCPRoute の用途は何ですか?
A. HTTP traffic の routing B. TLS termination が必要な traffic C. raw TCP traffic(非 HTTP)の routing D. UDP traffic のみ
回答を表示
回答: C. raw TCP traffic(非 HTTP)の routing
解説: TCPRoute は、database connection や message queue などの HTTP ではない raw TCP traffic を routing するために使用されます。Gateway の TCP listener と連携し、非 HTTP service への external access を提供します。
12. Cilium Ingress で client IP を保持するために使用される NLB 設定はどれですか?
A. X-Forwarded-For header B. Proxy Protocol C. Disable Source NAT D. Direct Server Return
回答を表示
回答: B. Proxy Protocol
解説: NLB で client IP を保持するには、Proxy Protocol を有効にする必要があります。service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*" annotation を使用します。Envoy は Proxy Protocol header から元の client IP を抽出します。