第1章 基本サービスをセットアップする
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
この章では、Kubernetesでシンプルな多階層アプリケーションをセットアップする手順を説明する。これから説明する例は、シンプルなWebアプリケーションとデータベースの2つの階層で構成されている。 これは最も複雑なアプリケーションではないかもしれないが、Kubernetesでアプリケーションを管理することを学ぶ際には良いスタート地点となるだろう。
アプリケーションの概要
この例で使用する・アプリケーションは非常に単純である。単純なジャーナル・サービスであり、その詳細は以下の通りである:
-
NGINXを使用した独立した静的ファイルサーバを持っている。
-
RESTfulアプリケーションプログラミングインタフェース(API)https://some-host-name.io/api、/apiパスにある。
-
メインURLのhttps://some-host-name.io、ファイルサーバを持っている。
-
セキュア・ソケット・レイヤー(SSL)の管理には、Let's Encryptサービスを使用している。
図1-1にこのアプリケーションの図を示す。すぐにすべての部分を理解できなくても心配しないでほしい。この章を通してより詳しく説明する。最初にYAML構成ファイルを使い、次にHelmチャートを使う。
図1-1. Kubernetesにデプロイされたジャーナル・サービスの図。
構成ファイルを管理する
Kubernetesでこのアプリケーションをどのように構築するかの詳細に入る前に、コンフィギュレーション自体をどのように管理するかについて説明する価値がある。Kubernetesでは、すべてが 宣言的に表現される。つまり、クラスタ内のアプリケーションの望ましい状態を(一般的にはYAMLまたはJSONファイルで)書き出し、宣言された望ましい状態がアプリケーションのすべてのピースを定義する。この宣言的なアプローチは、クラスタの状態がクラスタへの一連の変更の合計となる命令的なアプローチ( )よりもはるかに望ましい。クラスタが命令的に構成されている場合、クラスタがどのようにしてその状態になったかを理解したり再現したりすることは難しく、アプリケーションの問題を理解したり回復したりすることが困難になる。
アプリケーションの状態を宣言する場合、Kubernetesはどちらもサポートしているが、一般的にはJSONよりも YAMLの方が好まれる。これは、YAMLがJSONよりも冗長でなく、人間が編集しやすいからだ。しかし、YAMLはインデントに敏感であることは注目に値する。Kubernetesコンフィギュレーションのエラーは、YAMLのインデントが正しくないことに起因することがよくある。物事が期待通りに動作しない場合、インデントをチェックすることは、トラブルシューティングを始めるのに良い場所である。 ほとんどのエディタは、JSONとYAMLの両方のシンタックスハイライトをサポートしている。これらのファイルで作業する際には、このようなツールをインストールして、構成内の作成者とファイルの両方のエラーを簡単に発見できるようにするのが良いだろう。 ...