Skip to content

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 内存,并增加不到 1ms 的 p99 延迟。

3. 以下哪项不是 Destination Controller 的主要职责? ​

A. 服务发现 B. 证书签发 C. ServiceProfile 信息传递 D. Endpoint 更新

显示答案

答案:B. 证书签发

说明: 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 小时 B. 24 小时 C. 7 天 D. 30 天

显示答案

答案:B. 24 小时

说明: Linkerd workload certificate 的默认有效期为 24 hours。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。

7. linkerd-init container 的作用是什么? ​

A. 下载 Proxy 配置 B. 设置 iptables 规则 C. 生成证书 D. 收集指标

显示答案

答案:B. 设置 iptables 规则

说明: linkerd-init 作为 Init container 运行,以设置 iptables rules。这些规则会将所有入站/出站流量重定向到 linkerd-proxy。

8. Linkerd proxy 的入站端口是什么? ​

A. 4140 B. 4143 C. 4191 D. 8080

显示答案

答案:B. 4143

说明: Linkerd proxy 端口:4143(入站)、4140(出站)、4191(admin/metrics)。入站端口接收来自其他 Service 的流量。

9. 正确的 SPIFFE ID 格式是什么? ​

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>。示例:spiffe://root.linkerd.cluster.local/ns/production/sa/web-server

10. 与 Istio 的 Envoy 相比,以下哪项不是 linkerd2-proxy 的特性? ​

A. 更低的内存使用量 B. Wasm 扩展支持 C. 更低的延迟 D. 更小的二进制文件大小

显示答案

答案:B. Wasm 扩展支持

说明: linkerd2-proxy 不支持 Wasm extensions(可扩展性有限)。相较之下,它更加轻量:约 10MB 内存(Envoy 约 50-100MB)、<1ms p99 延迟(Envoy 2-5ms),以及约 10MB 二进制文件(Envoy 约 60MB)。

11. Identity Controller 在签发 certificate 前会验证什么? ​

A. Pod 的 IP 地址 B. ServiceAccount 令牌 C. Namespace 标签 D. ConfigMap 设置

显示答案

答案:B. ServiceAccount 令牌

说明: Identity Controller 会验证 Proxy 提交的 CSR 随附的 ServiceAccount token。这可确认 Proxy 的身份(SPIFFE ID)与实际 workload 相匹配。

12. 以下哪项不由 Linkerd proxy admin port (4191) 提供? ​

A. Prometheus 指标 B. Health check 端点 C. 流量路由配置 D. Proxy 版本信息

显示答案

答案:C. 流量路由配置

说明: admin port (4191) 提供 Prometheus metrics (/metrics)、health checks (/ready, /live) 和 Proxy 信息。Traffic routing configuration 通过 Destination Controller 的 gRPC 传递给 Proxy。

向文档提问

按 Enter 发送,按 Shift+Enter 换行。