Trace Id is missing
メイン コンテンツにスキップ

Kubernetes:使用を開始する

コンテナー化されたアプリケーションをデプロイして管理する方法を確認します。

コンテナーの解説

Kubernetes での作業を開始する前に、コンテナリゼーションのしくみを理解することが重要です。

海運業界で、物理的なコンテナーを使用してさまざまな貨物を分離し、船、列車、トラック、飛行機で輸送するのと同じように、ソフトウェア開発テクノロジでも、コンテナリゼーションと呼ばれる概念の使用が急速に広がりを見せています。

コンテナーと呼ばれる、1 つのソフトウェア パッケージは、アプリケーションのコードと、アプリの実行に必要な構成関連ファイル、ライブラリ、依存関係をまとめたものです。これにより開発者や IT 担当者は、アプリケーションをよりすばやくより安全に作成してデプロイすることができます。

コンテナリゼーションでは、分離、ポータビリティ、俊敏性、スケーラビリティー、コントロールというメリットが、アプリケーションのライフサイクル ワークフロー全体で提供されます。コンテナーはホストのオペレーティング システムとは分離され、スタンドアロンで存在し、よりポータブルに使用できます。あらゆるプラットフォームやクラウド間で実行でき、あらゆるインフラストラクチャで均等かつ一貫して動作します。

Kubernetes のコンポーネントと概念

クラスター

概要として、Kubernetes は複数の仮想またはオンプレミス マシンを 1 つのクラスターとして整理したものです。これらのマシン (ノードと呼びます) は、コンピューティング、ネットワーク、ストレージ リソースを共有します。各クラスターには 1 つのマスター ノードがあり、マスター ノードは 1 つ以上のワーカー ノードと接続されています。ワーカー ノードはコンテナー化したアプリケーションとワークロードのグループ (ポッドと呼びます) の実行を担当します。マスター ノードはどのワーカー ノードでどのポッドを実行するかを管理します。

クラスターの概念図

コントロール プレーン

マスター ノードがワーカー ノードと通信を行うため (そしてユーザーがマスター ノードと通信を行うため)、Kubernetes にはいくつかのオブジェクトが含まれており、それらがまとまってコントロール プレーンを形成します。

開発者や運用担当者は主に、kubectl (ローカル OS にインストールされているコマンド ライン インターフェイス) を使用してマスター ノードからクラスターを操作します。kubectl からクラスターに発行されたコマンドは、kube-apiserver (マスター ノードにある Kubernetes API ) により受け取られます。kube-apiserver は次に、リクエストをマスター ノード内の kube-controller-manager (ワーカー ノード操作の管理を担当します) に渡します。マスター ノードからのコマンドは、ワーカー ノードの kubelet により受け取られます。

コントロール プレーンの概念図

アプリとワークロードのデプロイ

Kubernetes で作業を開始するための次の手順は、アプリとワークロードのデプロイです。マスター ノードは Kubernetes クラスターの現在の状態と、etcd (キー値を保存するデータベース) の構成を常に保持しています。コンテナー化されたアプリとワークロードでポッドを実行するには、クラスターの新しい (望ましい) 状態を YAML ファイル形式で記述します。kube-controller-manager は YAML ファイルを受け取り、kube-scheduler を実行します。どのワーカー ノードでアプリやワークロードを実行するかを、あらかじめ定められた制約に基づいて決定します。各ワーカー ノードの kubelet と調整し合いながら、kube-scheduler はポッドを開始し、マシンの状態を監視します。また kube-scheduler は、全体的なリソース管理を行います。

Kubernetes のデプロイでは、記述した望ましい状態が etcd での最新の状態になりますが、以前の状態が失われるわけではありません。Kubernetes は、ロールバック、ローリング アップデート、ロールアウトの一時停止をサポートしています。さらに、デプロイではバックグラウンドで ReplicaSet が使用され、指定した数のまったく同じ内容の構成済みポッドを実行することができます。1 つ以上のポッドが失敗すると、ReplicaSet がそれらを置き換えます。この方法により、Kubernetes は自己復旧型と呼ばれます。

デプロイ戦略の概念図

Kubernetes 環境を構成し、セキュリティで保護する

アプリやワークロードをデプロイしたら、Kubernetes を開始するための最後の手順は、アプリやワークロードを整理し、それらにアクセスできるユーザーやリソースを決定することです。名前空間 (Kubernetes 内部のグループ化の方法) を作成すると、サービス、ポッド、コントローラー、ボリュームを簡単に連携させることができ、それらは同時にクラスターの別の部分から分離されます。また、Kubernetes の名前空間の概念を使用して、一貫性のある構成をリソースに適用することができます。

さらに、各ワーカー ノードには kube-proxy が含まれており、クラスターのさまざまな要素に外部からどのようにアクセスできるかを決定します。トークン、証明書、秘密にするパスワードなどの一般に公開しない機密情報を保存し、その他の Kubernetes オブジェクトは実行時までエンコードされます。

最後に、クラスターの各要素を表示し、操作できるユーザー (およびユーザーに許可する操作) を指定します。これは、ロールベースのアクセス制御 (RBAC) を使用して行います。

Kubernetes 環境図を構成し、セキュリティで保護する
Kubernetes の技術的な詳細を詳しく確認する   
Kubernetes のドキュメントを見る

フル マネージドの Kubernetes ソリューションを実装する

Azure Kubernetes Service (AKS) で、ホストされている Kubernetes 環境を管理します。コンテナー オーケストレーションの経験がなくても、コンテナー化されたアプリをデプロイして管理できます。アプリをオフラインにしなくても、リソースをオンデマンドでプロビジョニング、アップグレード、スケーリングできます。

Kubernetes のクイックスタート: 50 日で立ち上げて実行する

この順を追って説明されたガイドを使用して Kubernetes の使用を開始し、Kubernetes のコンポーネント、機能、ソリューションなどの実践的な操作を行ってみましょう。

Kubernetes のラーニング パスを確認する

Kubernetes を使用して先へ進むためのその他の方法

Azure の使用方法

AKS 用のアプリを準備する

準備ができたら、Azure で Kubernetes を無料でお試しください