OSS紹介

Kubernetes

Kubernetes

NRIのOpenStandiaが提供するKubernetes最新情報

Kubernetesの保守サポートサービスの内容はこちら Kubernetesの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Kubernetesバージョンアップ情報

すべてを見る

更新日:2018-08-20

Kubernetesの概要

Kubernetes(クーバネティス)とは、Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。

コンテナによる仮想化は、それまでの仮想マシンによる仮想化と比べ、作成が容易で軽量です。しかし、コンテナの数が増えるにつれて、新しいコンテナがどのノードで実行されているかを管理し、ホスト間・コンテナ間の通信を容易にする必要が生じました。
Googleは、コンテナクラスターを一つのシステムとして管理する目的でKubernetesを開発しました。Kubernetesは、オープンソース化され、2015年にGoogleやIBM、Twitter、Red Hatなどが創設メンバーとして参加したCloud Native Computing Foundation(CNCF)のプロジェクトとして寄贈されました。

Kubernetesは、船の操縦士または操舵者という意味のギリシャ語が由来です。Kubernetesのロゴは、船の操舵輪となっています。また、Kubernetesは、記述する上で「k8s」と略されることが多々あります。

2015年7月にKubernetes 1.0がリリースされました。現在の最新バージョンは Kubernetes 1.11です。(2018年7月現在)

TOPに戻る

Kubernetesの特徴

Kubernetesには次のような特徴があります。

Kubernetesの機能

アプリケーションデプロイ 可用性を損なうことなく、リソース要件などの設定に基づき、自動的にpod(後述)を適切なノードへデプロイします。
ストレージオーケストレーション ローカルストレージ、GCPやAWSなどのパブリッククラウドプロバイダのストレージサービス、NFS、iSCSI、Gluster、Ceph、Cinder、Flockerなどのネットワークストレージなど任意のストレージシステムを自動的にマウントすることができます。
セルフヒーリング レプリケーションコントローラーは、設定された稼動チェックを行い、いつでも設定された数のpodが稼動している状態を保ちます。
オートスケーリング コマンドやUIからの指定、またはCPU使用率から自動的に、アプリケーションのスケールアップ・スケールダウンを行うことができます。
サービスディスカバリおよびロードバランシング podに内部IPアドレスと単一のDNS名を与え、負荷分散を行うことができます。
ローリングアップデートおよびロールバックth> すべてのインスタンスが同時に停止しないよう、アプリケーションや設定の変更を段階的に行います。問題が生じた場合、変更をロールバックします。

Kubernetesの構成要素

pod 少なくとも一つのコンテナを有するKubernetesの構成単位です。コンテナ間でIPアドレス等を共有します。
APIサーバー ユーザーにREST操作・kubectlコマンドを介してのクラスター操作を提供します。
スケジューラー ユーザーが発行したpod作成命令に対し、スケジューラーは、リソース要件に基づいてノードにpodを割り当てます。
コントローラーマネージャー APIサーバーを介してクラスター状態を監視し、指定された状態への変更を行います。 コントローラーには、レプリケーションコントローラー、エンドポイントコントローラー、ネームスペースコントローラー、サービスアカウントコントローラーがあります。
etcd クラスター状態に関するすべての設定情報は、キーと値のペアの形式でetcdに格納されます。
アドオン アドオンによって、Kubernetesクラスターまたはノードに関連する機能を拡張することができます。ロギングのためのfluentdや、ロールベースアクセスのためのrbacなどがあります。
kubelet kubeletは、各ノードで動作する「ノードエージェント」です。podを定義したPodSpecに従い、コンテナが正常に動作しているかを監視します。
kube-proxy kube-proxyは、各ノードでpod間の負荷分散を実行し、外部ホストがサービスを利用できるようにします。

TOPに戻る

Kubernetesの動作環境

高可用性クラスター環境を構築する前提となる動作環境は、以下のとおりです。

  • マスター用マシン3台
  • ワーカー用マシン3台
  • クラスター内のすべてのマシン間の完全なネットワーク接続
  • 1つのデバイスからシステム内のすべてのノードへのSSHアクセス
  • すべてのマシンのsudo権限

それぞれのマシンはkubeadmの前提である以下の要件を満たす必要があります。 (バージョン1.11の場合)

OS Ubuntu 16.0 Debian 9
CentOS 7
RHEL 7
Fedora 25/26 (best-effort)
HypriotOS v1.0.1+
Container Linux (tested with 1576.4.0) 4+
Memory 2 GB以上
CPU 2 CPU以上
Network クラスター内のすべてのマシン間の完全なネットワーク接続
ユニークなホスト名、MACアドレス、プロダクトUUID
Disk Swapの無効化

TOPに戻る

Kubernetesのユースケース

次のようなお客様に、Kubernetesの導入をオススメします。

  • マイクロサービスプラットフォームを構築したい
  • イミュータブル・インフラストラクチャーによる開発環境・本番環境を構築したい
  • DevOpsを導入・改善したい

TOPに戻る

Kubernetesのライセンス

Kubernetesのライセンスは、Apache2.0ライセンスです。 Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。

TOPに戻る

Kubernetesと同様の機能を提供する製品

Nomad、Mesos(+Marathon)、DockerのSwarmモードなどがKubernetesと同様の機能を提供しています。 いずれもオープンソースのオーケストレーションプラットフォームです。

TOPに戻る

Kubernetesのサポート

現在、OpenStandiaではKubernetesのサポート提供は行っておりません。

TOPに戻る

Kubernetesの参考情報

Kubernetesの公式ページ

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気OpenAM
  • 注目MongoDB
  • OpenIDM
  • Corosync
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • BIND
  • Apache Struts
  • PostgreSQL
  • Pentaho
  • Spring Framework
  • Apache Tomcat
  • Solr
  • Dovecot
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Liferay
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • BIND
  • OpenDJ
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • sendmail
  • Courier-IMAP
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO
<--!-->