「Kubernetesで運用する」その前に Kubernetesを本番環境で利用する際のポイント:キャッチアップが大切(2/3 ページ)
日本マイクロソフトは2018年11月5〜7日に「Microsoft Tech Summit 2018」を開催。MicrosoftでCloud Developer Advocateを務める寺田佳央氏は、Kubernetesを本番環境で活用する際のポイントや、今後のJavaについて語った。
Kubernetesをバージョンアップした後にコンテナが動く保証はない
Microsoft Azureが提供する「Azure Kubernetes Service」(AKS)は、Kubernetesクラスタを止めずに、クラスタ本体をアップデートする「ローリングアップデート機能」を備えている。管理画面のドロップダウンメニューや、コマンドラインから利用できる。
しかし、寺田氏は「ローリングアップデート機能を本番環境で安易に利用すること、またマネージドサービスが提供するGUIを通じて、Kubernetesを安易にアップデートすることはやめた方がいい」と強調する。
以前のバージョンのKubernetesでローリングアップデート機能を利用した結果、クラスタにアクセスできなくなったことがあったという。原因は、Kubernetesのバージョンアップによって管理サーバとノード管理が正しく引き継げなかったためだ。またそれ以外にも、クラスタのバージョンアップによって、それまで動いていたコンテナが起動しなくなった経験もあるという。これは、マニフェストファイルの記述方法や仕様が変わったためだ。
「動く保証を持たないまま、本番環境で動いているKubernetesクラスタのアップデートはお勧めできない。もし、Kubernetes本体をアップデートする場合は、新規クラスタの構築を推奨する。最新バージョンのKubernetesで、利用していたマニフェストファイルが動作することを確認し、ロードバランサーを用いて移行するようなブルーグリーンデプロイメントをする方がより安全だろう」
「Persistent Volumes」の利用を極力避ける
コンテナで稼働するアプリケーションのデータは、ストレージ設定を行わない場合、Podの再起動とともに消失してしまう。そこで、データを保存できるように、「Volumes」の設定を用いてデータの保存領域を指定できる。その際、「Persistent Volumes Claim」(PVC:永続ボリューム要求)という項目を利用すれば、ストレージの容量などを指定して、外部の永続ストレージサービスなどの「Persistent Volumes」(PV:永続ボリューム)を利用できる。
寺田氏は「PVの利用はできれば避けた方がいいだろう」と説明する。
VolumesやPV、PVCを扱うためには、ストレージのバックアップ、リストア、ボリュームのサイズ調整方法などを自身で考える必要があるからだ。また、アプリケーションをスケールさせる際、VolumesやMySQLのようなDBMSをKubernetesで管理していると、スケールが困難になる場合もある。
寺田氏は代替案として、プログラム側で処理することや、ストレージの切り分けを提案する。
「もし、ファイルを保存する場合は、Kubernetesで管理するのではなくプログラム側でSDKなどを用いてCRUD操作の実装を推奨する。複数起動していたPodの内、1つが落ちたという場合でも、プログラム側で実装した場合はPodの起動、停止に対する影響を受けないためだ。DBMSを利用する場合は、仮想ネットワークを通じてKubernetesとDBMSを接続する環境を構築するなど、Kubernetesでは管理しない方法を採る方がよいだろう。Kubernetesクラスタに状態やデータを持たせないことで、クラスタのバージョンアップ、テストなどが容易になり、クラスタの入れ替え、切り替えも容易になる」
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 2000店舗に展開の事例など、エッジでのKubernetesに注目が集まる
全米2000店舗にKubernetesクラスタを展開しているファストフードチェーンの事例などで、エッジにおけるKubernetesへの関心が高まっている。Kubernetesコミュニティーでも議論が始まった。 - Kubernetesを選んだ技術的理由とコンテナをプロジェクトで活用する上でのポイント
本連載では、サービスの開発、提供のアジリティ向上の一助となることを目的として、企業における「Kubernetes」の活用について解説する。今回は、Kubernetesを活用することを決めた理由について「技術」面から解説するとともに、「システムの開発やテスト、デプロイの効率を向上させるために、どのような点に配慮すべきか」について説明する。 - Docker管理ツール、Kubernetes、etcd、flannel、cAdvisorの概要とインストール、基本的な使い方
数多く台頭しているDockerの運用管理に関する製品/サービスの特長、使い方を徹底解説する特集。今回は、グーグルが主導で開発しているOSSであるKubernetes、flannel、cAdvisorの概要や主な機能、環境構築方法、使い方について。