コース概要
1日目 – コンテナとイメージ管理
コンテナプラットフォームへの入門
- 従来のアプリケーション展開と比較したコンテナベースの展開
- コンテナと仮想マシン
- コンテナランタイムとコンテナエンジン
- Docker、Kubernetes、OpenShift の役割
- 一般的なコンテナプラットフォームアーキテクチャ
- 開発、テスト、本番のワークフロー
コンテナとの連携
- コンテナの実行と管理
- コンテナのライフサイクル
- コンテナの開始、停止、削除
- コンテナ内でのコマンド実行
- 環境変数
- ポートマッピング
- コンテナログ
- リソース使用状況とプロセスの検査
コンテナイメージの構築
- イメージの構造とレイヤー
- Dockerfile および Containerfile の作成
- ベースイメージの選択
- アプリケーション依存関係の追加
- エントリーポイントとコマンドの設定
- イメージのキャッシュ
- イメージサイズの削減
- 再現可能なイメージの構築
コンテナレジストリ
- 公開およびプライベートレジストリ
- イメージのタグ付けとバージョン管理
- イメージのプッシュおよびプル
- イメージの認証
- イメージの保持とクリーンアップ
- 基本的なイメージセキュリティの考慮事項
コンテナネットワークとストレージ
- コンテナネットワークの概念
- ブリッジネットワーク
- ポートの公開
- コンテナ間通信
- バインドマウントとボリューム
- 永続的なコンテナデータ
- バックアップの考慮事項
ハンズオン演習
- コンテナの実行と検査
- アプリケーションイメージの構築
- ポートと環境変数の設定
- レジストリへのイメージのパブリッシュ
- コンテナ外に永続データを保存
2日目 – Kubernetes アーキテクチャとワークロード
Kubernetes の基礎
- コンテナオーケストレーションの目的
- Kubernetes のアーキテクチャ
- コントロールプレーンのコンポーネント
- ワーカーノード
- API サーバー
- スケジューラ
- コントローラー
- クラスターの状態と望ましい状態
- kubectl を使用したクラスターとの通信
Kubernetes リソース
- ポッド
- レプリカセット
- デプロイメント
- 名前空間
- ラベルおよび注釈
- セレクター
- 宣言型リソース定義
- YAML マニフェスト
アプリケーションの展開
- デプロイメントの作成と管理
- ワークロードのスケーリング
- コンテナイメージの更新
- ローリングアップデート
- ロールバック
- デプロイメント履歴
- ワークロードの再起動
- アプリケーションレプリカの管理
アプリケーション設定
- ConfigMaps
- Secrets
- 環境変数
- 設定ファイル
- アプリケーションコードと設定の分離
- 環境固有の設定の管理
リソース管理
- CPU およびメモリ要求量
- CPU およびメモリ制限
- リソースクォータ
- リミットレンジ
- スケジューリングへの影響
- リソース関連の障害の診断
ハンズオン演習
- コンテナ化されたアプリケーションを展開する
- Kubernetes マニフェストの作成と更新
- アプリケーションのスケーリング
- ローリングアップデートとロールバックの実行
- ConfigMaps および Secrets を使用してアプリケーションを設定する
- リソース要求量と制限を適用する
3日目 – Kubernetes ネットワーク、ストレージ、セキュリティ
Kubernetes ネットワーク
- クラスターネットワークモデル
- ポッド間通信
- サービスディスカバリ
- クラスター内の DNS
- ClusterIP サービス
- NodePort サービス
- LoadBalancer サービス
- Ingress の概念
- アプリケーション公開パターン
ネットワークポリシー
- ワークロード間のトラフィックの制御
- イングレスおよびイグレスルール
- 名前空間ベースのトラフィック制御
- ネットワーク接続性のテスト
- サービス通信のトラブルシューティング
永続ストレージ
- 一時的および永続的なストレージ
- ボリューム
- PersistentVolume(PV)
- PersistentVolumeClaim(PVC)
- StorageClasses
- 動的プロビジョニング
- アクセスモード
- リクエームポリシー
- 状態保持型アプリケーションのストレージ
Kubernetes アクセス制御
- 認証と認可の概念
- ロールベースアクセス制御(RBAC)
- Roles および ClusterRoles
- RoleBindings および ClusterRoleBindings
- サービスアカウント
- 最小権限の適用
- 有効な権限の検査
ワークロードセキュリティ
- セキュリティコンテキスト
- 非ルートユーザーでのコンテナの実行
- Linux キャパビリティ
- 読み取り専用ファイルシステム
- シークレットの取り扱い
- イメージの出所追跡性
- 一般的な設定上のリスク
ハンズオン演習
- Kubernetes サービスを使用してアプリケーションを公開する
- Ingress の設定
- ネットワークポリシーを使用してトラフィックを制限する
- 永続ストレージのプロビジョニング
- RBAC 権限の設定
- 適切なセキュリティコンテキストでワークロードを実行する
4日目 – OpenShift 環境での作業
OpenShift への入門
- Kubernetes ベースのアプリケーションプラットフォームとしての OpenShift
- OpenShift 環境における Kubernetes リソース
- OpenShift クラスターアーキテクチャ
- プロジェクトと名前空間
- プラットフォームユーザーおよびサービスアカウント
- ウェブコンソールの操作
- OpenShift CLI の操作
プロジェクトとアクセスの管理
- プロジェクトの作成と管理
- ユーザー権限の割り当て
- プロジェクトレベルのロール
- 管理者アクセス
- リソースクォータ
- リミットレンジ
- サービスアカウント
- プロジェクトリソースの確認
アプリケーションの展開
- コンテナイメージの展開
- アプリケーションワークロードの作成
- デプロイメントの管理
- アプリケーションのスケーリング
- アプリケーションバージョンの更新
- ロールバック
- アプリケーション設定の管理
- Secrets との連携
アプリケーションの公開
- OpenShift におけるサービス
- ルート(Routes)
- TLS の概念
- 内部および外部アプリケーションアクセス
- ホスト名と証明書
- ルートおよびサービスのトラブルシューティング
OpenShift におけるストレージ
- Persistent Volume Claims(PVC)
- StorageClasses
- ワークロードへのストレージのアタッチ
- 状態保持型ワークロード
- ストレージアクセス権限
- ボリュームマウントのトラブルシューティング
スケジューリングとノード管理
- ラベルとセレクター
- ノードセレクター
- ティントとトークレーション
- アフィニティおよびアンチアフィニティの概念
- ワークロードの配置
- ノードのコドーニングとドレーニング
- ノードメンテナンスの考慮事項
ハンズオン演習
- OpenShift 環境へのアクセス
- プロジェクトの作成と設定
- アプリケーションの展開と公開
- ユーザーおよびサービスアカウントアクセスの設定
- 永続ストレージのアタッチ
- 実行中のワークロードのスケーリングと更新
5日目 – 運用、監視、およびトラブルシューティング
プラットフォームの監視
- クラスターおよびアプリケーションの健康状態の監視
- リソースメトリクス
- ノードの健康状態
- ワークロードのステータス
- 容量とリソース使用率
- パフォーマンス制約の特定
ログとイベント
- コンテナログ
- ポッドログ
- 以前のコンテナログ
- Kubernetes イベント
- アプリケーションおよびプラットフォームメッセージ
- 運用データのフィルタリングと解釈
ヘルスチェック
- スタートアッププローブ
- レディネスプローブ
- ライブネスプローブ
- 有用なヘルスエンドポイントの設計
- プローブ障害の診断
- 不要なアプリケーション再起動の防止
ワークロードのトラブルシューティング
- 保留中のポッド
- イメージプルの失敗
- クラッシュループ
- 誤設定された環境変数
- マウントの失敗
- 不十分なリソース
- 権限エラー
- サービスおよびルートの接続性問題
- DNS の問題
- アプリケーションの起動失敗
運用セキュリティ
- 権限の確認
- サービスアカウントの使用
- 資格情報の安全な取り扱い
- イメージセキュリティプラクティス
- ネットワーク分離
- プラットフォームアクセス監査
- 最小権限の原則の適用
メンテナンスとライフサイクル管理
- 定期的なプラットフォームチェック
- ノードメンテナンス
- アプリケーションバックアップの考慮事項
- 設定バックアップ
- 更新計画
- 変更管理
- 更新テスト
- ロールバック計画
- 災害復旧の概念
最終実践ワークショップ
参加者はエンドツーエンドの運用シナリオを完了します:
- コンテナイメージの構築とタグ付け。
- イメージをレジストリにパブリッシュ。
- アプリケーションを Kubernetes または OpenShift に展開。
- アプリケーション設定と資格情報の構成。
- アプリケーションの公開。
- 永続ストレージのアタッチ。
- アクセス権限の設定。
- ヘルスチェックの追加。
- アプリケーションのスケーリングと更新。
- 導入された障害の診断と解決。
コース形式
- インタラクティブな講義と技術的な議論。
- 講師によるデモンストレーション。
- 広範なハンズオン演習。
- シナリオベースの運用管理およびトラブルシューティングワークショップ。
- コンテナ、Kubernetes、OpenShift 環境での実践的な作業。
コースのカスタマイズオプション
- このコースは、参加者の既存インフラストラクチャ、クラウドプロバイダー、およびコンテナツールセットに合わせて適応させることができます。
- Docker、Kubernetes、OpenShift のトピックのバランスは、チームの経験に応じて調整可能です。
- 実践的な演習は、組織のアプリケーション、展開プロセス、および運用要件に合わせて調整できます。
商標に関する_notice_
OpenShift は Red Hat, Inc. の商標です。この独立して開発されたトレーニングは、Red Hat と提携しておらず、Red Hat から承認または許可を受けたものではありません。
要求
参加者は以下を持っている必要があります:
- Linux コマンドラインの使用経験。
- 基本的なシステム管理または DevOps の知識。
- ネットワーク概念に関する一般的な理解。
- ソフトウェア展開プロセスへの親しみ。
Docker、Kubernetes、または OpenShift への過去の経験は役に立ちますが、必須ではありません。
お客様の声 (7)
レダは説明をわかりやすく簡素化しました
Eric Van Wyk
コース - Docker, Kubernetes and OpenShift 3 for Administrators
機械翻訳
ラボが最高でした。非常に実践的で、手を動かして学ぶ経験が得られます。個人的には、これがコースの理解とカバーされた概念の適用にとって最も効果的な手段だと思います。
Hishaam Johnstone
コース - Docker, Kubernetes and OpenShift 3 for Administrators
機械翻訳
助けたいという意欲と、不確かな点についてはさらに説明しようとする姿勢が大変良かったです
Letlotlo Miffi
コース - Docker, Kubernetes and OpenShift 3 for Administrators
機械翻訳
ア드리アノは、その科目を深く研究しました。これは私が最も好むスタイルです。つまり、コマンドよりもその仕組みについて詳しく説明しています。議論されたシナリオは実践的な例でよく補強されており、提示された内容の理解に大いに役立ちました。
Mariusz BANASZCZYK - Sopra Steria
コース - Docker, Kubernetes and OpenShift for Administrators
機械翻訳
アドリアーノに関する深い知識。基本概念の説明
Tomasz Szalankiewicz - LPP SA
コース - Docker, Kubernetes and OpenShift for Administrators
機械翻訳
プレゼンターの話し方を総じて好ましく感じました。
Josif Kovacevic - ANZ
コース - Docker, Kubernetes and OpenShift for Administrators
機械翻訳
Adrian clearly knows and enjoys this technology.
Tom Edginton - National Oceanography Centre
コース - Docker, Kubernetes and OpenShift for Administrators
機械翻訳