開発者のための学習パス

用意されている学習パスに従って、高可用性のコンテナー化アプリを Kubernetes クラスターにデプロイし、IBM Cloud Kubernetes Service の強力なツールを使用して、ゾーンやリージョンをまたいでアプリのワークロードを自動化、分離、保護、管理、監視することができます。

クラスターへのアクセス

まずは、クラスターの操作を始めるために、CLI をセットアップしてクラスターにアクセスします。

  1. CLI のセットアップ: クラスターの作成と操作に必要な CLI をセットアップします。 クラスタを運用する際は、『 コマンドリファレンス 』を参照し、CLIのバージョン更新については『 CLI変更履歴 』で確認してください。
  2. ユーザー許可: クラスターにアクセスするために適切な IBM Cloud IAM の役割をクラスター管理者から付与されていることを確認します。
  3. クラスター・アクセス: パブリックまたはプライベートのクラウド・サービス・エンドポイントを使用してクラスターにアクセスします。

お困りですか? クラスターおよびマスターのトラブルシューティングおよびワーカー・ノードのトラブルシューティングを参照してください。

デプロイメントの計画

アプリをデプロイする前に、適切な方法でアプリにアクセスできるように、また、アプリに他のサービスを統合できるように、アプリのセットアップを決定しておく必要があります。

  1. Kubernetes ネイティブ: Kubernetes ネイティブ・アプリを開発するための戦略を計画します
  2. 高可用性: 高可用性デプロイメントのための戦略を計画します

サーバーレスをお探しですか? Code Engine をお試しください。

アプリの開発

Kubernetes オブジェクトの構成を宣言する YAML ファイルでアプリを構成し、アプリのバージョン管理戦略を計画します。

  1. アプリを開発します。
    1. Kubernetes ネイティブ・アプリのデプロイメントの基本を確認します。
    2. パブリックまたはプライベートのイメージ・レジストリーにあるイメージからアプリ・コンテナーを作成します。
    3. YAML ファイルにアプリの要件を指定します。このファイルは、Kubernetes オブジェクトの構成を宣言します。
  2. アプリのバージョン管理を行います。
    1. 開発、テスト、本番環境など、複数の環境に合わせて構成をカスタマイズし、構成YAMLファイルを管理します。
    2. 複数のクラスターで、パブリック環境とプライベート環境で、または複数のクラウド・プロバイダーでアプリを実行する場合は、デプロイメントの自動化に役立つようにアプリケーションをパッケージ化します

お困りですか? アプリと統合のトラブルシューティングを参照してください。

アプリのデプロイ

アプリの構成ファイルを実行してアプリをクラスターにデプロイします。

お困りですか? アプリと統合のトラブルシューティングを参照してください。

テスト、ロギング、モニタリング

アプリのパフォーマンス・テストを実施するときには、ロギングとモニタリングをセットアップしておくと、問題のトラブルシューティング、ワークロードの可視化、アプリの正常性とパフォーマンスの向上に役立ちます。

テスト環境で、さまざまな非理想的なシナリオを意図的に作成します。例えば、ゾーン内のすべてのワーカー・ノードを削除することでゾーン障害を再現します。 ログとメトリックを参照して、アプリがどのように復旧するかを確認します。

  1. アクセスのテスト: ワーカー・ノードにパブリックまたはプライベートの NodePort を作成して、アプリへのアクセスをテストします。
  2. モニタリング:
    1. ローカル・システムで Kubernetes ダッシュボードを開き、アプリのリソースに関する情報を確認します。
    2. IBM Cloud® Monitoring などのモニタリング・ソリューションを選択して、アプリのパフォーマンスと正常性を運用面で可視化します。
  3. ロギング : IBM Cloud Logs などの ロギングソリューションを選択し、コンテナのログを監視します。

お困りですか? ロギングとモニタリングのトラブルシューティングを参照してください。

アプリの更新

ユーザーにダウン時間を強いることなくアプリのローリング更新やロールバックを実行します。

  1. 更新の戦略: アプリを最新に保つための戦略を計画します
  2. 更新のセットアップ:
  3. スケーリング: 水平ポッド自動スケーリングを有効にして、CPU に基づいてアプリのインスタンス数を自動的に増減します。

アプリの保護

Kubernetes シークレットを使用して資格情報や鍵などの機密情報を保管し、Kubernetes シークレット内のデータを暗号化すると、無許可ユーザーがアプリの機密情報にアクセスすることを防止できます。

  1. シークレット:
    1. 個人情報や機密情報を、アプリがアクセスできる Kubernetes シークレットに保管します。
    2. KMS プロバイダーを使用してシークレットを暗号化します
    3. シークレットが暗号化されたことを確認します
  2. ポッド間トラフィック: Istio サービス・メッシュ内のマイクロサービス間のトラフィックに対して mTLS 暗号化を有効にします

アプリの公開

クラスターのアプリをインターネットでパブリックに公開するか、プライベート・ネットワークのみでプライベートに公開します。

  1. サービス・ディスカバリーを計画します。
    1. Kubernetes サービス・ディスカバリーの基本を理解します。
    2. アプリへの着信トラフィックの要件に合ったアプリ公開サービスを選択します。
  2. アプリを公開します。

お困りですか? Ingress のトラブルシューティングおよびロード・バランサーのトラブルシューティングを参照してください。

アプリ・ストレージの追加

  1. 要件: ストレージ・ソリューションの要件を決定します。
  2. ソリューションの選択: ストレージ要件を使用して、 オプション を比較してストレージ・ソリューションを選択します。

お困りですか? 永続ストレージ・ソリューションに関するトラブルシューティング・ページを参照してください。

統合の追加

さまざまな外部サービスやクラスター内のカタログ・サービスをアプリと統合して、アプリの機能を拡張します。

  1. サポートされている統合を確認します。

  2. クラスターにサービスを追加します。クラスター管理者に、クラスターに統合を追加するように依頼してください。

  3. アプリからサービスにアクセスします。アプリがサービスにアクセスできることを確認します。 例えば、アプリから IBM Cloud のサービス・インスタンスにアクセスするには、Kubernetes シークレットに保管したサービス資格情報をアプリで使用できるようにする必要があります。

お困りですか? アプリと統合のトラブルシューティングを参照してください。