「Kubernetesで運用する」その前に Kubernetesを本番環境で利用する際のポイント:キャッチアップが大切(3/3 ページ)
日本マイクロソフトは2018年11月5〜7日に「Microsoft Tech Summit 2018」を開催。MicrosoftでCloud Developer Advocateを務める寺田佳央氏は、Kubernetesを本番環境で活用する際のポイントや、今後のJavaについて語った。
今後のJavaはますますDockerやKubernetesを意識した開発が進む
寺田氏は、DockerやKubernetesで構築するアプリケーションを開発するためのJava活用のポイントにも言及。「現時点で世界的に最も利用されているJavaのバージョンは『Java 8』だ」と説明し、Java 9、Java 10以降でのDockerやKubernetesに関係する2つの機能改善を取り上げる。
参考記事:Dockerとは
まず、Java 9からは、カスタマイズしたJavaの実行環境であるJRE(Java Runtime Environment)が作成できるようになった点を説明する。
Java 8以前は、Oracleが用意したJDK(Java Development Kit)やJREと、コンテナ化したいWebアプリケーションをまとめ、コンテナの元となるDockerイメージを作成する。この場合、利用しないモジュールを含んだJDK、JREでDockerイメージを作成するため、容量が大きくなるという問題があった。Java 9からは「jlink」というコマンドを利用することで、利用者に必要なモジュールだけをまとめたJREを用いて、より小さなDockerイメージを作成できる。寺田氏は「今後、DockerやKubernetes上でJavaアプリケーションを動作させる場合、重要なコマンドになるだろう」と述べる。
次に、Java 10からは、コンテナに割り当てられたCPUやメモリの設定情報を取得できるようになった点を説明する。
Java 9以前は、DockerでJavaを利用する際、コンテナに割り当てられたCPUやメモリの設定をJVM(Java仮想マシン)が認識できなかった。そのため、コンテナ側で1コアに制限するように設定していても、ホストマシンの構成、設定を基にしてアプリケーションが実行された。結果、コンテナ側で設定した制限を超えてアプリケーションがリソースを消費し、Out of Memoryなどのエラーが発生するなどの問題が起きていた。Java 10からはJVMのオプションを利用することで、コンテナに割り当てられたCPUやメモリの設定情報を取得できるようになり、問題が解決されている。
寺田氏は、Javaの機能改善が進んでいることを説明し、コンテナ仮想化技術、Kubernetes、Javaについてまとめ、講演を締めくくった。
「グローバルでは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の概要や主な機能、環境構築方法、使い方について。