目次
SA.05.1 仮想マシンの設計と管理
重要度:☆☆☆(3)
概要
- 仮想化の基本技術を理解し、性能検討やトラブルシューティングができる。
- 仮想マシン及び仮想ディスクの移行など、仮想環境の管理ができる。
詳細
- 仮想マシンの動作や性能に関わる要素を理解している。
- オーバーコミット
- NUMA
- 仮想マシンのリソース割り当てに関する手法のメリット、デメリット、制約を理解し、有効利用する。
- pinning (ピニング)
- スケジューリング、レイテンシ設定、優先順位設定
- 仮想化支援技術や仮想デバイスについて理解し、性能検討やトラブルシューティングに役立てる。
- x86 アーキテクチャによる仮想化支援技術 (Intel VT-x、AMD-V) を利用する Linux の機能
- x86 アーキテクチャにおける OS レベルのプロセス保護機能 (リングプロテクション)
- virtio の動作方法及び利点欠点
- 仮想ディスクの主要な形式 (QCOW2、RAW) の特徴
- 目的に合わせて既存資産を移行する。
- 物理環境から仮想環境への移行: virt-p2v
- 仮想環境間の移行: virt-v2v
- 仮想ディスクのサイズ変更
SA.05.2 コンテナの設計とビルド
重要度:☆☆☆(3)
概要
- コンテナに対する詳細な設定 (連携情報、リソース割り当てなど) の仕組みと方法を理解している。
- コンテナイメージの構造について理解し、適切にビルド、更新、管理できる。
- コンテナの用途に応じて適切なボリュームを使用できる。
詳細
- コンテナのリソース割り当てや権限設定の仕組みを理解している。
- 設定対象: CPU、メモリ、I/O、プロセス ID
- これを実現する Linux カーネルの機能
- コンテナイメージの構造について理解している。
- イメージレイヤ、コンテナレイヤ
- 複数コンテナにおけるイメージの共有
- イメージとホストのファイルシステムとの関係
- サイズやセキュリティが考慮されたコンテナイメージをビルドする。また、これらを実現する Dockerfile の記載方法を理解している。
- 必要十分な親イメージの選択: scratch、distroless
- 構成物 (apt/yum/dnf パッケージなど) のバージョン指定
- 不要ファイルの除外: ダウンロードキャッシュのクリア、マルチステージビルドなど
- コンテナに対して外部ボリュームをマウントし、目的に合わせて複数コンテナ間やホスト間でのデータを共有・永続化する。
- bind mount
- tmpfs
- Docker における詳細なコンテナ操作を理解している。
- 起動時の環境変数割り当て
- 複数コンテナの一括管理: docker compose
SA.05.3 コンテナオーケストレーション
重要度:☆☆☆(3)
概要
- コンテナオーケストレーションの基本動作を理解し、コンテナベースのシステム構成を計画できる。
詳細
- オーケストレーションエンジンによるコンテナ制御の基本動作とそのユースケースを理解している。
- 宣言的 API、突き合わせループ
- 障害時の再スケジューリング
- オートスケール
- オーケストレーションエンジンと各種リソースを結びつけるインターフェースの構成を理解している。
- CRI、CNI、CSI
- Kubernetes の動作と管理に関わる構成要素の概要を知っている。
- Pod、および Pod を管理するワークロードリソース: Service、Deployment、StatefulSet
- コントロールプレーン: kube-apiserver、kube-scheduler、etcd
- データプレーン (ノード): kubelet、kube-proxy
- コマンド: kubectl、kubeadm
- サービスメッシュに関わる主要な OSS について、基本動作やオーケストレーションエンジンとの連携の概要を理解している。
- Envoy
- Istio