開発者のための学習パス
用意されている学習パスに従って、高可用性のコンテナー化アプリを Red Hat OpenShift クラスターにデプロイし、Red Hat OpenShift on IBM Cloud の強力なツールを使用して、ゾーンやリージョンをまたいでアプリのワークロードを自動化、分離、保護、管理、監視することができます。
クラスターへのアクセス
まずは、クラスターの操作を始めるために、CLI をセットアップしてクラスターにアクセスします。
- CLI のセットアップ: クラスターの作成と操作に必要な CLI をセットアップします。 クラスタで作業する際には、 コマンド・リファレンスを 参照し、 CLI変更ログで CLIバージョンの更新を追跡してください。
- ユーザー許可: クラスターにアクセスするために適切な IBM Cloud IAM の役割をクラスター管理者から付与されていることを確認します。
- クラスター・アクセス: パブリックまたはプライベートのクラウド・サービス・エンドポイントを使用してクラスターにアクセスします。
お困りですか? クラスターおよびマスターのトラブルシューティングおよびワーカー・ノードのトラブルシューティングを参照してください。
デプロイメントの計画
アプリをデプロイする前に、適切な方法でアプリにアクセスできるように、また、アプリに他のサービスを統合できるように、アプリのセットアップを決定しておく必要があります。
- Kubernetes ネイティブ: Kubernetes ネイティブ・アプリを開発するための戦略を計画します。
- 高可用性: 高可用性デプロイメントのための戦略を計画します。
サーバーレスをお探しですか? Code Engine をお試しください。
アプリの開発
Kubernetes オブジェクトの構成を宣言する YAML ファイルでアプリを構成し、アプリのバージョン管理戦略を計画します。
- アプリを開発します。
- Kubernetes ネイティブ・アプリのデプロイメントの基本を確認します。
- 内部、パブリック、またはプライベートのレジストリーにあるイメージからアプリ・コンテナーを作成します。
- YAML ファイルにアプリの要件を指定します。このファイルは、Kubernetes オブジェクトの構成を宣言します。
- アプリのバージョン管理を行います。
- 開発環境、テスト環境、実稼働環境など、複数の環境用にカスタマイズした複数の構成を計画するには、Kustomize ツールを使用して構成 YAML ファイルを管理します。
- 複数のクラスターで、パブリック環境とプライベート環境で、または複数のクラウド・プロバイダーでアプリを実行する場合は、デプロイメントの自動化に役立つようにアプリケーションをパッケージ化します。
お困りですか? アプリと統合のトラブルシューティングを参照してください。
アプリのデプロイ
アプリの構成ファイルを実行してアプリをクラスターにデプロイします。
お困りですか? アプリと統合のトラブルシューティングを参照してください。
テスト、ロギング、モニタリング
アプリのパフォーマンス・テストを実施するときには、ロギングとモニタリングをセットアップしておくと、問題のトラブルシューティング、ワークロードの可視化、アプリの正常性とパフォーマンスの向上に役立ちます。
テスト環境で、さまざまな非理想的なシナリオを意図的に作成します。例えば、ゾーン内のすべてのワーカー・ノードを削除することでゾーン障害を再現します。 ログとメトリックを参照して、アプリがどのように復旧するかを確認します。
- アクセスのテスト: ワーカー・ノードにパブリックまたはプライベートの NodePort を作成して、アプリへのアクセスをテストします。
- ロギングとモニタリングのオプションの理解: ニーズに応じて、アプリとクラスターのロギング、監査ロギング、モニタリングのためのソリューションを選択します。
- コンソールによるモニタリング: アプリ・リソースに関する情報を表示するには、OpenShift Web コンソールを開きます。
- IBM Cloud Logs および Monitoring: クラスターの正常性をモニターするには、ログを IBM Cloud Logs に、メトリックを IBM Cloud Monitoring に転送します。
アプリの更新
ユーザーにダウン時間を強いることなくアプリのローリング更新やロールバックを実行します。
- 更新の戦略: アプリを最新に保つための戦略を計画します。
- 更新のセットアップ:
- ローリング更新をデプロイメント・ファイルに追加します。
- クラスターの継続的デリバリー・パイプラインをセットアップします。
- スケーリング: 水平ポッド自動スケーリングを有効にして、CPU に基づいてアプリのインスタンス数を自動的に増減します。
アプリの保護
Kubernetes シークレットを使用して資格情報や鍵などの機密情報を保管し、Kubernetes シークレット内のデータを暗号化すると、無許可ユーザーがアプリの機密情報にアクセスすることを防止できます。
- シークレット: 個人情報や機密情報を、アプリがアクセスできる Kubernetes シークレットに保管します。
- シークレットの暗号化: KMS プロバイダーをセットアップ し、 シークレットを暗号化して暗号化を検証 します。
アプリの公開
クラスターのアプリをインターネットでパブリックに公開するか、プライベート・ネットワークのみでプライベートに公開します。
- サービス・ディスカバリーを計画します。
- Kubernetes サービス・ディスカバリーの基本を理解します。
- アプリへの着信トラフィックの要件に合ったアプリ公開サービスを選択します。
- アプリを公開します。
-
ロード・バランサー:
- クラシック・クラスター:
- NLB 1.0 または NLB 2.0 を作成します。
- NLB の DNS サブドメインを登録します。
- VPC クラスター: VPC ロード・バランサーをセットアップします。
- クラシック・クラスター:
-
Ingress: パブリック・ネットワークまたはプライベート・ネットワークの Ingress を構成します。
-
経路: サブドメインでアプリを公開するための経路を作成します。
-
お困りですか? Ingress のトラブルシューティングおよびロード・バランサーのトラブルシューティングを参照してください。
アプリ・ストレージの追加
- 要件: ストレージ・ソリューションの要件を決定します。
- ソリューションの選択: ストレージ要件を使用して、 オプション を比較してストレージ・ソリューションを選択します。
お困りですか? 永続ストレージ・ソリューションに関するトラブルシューティング・ページを参照してください。
統合の追加
さまざまな外部サービスやクラスター内のカタログ・サービスをアプリと統合して、アプリの機能を拡張します。
-
サポートされている統合を確認します。
-
クラスターにサービスを追加します。クラスター管理者に、クラスターに統合を追加するように依頼してください。
-
アプリからサービスにアクセスします。アプリがサービスにアクセスできることを確認します。 例えば、アプリから IBM Cloud のサービス・インスタンスにアクセスするには、Kubernetes シークレットに保管したサービス資格情報をアプリで使用できるようにする必要があります。
お困りですか? アプリと統合のトラブルシューティングを参照してください。 {: tip}f