Linkerd アーキテクチャクイズ
このクイズでは、Linkerd アーキテクチャの理解度を確認します。
クイズ問題
1. Linkerd control planeのコアコンポーネントではないものはどれですか?
A. Destination Controller B. Identity Controller C. Proxy Injector D. Envoy Proxy
回答を表示
回答: D. Envoy Proxy
解説: Linkerd control planeは、Destination、Identity、Proxy Injectorで構成されます。EnvoyはIstioのdata plane proxyであり、LinkerdはRustで記述された独自のlinkerd2-proxyを使用します。
2. linkerd2-proxyはどのプログラミング言語で記述されていますか?
A. Go B. C++ C. Rust D. Java
回答を表示
回答: C. Rust
解説: linkerd2-proxyはRustで記述されており、メモリ安全性と高いパフォーマンスを実現します。使用するメモリは約10MBで、追加されるp99レイテンシは1ms未満です。
3. Destination Controllerの主な役割ではないものはどれですか?
A. Service discovery B. Certificate issuance C. ServiceProfile information delivery D. Endpoint updates
回答を表示
回答: B. Certificate issuance
解説: Certificate issuanceはIdentity Controllerの役割です。Destination Controllerは、Service discovery、Endpoint updates、ServiceProfileおよびTrafficSplitポリシーの配布を担当します。
4. Linkerdのcertificate hierarchyの最上位にあるものは何ですか?
A. Workload Certificate B. Identity Issuer C. Trust Anchor D. Proxy Certificate
回答を表示
回答: C. Trust Anchor
解説: certificate hierarchyは、Trust Anchor (Root CA) → Identity Issuer (Intermediate CA) → Workload Certificateです。Trust AnchorはPKIのルートであり、すべてのcertificate chainにおける信頼の基盤です。
5. workload certificateのデフォルトの有効期間はどれですか?
A. 1 hour B. 24 hours C. 7 days D. 30 days
回答を表示
回答: B. 24 hours
解説: Linkerdのworkload certificateのデフォルト有効期間は24時間です。Proxyは有効期限が切れる前にcertificateを自動更新します。有効期間を短くすることで、certificateが侵害された場合のリスクを最小限に抑えます。
6. Proxy InjectorはどのKubernetesメカニズムを使用しますか?
A. DaemonSet B. CronJob C. Admission Webhook D. Custom Controller
回答を表示
回答: C. Admission Webhook
解説: Proxy InjectorはMutating Admission Webhookとして動作します。Pod作成リクエストをインターセプトし、linkerd-proxy sidecarとlinkerd-init init containerを自動的にinjectします。
7. linkerd-init containerの役割は何ですか?
A. Download proxy configuration B. Set up iptables rules C. Generate certificates D. Collect metrics
回答を表示
回答: B. Set up iptables rules
解説: linkerd-initはInit containerとして実行され、iptables rulesを設定します。これらのrulesは、すべてのinbound/outbound trafficをlinkerd-proxyにリダイレクトします。
8. Linkerd proxyのinbound portはどれですか?
A. 4140 B. 4143 C. 4191 D. 8080
回答を表示
回答: B. 4143
解説: Linkerd proxyのportsは、4143(inbound)、4140(outbound)、4191(admin/metrics)です。inbound portは他のServiceからのtrafficを受け取ります。
9. 正しいSPIFFE ID formatはどれですか?
A. spiffe://cluster/namespace/service B. spiffe://trust-domain/ns/namespace/sa/service-account C. https://linkerd.io/identity/namespace/pod D. urn:linkerd:identity:namespace:pod
回答を表示
回答: B. spiffe://trust-domain/ns/namespace/sa/service-account
解説: LinkerdのSPIFFE IDは、spiffe://<trust-domain>/ns/<namespace>/sa/<service-account>のformatに従います。例: spiffe://root.linkerd.cluster.local/ns/production/sa/web-server
10. IstioのEnvoyと比較したlinkerd2-proxyの特性ではないものはどれですか?
A. Lower memory usage B. Wasm extension support C. Lower latency D. Smaller binary size
回答を表示
回答: B. Wasm extension support
解説: linkerd2-proxyはWasm extensionsをサポートしません(extensibilityは限定的です)。その代わり、~10MBのmemory(Envoyは~50-100MB)、1ms未満のp99 latency(Envoyは2-5ms)、~10MBのbinary(Envoyは~60MB)と、よりlightweightです。
11. Identity Controllerはcertificateを発行する前に何を検証しますか?
A. Pod's IP address B. ServiceAccount token C. Namespace labels D. ConfigMap settings
回答を表示
回答: B. ServiceAccount token
解説: Identity Controllerは、proxyが送信したCSRに添付されたServiceAccount tokenを検証します。これにより、proxyのidentity(SPIFFE ID)が実際のworkloadと一致することを確認します。
12. Linkerd proxy admin port(4191)が提供しないものはどれですか?
A. Prometheus metrics B. Health check endpoints C. Traffic routing configuration D. Proxy version information
回答を表示
回答: C. Traffic routing configuration
解説: admin port(4191)は、Prometheus metrics(/metrics)、health checks(/ready、/live)、およびproxy informationを提供します。Traffic routing configurationは、Destination ControllerからgRPC経由でproxiesに配信されます。