- Authors

- Name
- Youngju Kim
- @fjvbn20031
- KCNA 追加実践問題30問
- 問題1. CNCF Graduatedプロジェクト
- 問題2. 12-Factor Appの原則
- 問題3. Sidecarパターン
- 問題4. Ambassadorパターン
- 問題5. サービスメッシュの概念
- 問題6. GitOpsと従来のCI/CDの違い
- 問題7. eBPF技術
- 問題8. WebAssembly(Wasm)とKubernetes
- 問題9. Backstage
- 問題10. Crossplane
- 問題11. Dapr
- 問題12. CNCF Landscapeカテゴリ
- 問題13. OCI(Open Container Initiative)
- 問題14. サーバーレスとKubernetes
- 問題15. FluxとArgoCDの比較
- 問題16. CNCFプロジェクトの成熟度段階
- 問題17. オブザーバビリティの三本柱
- 問題18. OpenTelemetry
- 問題19. Adapterパターン
- 問題20. Initコンテナパターン
- 問題21. CNCFのCloud Native定義
- 問題22. HelmとKustomizeの比較
- 問題23. CRI(Container Runtime Interface)
- 問題24. CNI(Container Network Interface)
- 問題25. CSI(Container Storage Interface)
- 問題26. Istio Ambient Mesh
- 問題27. Platform Engineering
- 問題28. Ciliumのコア技術
- 問題29. Serverless on Kubernetes
- 問題30. CNCF TAG(Technical Advisory Group)
- まとめ
KCNA 追加実践問題30問
KCNA試験のコアドメインであるCNCFエコシステム、クラウドネイティブアーキテクチャパターン、サービスメッシュ、GitOps、最新技術トレンドを深く学習するための追加問題30問です。
問題1. CNCF Graduatedプロジェクト
次のうち、CNCF Graduatedプロジェクトでないものは?
- A) Prometheus
- B) Envoy
- C) Backstage
- D) containerd
正解と解説
正解: C) Backstage
BackstageはCNCF Incubatingプロジェクトです。Prometheus、Envoy、containerdはすべてGraduatedプロジェクトです。CNCFプロジェクトはSandbox、Incubating、Graduatedの3段階で成熟度が分類されます。
問題2. 12-Factor Appの原則
12-Factor App方法論の「設定(Config)」に関する正しい説明は?
- A) 設定はコードと一緒にバージョン管理システムに保存すべきである
- B) 設定は環境変数を通じて注入すべきである
- C) 設定はXMLファイルでのみ管理すべきである
- D) 設定はアプリケーションバイナリに含めるべきである
正解と解説
正解: B) 設定は環境変数を通じて注入すべきである
12-Factor AppのIII. Config原則は、設定をコードから完全に分離し、環境変数を通じて注入することを推奨します。これにより、同じコードベースがさまざまな環境(開発、ステージング、本番)にデプロイできます。
問題3. Sidecarパターン
KubernetesにおけるSidecarパターンの代表的なユースケースは?
- A) メインコンテナのCPUを2倍にする
- B) ログ収集、プロキシ、監視エージェントをメインコンテナと一緒に配置する
- C) Podを別のノードに自動移行する
- D) メインコンテナを自動的に再起動する
正解と解説
正解: B) ログ収集、プロキシ、監視エージェントをメインコンテナと一緒に配置する
Sidecarパターンは、メインアプリケーションコンテナと同じPodに補助コンテナを配置し、ロギング、プロキシ、設定同期などの付加機能を提供します。IstioのEnvoyプロキシが代表的な例です。
問題4. Ambassadorパターン
Ambassadorパターンの主な役割は?
- A) アプリケーションの外部通信を仲介するプロキシの役割
- B) Pod間のロードバランシングを行う
- C) クラスタのDNSを管理する
- D) ストレージボリュームをマウントする
正解と解説
正解: A) アプリケーションの外部通信を仲介するプロキシの役割
Ambassadorパターンは、アプリケーションに代わって外部サービスとの通信を仲介します。接続リトライ、ロギング、認証などを処理し、レガシープロトコル変換やサーキットブレーカーの実装に活用されます。
問題5. サービスメッシュの概念
サービスメッシュのデータプレーン(Data Plane)が果たす役割は?
- A) ポリシー定義とサービスディスカバリの構成
- B) 各サービスインスタンスの横でネットワークトラフィックを実際に処理する
- C) 証明書の発行と鍵管理を行う
- D) クラスタのアップグレードを自動化する
正解と解説
正解: B) 各サービスインスタンスの横でネットワークトラフィックを実際に処理する
サービスメッシュはコントロールプレーンとデータプレーンで構成されます。データプレーン(例:Envoyプロキシ)は各サービスインスタンスの横に配置され、実際のネットワークトラフィックのルーティング、ロードバランシング、mTLS、オブザーバビリティなどを処理します。
問題6. GitOpsと従来のCI/CDの違い
GitOps方式が従来のPush型CI/CDと異なるコア特徴は?
- A) Jenkinsを使用する
- B) Gitを単一の信頼できるソースとして使用し、Pull型でクラスタに同期する
- C) 手動デプロイのみを許可する
- D) コンテナイメージをビルドしない
正解と解説
正解: B) Gitを単一の信頼できるソースとして使用し、Pull型でクラスタに同期する
GitOpsはGitリポジトリを望ましい状態のSingle Source of Truthとし、エージェント(例:Flux、ArgoCD)がクラスタの状態をGitと継続的に同期します。Push型CI/CDと異なり、クラスタ自身が望ましい状態をPullします。
問題7. eBPF技術
eBPF(extended Berkeley Packet Filter)に関する正しい説明は?
- A) コンテナランタイムの一種である
- B) Linuxカーネル内で安全にプログラムを実行できる技術である
- C) Kubernetesのストレージドライバである
- D) DNSサーバの実装である
正解と解説
正解: B) Linuxカーネル内で安全にプログラムを実行できる技術である
eBPFはLinuxカーネル内でサンドボックスされたプログラムを実行できる技術です。カーネルソースコードの修正やカーネルモジュールのロードなしに、ネットワーキング、セキュリティ、オブザーバビリティ機能を実装できます。Cilium、Falco、Tetragonなどがこの技術を活用しています。
問題8. WebAssembly(Wasm)とKubernetes
WebAssemblyをKubernetesで活用するメリットは?
- A) 従来のコンテナよりイメージサイズが常に大きい
- B) ミリ秒単位のコールドスタートとサンドボックス分離を提供する
- C) x86アーキテクチャでのみ動作する
- D) ネットワーク機能を使用できない
正解と解説
正解: B) ミリ秒単位のコールドスタートとサンドボックス分離を提供する
Wasmはミリ秒単位のコールドスタート、小さなバイナリサイズ、強力なサンドボックス分離を提供します。SpinKube、WasmEdgeなどを通じてKubernetesでWasmワークロードを実行でき、サーバーレスやエッジコンピューティングに適しています。
問題9. Backstage
Backstageのコア機能は?
- A) コンテナイメージビルドツール
- B) 内部デベロッパーポータル(IDP)として、サービスカタログ、テンプレート、ドキュメントを統合管理する
- C) Kubernetesクラスタ監視専用ツール
- D) CI/CDパイプライン実行エンジン
正解と解説
正解: B) 内部デベロッパーポータル(IDP)として、サービスカタログ、テンプレート、ドキュメントを統合管理する
BackstageはSpotifyで始まったCNCF Incubatingプロジェクトで、内部デベロッパーポータルを構築するためのフレームワークです。ソフトウェアカタログ、ソフトウェアテンプレート、TechDocsなどのコア機能を提供し、プラグインシステムで拡張可能です。
問題10. Crossplane
Crossplaneの主な役割は?
- A) サービスメッシュの実装
- B) Kubernetes APIを通じてクラウドインフラを宣言的にプロビジョニングし管理する
- C) ログ収集と分析ツール
- D) コンテナイメージレジストリ
正解と解説
正解: B) Kubernetes APIを通じてクラウドインフラを宣言的にプロビジョニングし管理する
CrossplaneはKubernetesを汎用コントロールプレーンとして拡張し、AWS、GCP、Azureなどのクラウドリソースをカスタムリソースとして管理できるようにします。Compositionを通じてチーム別のカスタマイズされたインフラ抽象化を提供できます。
問題11. Dapr
Dapr(Distributed Application Runtime)のコア概念は?
- A) コンテナオーケストレーションツール
- B) 分散アプリケーションに必要なビルディングブロック(状態管理、Pub/Sub、サービス呼び出しなど)をサイドカーで提供する
- C) Kubernetesクラスタインストールツール
- D) 静的コード分析ツール
正解と解説
正解: B) 分散アプリケーションに必要なビルディングブロック(状態管理、Pub/Sub、サービス呼び出しなど)をサイドカーで提供する
Daprはマイクロサービス開発を簡素化するランタイムで、サイドカーパターンを使用して状態管理、Pub/Subメッセージング、サービス呼び出し、バインディング、アクターモデルなどのビルディングブロックを言語に依存せずに提供します。
問題12. CNCF Landscapeカテゴリ
CNCF Landscapeの「Provisioning」カテゴリに属するツールは?
- A) Prometheus
- B) Terraform
- C) Jaeger
- D) Fluentd
正解と解説
正解: B) Terraform
CNCF LandscapeのProvisioningカテゴリにはインフラ自動化、コンテナレジストリ、セキュリティ・コンプライアンスツールなどが含まれます。Terraformはインフラプロビジョニングツールであり、Prometheusは監視、Jaegerは分散トレーシング、Fluentdはロギングに該当します。
問題13. OCI(Open Container Initiative)
OCI標準が定義する仕様に該当しないものは?
- A) Image Spec
- B) Runtime Spec
- C) Distribution Spec
- D) Orchestration Spec
正解と解説
正解: D) Orchestration Spec
OCIはImage Spec(コンテナイメージ形式)、Runtime Spec(コンテナランタイム動作)、Distribution Spec(イメージ配布API)の3つの仕様を定義します。オーケストレーションはOCIの範囲に含まれません。
問題14. サーバーレスとKubernetes
Kubernetes上でサーバーレスワークロードを実行するためのCNCFプロジェクトは?
- A) Knative
- B) Longhorn
- C) Thanos
- D) Harbor
正解と解説
正解: A) Knative
KnativeはKubernetes上でサーバーレスワークロードをデプロイ、管理、スケーリングするためのプラットフォームです。Serving(オートスケーリング、ゼロへのスケール)、Eventing(イベント駆動アーキテクチャ)コンポーネントで構成され、CNCF Incubatingプロジェクトです。
問題15. FluxとArgoCDの比較
FluxとArgoCDの両方がサポートする機能は?
- A) HelmチャートとKustomizeベースのGitOpsデプロイ
- B) コンテナイメージのビルド
- C) ログ収集と分析
- D) クラスタのプロビジョニング
正解と解説
正解: A) HelmチャートとKustomizeベースのGitOpsデプロイ
FluxとArgoCDはどちらもGitリポジトリに基づいてHelmチャート、Kustomize、プレーンYAMLマニフェストをKubernetesクラスタに同期するGitOpsツールです。ArgoCDはWeb UIをデフォルトで提供し、FluxはGitベースの自動化に集中しています。
問題16. CNCFプロジェクトの成熟度段階
CNCFプロジェクトがGraduated状態に昇格するための条件として適切なものは?
- A) GitHubスター1,000以上
- B) セキュリティ監査の完了、最低2つ以上の本番使用事例
- C) 単一企業のメンテナーだけで十分である
- D) プロジェクト開始から1年以上経過する必要がある
正解と解説
正解: B) セキュリティ監査の完了、最低2つ以上の本番使用事例
CNCF Graduatedプロジェクトは独立したセキュリティ監査を完了し、多様な組織での本番使用事例を実証する必要があります。また、複数組織のメンテナー、健全なガバナンス構造、コミュニティへの参加も求められます。
問題17. オブザーバビリティの三本柱
クラウドネイティブオブザーバビリティの3つのコアシグナル(Three Pillars)は?
- A) CPU、メモリ、ディスク
- B) メトリクス(Metrics)、ログ(Logs)、分散トレース(Traces)
- C) 可用性、スケーラビリティ、セキュリティ
- D) DNS、HTTP、gRPC
正解と解説
正解: B) メトリクス(Metrics)、ログ(Logs)、分散トレース(Traces)
オブザーバビリティの三本柱はメトリクス(システム状態の数値的測定)、ログ(イベント記録)、分散トレース(リクエストの全経路追跡)です。OpenTelemetryはこの3つを統合するCNCFプロジェクトです。
問題18. OpenTelemetry
OpenTelemetryに関する正しい説明は?
- A) メトリクスストレージである
- B) ベンダー中立的なオブザーバビリティデータ収集フレームワークである
- C) ログ可視化ツールである
- D) サービスメッシュの実装である
正解と解説
正解: B) ベンダー中立的なオブザーバビリティデータ収集フレームワークである
OpenTelemetry(OTel)はメトリクス、ログ、分散トレースデータを生成、収集、送信するためのベンダー中立的フレームワークです。SDK、API、Collectorなどを提供し、CNCFでKubernetesの次に活発なプロジェクトです。
問題19. Adapterパターン
クラウドネイティブAdapterパターンの目的は?
- A) コンテナのリソース制限を調整する
- B) メインコンテナの出力を標準形式に変換する
- C) Podを自動的に複製する
- D) クラスタのネットワークポリシーを管理する
正解と解説
正解: B) メインコンテナの出力を標準形式に変換する
Adapterパターンはメインコンテナの出力(ログ、メトリクスなど)を外部システムが要求する標準形式に変換するサイドカーコンテナを使用します。例えば、アプリケーションのカスタムログをJSON形式に変換したり、Prometheusメトリクス形式で公開できます。
問題20. Initコンテナパターン
Initコンテナに関する正しい説明は?
- A) メインコンテナと同時に実行される
- B) メインコンテナが開始する前に順次実行され、完了してからメインコンテナが開始される
- C) メインコンテナが終了した後に実行される
- D) Sidecarコンテナと同一である
正解と解説
正解: B) メインコンテナが開始する前に順次実行され、完了してからメインコンテナが開始される
Initコンテナはメインコンテナの開始前に順番に実行され、各Initコンテナが正常に完了してから次のステップに進みます。データベースマイグレーション、設定ファイルの生成、依存関係の待機などに活用されます。
問題21. CNCFのCloud Native定義
CNCFが定義するCloud Nativeのコア特性でないものは?
- A) 疎結合なシステム(Loosely Coupled)
- B) 弾力的で管理可能(Resilient and Manageable)
- C) モノリシックアーキテクチャ必須(Monolithic Architecture Required)
- D) 観察可能(Observable)
正解と解説
正解: C) モノリシックアーキテクチャ必須(Monolithic Architecture Required)
CNCFはCloud Nativeをコンテナ、サービスメッシュ、マイクロサービス、不変インフラ、宣言的APIなどを活用して、疎結合で弾力的で管理可能で観察可能なシステムを構築するアプローチと定義しています。
問題22. HelmとKustomizeの比較
HelmとKustomizeの主な違いは?
- A) Helmはテンプレートベース、Kustomizeはオーバーレイ(パッチ)ベースである
- B) KustomizeだけがKubernetesで使用できる
- C) HelmはYAMLをサポートしない
- D) 両方のツールは同じアプローチを使用する
正解と解説
正解: A) Helmはテンプレートベース、Kustomizeはオーバーレイ(パッチ)ベースである
HelmはGoテンプレートを使用してパラメータ化されたチャートを作成し、Kustomizeはベースのマニフェストの上にオーバーレイ(パッチ)を適用して環境別の構成を管理します。Kustomizeはkubectlに内蔵されており、両方のツールを一緒に使用することもできます。
問題23. CRI(Container Runtime Interface)
Kubernetes CRIに関する正しい説明は?
- A) コンテナイメージをビルドするためのインターフェース
- B) kubeletとコンテナランタイム間の通信を標準化するインターフェース
- C) ネットワークプラグインのためのインターフェース
- D) ストレージドライバのためのインターフェース
正解と解説
正解: B) kubeletとコンテナランタイム間の通信を標準化するインターフェース
CRIはkubeletがさまざまなコンテナランタイム(containerd、CRI-Oなど)と通信できるように標準化されたgRPCインターフェースを定義します。Kubernetes 1.24からDockerはCRIを直接実装していないため、dockershimが削除されました。
問題24. CNI(Container Network Interface)
CNIプラグインの役割は?
- A) コンテナイメージの保存
- B) Podにネットワークインターフェースを割り当てIPを付与する
- C) コンテナランタイムを管理する
- D) ストレージボリュームをマウントする
正解と解説
正解: B) Podにネットワークインターフェースを割り当てIPを付与する
CNI(Container Network Interface)はコンテナのネットワーク接続を管理するための標準です。Calico、Cilium、Flannel、WeaveなどのCNIプラグインがPodにネットワークインターフェースを割り当て、IPアドレスを付与し、Pod間通信を可能にします。
問題25. CSI(Container Storage Interface)
CSIの主な目的は?
- A) コンテナセキュリティを強化する
- B) ストレージベンダーがKubernetesと独立してストレージプラグインを開発できるようにする
- C) ネットワークポリシーを定義する
- D) コンテナランタイムを交換する
正解と解説
正解: B) ストレージベンダーがKubernetesと独立してストレージプラグインを開発できるようにする
CSIはストレージベンダーがKubernetesのコアコードを修正せずに独自のストレージドライバを開発・デプロイできる標準インターフェースです。Longhorn、Rook-Ceph、EBS CSI DriverなどがCSIを実装しています。
問題26. Istio Ambient Mesh
Istio Ambient Meshのコア特徴は?
- A) サイドカープロキシを必須で使用する
- B) サイドカーなしでztunnelとwaypointプロキシを通じてサービスメッシュ機能を提供する
- C) Kubernetesなしで動作する
- D) TCPトラフィックのみサポートする
正解と解説
正解: B) サイドカーなしでztunnelとwaypointプロキシを通じてサービスメッシュ機能を提供する
Istio Ambient Meshはサイドカーを使用しない新しいデータプレーンモードです。ノードレベルのztunnel(L4処理、mTLS)とオプションのwaypointプロキシ(L7処理)を通じてリソースオーバーヘッドを削減し、運用を簡素化します。
問題27. Platform Engineering
Platform Engineeringのコア目標は?
- A) すべての開発者にインフラを直接管理させる
- B) セルフサービスの内部デベロッパープラットフォーム(IDP)を構築して開発者体験と生産性を向上させる
- C) 運用チームの役割を完全に排除する
- D) 単一のプログラミング言語のみ使用を強制する
正解と解説
正解: B) セルフサービスの内部デベロッパープラットフォーム(IDP)を構築して開発者体験と生産性を向上させる
Platform Engineeringはインフラとツールの複雑さを抽象化し、開発者がセルフサービスで必要なリソースを使用できる内部デベロッパープラットフォーム(IDP)を構築する分野です。Backstage、Crossplane、ArgoCDなどがIDPの構成要素として活用されます。
問題28. Ciliumのコア技術
Ciliumが従来のCNIプラグインと差別化されるコア技術は?
- A) iptablesベースのパケットフィルタリング
- B) eBPFを活用したカーネルレベルのネットワーキングとオブザーバビリティ
- C) ユーザースペースプロキシベースの処理
- D) VLANベースのネットワーク分離
正解と解説
正解: B) eBPFを活用したカーネルレベルのネットワーキングとオブザーバビリティ
CiliumはeBPF技術を活用してカーネルレベルでネットワーキング、セキュリティ、オブザーバビリティを処理します。iptablesを使用せずeBPFプログラムでパケット処理を行い、高いパフォーマンスときめ細かいポリシー制御を提供します。
問題29. Serverless on Kubernetes
Kubernetes上のサーバーレスにおける「Scale to Zero」の意味は?
- A) クラスタのすべてのノードを停止する
- B) リクエストがない場合にワークロードのPod数を0にスケールダウンしてリソースを節約する
- C) メモリ使用量を0にする
- D) すべてのネットワークトラフィックを遮断する
正解と解説
正解: B) リクエストがない場合にワークロードのPod数を0にスケールダウンしてリソースを節約する
Scale to Zeroはトラフィックがない場合にPod数を0に縮小し、新しいリクエストが来ると自動的にPodを起動する機能です。Knative Servingがこの機能を提供し、KEDAも特定のイベントソースに対して類似の機能をサポートします。
問題30. CNCF TAG(Technical Advisory Group)
CNCF TAGの役割は?
- A) CNCFプロジェクトのコードを直接開発する
- B) 特定の技術領域に対するガイドライン、推奨事項、エコシステムの方向性を提示する
- C) CNCFイベントのチケットを販売する
- D) Kubernetesリリースを管理する
正解と解説
正解: B) 特定の技術領域に対するガイドライン、推奨事項、エコシステムの方向性を提示する
CNCF TAG(Technical Advisory Group)はセキュリティ、オブザーバビリティ、ネットワーク、ランタイム、アプリデリバリーなど特定の技術領域についてコミュニティにガイドラインと推奨事項を提供します。TAG Security、TAG Observability、TAG Networkなどがあります。
まとめ
この30問はKCNA試験のコアドメインであるKubernetes基礎、コンテナオーケストレーション、クラウドネイティブアーキテクチャ、クラウドネイティブオブザーバビリティ、クラウドネイティブアプリケーションデリバリーを深く学習するために構成されました。実際の試験ではCNCFエコシステムに対する幅広い理解が求められるため、CNCF Landscapeと各プロジェクトの役割を丁寧に復習してください。