未分類

Kubernetesがクラウド界の「Linux」と呼ばれる2つの理由


» 2019年04月08日 05時00分 公開



大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する「これから始める企業のためのコンテナ実践講座」第3回は、Kubernetesがクラウド界の「Linux」と呼ばれている理由とともに、Kubernetes内部の仕組み、機能を紹介します。


[矢野哲朗,スタイルズ]


 大量のコンテナ管理や負荷分散を実現する「Kubernetes」について、概要から本番活用の仕方まで解説する本連載「これから始める企業のためのコンテナ実践講座」第2回では、エンタープライズのサービス提供環境(以下、本番環境)でコンテナ技術を活用する際の課題を解決するKubernetesの概要と、3つのコンセプトを紹介しました。

第2回:「Excel手順書にさようなら」――運用管理者の不安を解消する「Kubernetes」のコンセプト

大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する本連載。第2回はコンテナ技術を本番環境で活用する際の課題を解決する「Kubernetes」と3つのコンセプトを解説します。

 第3回は、Kubernetesが何を実現するのかについてや、Kubernetesが「クラウド界のLinux」と呼ばれる理由とともに、Kubernetes内部の仕組み、機能を紹介します。

Kubernetesがクラウド界のLinuxと呼ばれる理由

 なぜKubernetesはクラウド界のLinuxと呼ばれているのでしょうか。その理由は、2つあります。1つ目は「Linuxのようなエコシステムとコミュニティーを持っていること」、2つ目は「Linuxのような機能を持っていること」です。まずは1つ目について見ていきましょう。

 Linuxのエコシステムとは、「さまざまなベンダーがLinuxというプラットフォームを強化した結果、Linuxへの魅力が増して、Linux利用者が増え、他のベンダーもLinuxに関わっていく」というように、さまざまなベンダーがLinuxを中心に考えるようになるサイクルのことです。

エコシステム拡大サイクル
エコシステム拡大サイクル

 Kubernetesの場合はどうでしょうか? Kubernetesの管理団体である「Cloud Native Computing Foundation」(以下、CNCF)では、Kubernetesを拡張するベンダーや、関連ツールを開発するベンダーを「The Cloud Native Interactive Landscape」としてまとめています。これを見ると多くのベンダーがKubernetesをプラットフォームとして、周辺の機能やサービスを整備していることが分かります。

Kubernetesを取り巻くソフトウェア群
Kubernetesを取り巻くソフトウェア群(出典:「The Cloud Native Interactive Landscape」)

 これらのベンダー、サービスによりKubernetesの魅力が増した結果、Kubernetesの利用者が増えてきています。それを裏付けるように、CNCFが主催するKubernetesカンファレンス「KubeCon + CloudNativeCon」では、2016年の参加者数が1139人だったのに対し、2017年に4212人、2018年には8000人(キャンセル待ち1000人)となりました。また、Kubernetesを取り上げるメディアや書籍も増えており、今後、興味を持った企業によってKubernetesに関するさまざまなサービスが登場することは間違いないでしょう。

 これらのことから、KubernetesはLinuxのようなエコシステム、コミュニティーを持っているといえます。

KubernetesとLinuxはどう似ているか?

 Kubernetesが持つ機能をLinuxと比較しながら紹介する前に、Linux(Linuxディストリビューション)が何をするのか、改めて振り返ってみましょう。Linuxはオペレーティングシステム(以下、OS)であるということは分かりますが、本当は何をしているのでしょうか。

 Linux OSの根幹である「Linux カーネル」では、下記を管理します。

  • プロセス(ライフサイクル)
  • 名前空間
  • メモリ
  • プロセススケジューリング
  • 割り込み
  • デバイス
  • ファイルシステム
  • ネットワーク
  • ネットワークセキュリティ

 Linux OS全体としての「Linuxディストリビューション」では下記を管理します。

  • ユーザー
  • 承認
  • 認可
  • ネットワーク
  • ログ
  • セキュリティ
  • ジョブ
  • UI/GUI
  • DNS
  • パッケージ(rpm, deb)

 Linuxカーネルの機能は、ホスト単体での機能ですが、Kubernetesは複数のホストを束ねたクラスタで同じような機能を用意しています。ざっくり図にしたのが下記です。

LinuxとKubernetesの機能対比
LinuxとKubernetesの機能対比

Kubernetes内の役割分担

 それでは、Kubernetesにはどのような機能が備わっているのでしょうか? 機能について紹介する前に、Kubernetesにある大きな2つの役割「Kubernetes Master components」(以下、マスター)と「Kubernetes Node components」(以下、ノード)を紹介します。

Kubernetesにおける「マスター」と「ノード」
Kubernetesにおける「マスター」と「ノード」

Copyright © ITmedia, Inc. All Rights Reserved.




‘;
html += ‘

‘;
e_dlv.innerHTML = html;
cX = cX || {};
cX.callQueue = cX.callQueue || [];
cX.callQueue.push([
‘insertAdSpace’,
{
adSpaceId:adid,
width:’100%’,
height:190,
initialHorizontalAdUnits:1,
initialVerticalAdUnits:1,
resizeToContentSize:true,
renderTemplateUrl:render
}
]);
}else if(ad_type === ‘dlv’){
var html = ”;
e_dlv.innerHTML = html;
adRequest({position:dlv_pos,dom:true});
}else if(ad_type === ‘google’){
var html = ”;
e_dlv.innerHTML = html;
googletag.cmd.push(function(){
var slot8 = googletag.defineSlot(‘/43042345/nlab_artinsert_RT’,[[336,280],[300,250],’fluid’],’div-gpt-ad-1551176482959-0′).addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
googletag.display(‘div-gpt-ad-1551176482959-0’);
googletag.pubads().refresh([slot8]);
});
}
};
var insert_ok = function(_target,_str){
var clearfix = d.createElement(‘div’);
clearfix.className = ‘colBoxClear’;
if(ad_float_fix){
e_body.insertBefore(e_dlv,_target);
e_body.insertBefore(clearfix,_target.nextElementSibling);
}else{
e_body.insertBefore(e_dlv,_target);
}
set_dlv();
};
var insert_ng = function(_str){
e_dlv.style.display = ‘none’;
};
var main = function(){
var e_nodes = e_body.childNodes; // BODY 直下子要素
var e_tags = []; // BODY 直下タグ
var p_num = []; // BODY 直下 P タグ位置
var p_target_num; // 枠挿入基準位置
var o_float = {}; // 回り込み要素
var o_this = {}; // アクティブタグ
var o_next = {}; // アクティブタグの次のタグ
var flag_insert = 0; // 挿入フラグ
// 回り込み要素チェック
var check_float = function(_e){
var e = 0;
if(_e.id.match(/^col¥d{3}(l|r)$/)){
e = _e;
}
return e;
};
// 要素の Y 座標と高さの合計値
var get_element_y = function(_e){
var ey = 0;
var eh = _e.offsetHeight;
while(_e){
ey += _e.offsetTop;
_e = _e.offsetParent;
}
return ey + eh;
};
var check_ptag = function(_e){
var e = 0;
if(_e.tagName && _e.tagName === ‘P’){
e = _e;
}
return e;
};
var try_insert = function(){
p_target_num = Math.floor(p_num.length / 2) – 1;
if(p_target_num >= _maxrange) p_target_num = _maxrange;
for(var i = p_num[p_target_num]; i = _threshold){
try_insert();
}else{
insert_ng(‘P タグ ‘ + _threshold + ‘ 以下’);
}
};
if(e_body){
main();
}else{
insert_ng(‘記事本文なし’);
}
})(document,4,5);


Source: IT総合情報

Most Popular

To Top
%d人のブロガーが「いいね」をつけました。